Compare commits

..

8 Commits
5.2.2 ... 5.2.3

Author SHA1 Message Date
6fd18a7ef1 base: Update version to 5.2.3 2023-06-15 19:04:19 -04:00
1d0e624e2d eventhandler: Handle cases of current program scene being null 2023-06-15 19:04:19 -04:00
d978de1310 eventhandler: Use OBS_FRONTEND_EVENT_SCRIPTING_SHUTDOWN for exit
Fixes #1136
2023-06-15 19:04:19 -04:00
36bd710ce6 docs(ci): Update generated docs - d518541 [skip ci] 2023-06-15 19:04:19 -04:00
c2d1c70f68 requesthandler: Add NotReady request status
During scene collection change and OBS exit, performing requests
constitutes undefined behavior. Previously, we attempted to help this
by providing the `SceneCollectionChanging` event for any clients to
pause requests client-side, but this method has proven to not be
adequate to fix the issue. As such, this allows us to tell clients
explicitly that a request cannot be fulfilled reliably, and they
may decide whether or not to retry.
2023-06-15 19:04:19 -04:00
f3b69a5241 cmake: Silences Qt warnings emitted by clang with default Xcode settings 2023-06-15 19:04:19 -04:00
57a9c19f2c Update translations from Crowdin 2023-05-01 23:11:11 +00:00
6633144ce8 README: Prevent Firefox from flagging Macro Deck as a security risk
Removes the 'www․' in the Macro Deck link in README.md to Prevent
Firefox from flagging the Macro Deck website as a potential security
risk.
2023-04-19 12:06:36 -07:00
11 changed files with 83 additions and 18 deletions

View File

@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16...3.25)
legacy_check() legacy_check()
set(obs-websocket_VERSION 5.2.2) set(obs-websocket_VERSION 5.2.3)
set(OBS_WEBSOCKET_RPC_VERSION 1) set(OBS_WEBSOCKET_RPC_VERSION 1)
option(ENABLE_WEBSOCKET "Enable building OBS with websocket plugin" ON) option(ENABLE_WEBSOCKET "Enable building OBS with websocket plugin" ON)
@ -142,7 +142,7 @@ target_compile_options(
$<$<PLATFORM_ID:Darwin,Linux,FreeBSD>:-Wall> $<$<PLATFORM_ID:Darwin,Linux,FreeBSD>:-Wall>
$<$<COMPILE_LANG_AND_ID:CXX,GNU,AppleClang,Clang>:-Wno-error=float-conversion;-Wno-error=shadow> $<$<COMPILE_LANG_AND_ID:CXX,GNU,AppleClang,Clang>:-Wno-error=float-conversion;-Wno-error=shadow>
$<$<COMPILE_LANG_AND_ID:CXX,GNU>:-Wno-error=format-overflow;-Wno-error=int-conversion;-Wno-error=comment> $<$<COMPILE_LANG_AND_ID:CXX,GNU>:-Wno-error=format-overflow;-Wno-error=int-conversion;-Wno-error=comment>
$<$<COMPILE_LANG_AND_ID:CXX,AppleClang,Clang>:-Wno-error=null-pointer-subtraction;-Wno-error=deprecated-declarations;-Wno-error=implicit-int-conversion;-Wno-error=shorten-64-to-32> $<$<COMPILE_LANG_AND_ID:CXX,AppleClang,Clang>:-Wno-error=null-pointer-subtraction;-Wno-error=deprecated-declarations;-Wno-error=implicit-int-conversion;-Wno-error=shorten-64-to-32;-Wno-comma;-Wno-quoted-include-in-framework-header>
) )
target_link_libraries( target_link_libraries(

View File

@ -31,7 +31,7 @@ It is **highly recommended** to keep obs-websocket protected with a password aga
### Client software ### Client software
- [Macro Deck](https://www.macrodeck.org/) - [Macro Deck](https://macrodeck.org/)
- [Touch Portal](https://www.touch-portal.com/) - [Touch Portal](https://www.touch-portal.com/)
- [Twitchat](https://twitchat.fr/) - [Twitchat](https://twitchat.fr/)
- [OBS-web](https://github.com/Niek/obs-web) - hosted client at [obs-web.niek.tv/](http://obs-web.niek.tv/) - [OBS-web](https://github.com/Niek/obs-web) - hosted client at [obs-web.niek.tv/](http://obs-web.niek.tv/)

View File

@ -1,4 +1,4 @@
project(obs-websocket VERSION 5.2.2) project(obs-websocket VERSION 5.2.3)
set(OBS_WEBSOCKET_RPC_VERSION 1) set(OBS_WEBSOCKET_RPC_VERSION 1)
option(ENABLE_WEBSOCKET "Enable building OBS with websocket plugin" ON) option(ENABLE_WEBSOCKET "Enable building OBS with websocket plugin" ON)

View File

@ -1,10 +1,10 @@
OBSWebSocket.Plugin.Description="Control remot de l'OBS Studio mitjançant un servidor web" OBSWebSocket.Plugin.Description="Control remot de l'OBS Studio mitjançant WebSocket"
OBSWebSocket.Settings.DialogTitle="Configuració del servidor WebSocket" OBSWebSocket.Settings.DialogTitle="Configuració del servidor WebSocket"
OBSWebSocket.Settings.PluginSettingsTitle="Configuració del complement" OBSWebSocket.Settings.PluginSettingsTitle="Configuració del complement"
OBSWebSocket.Settings.ServerEnable="Habilita el servidor web" OBSWebSocket.Settings.ServerEnable="Habilita el servidor WebSocket"
OBSWebSocket.Settings.AlertsEnable="Habilita les notificacions a la barra de tasques" OBSWebSocket.Settings.AlertsEnable="Habilita les notificacions a la barra de tasques"
OBSWebSocket.Settings.DebugEnable="Habilita l'informe de depuració" OBSWebSocket.Settings.DebugEnable="Habilita l'informe de depuració"
OBSWebSocket.Settings.DebugEnableHoverText="Habilita l'informe de depuració només per a la instància actual de l'OBS i no queda resident en inicis posteriors.\nUtilitzeu --websocket_debug si us cal que el canvi sigui persistent." OBSWebSocket.Settings.DebugEnableHoverText="Habilita l'informe de depuració només per a la instància actual de l'OBS. No persisteix en inicis posteriors.\nUtilitzeu --websocket_debug si us cal que el canvi sigui persistent."
OBSWebSocket.Settings.ServerSettingsTitle="Configuració del servidor" OBSWebSocket.Settings.ServerSettingsTitle="Configuració del servidor"
OBSWebSocket.Settings.AuthRequired="Habilita l'autenticació" OBSWebSocket.Settings.AuthRequired="Habilita l'autenticació"
OBSWebSocket.Settings.Password="Contrasenya del servidor" OBSWebSocket.Settings.Password="Contrasenya del servidor"
@ -15,29 +15,29 @@ OBSWebSocket.Settings.ShowConnectInfoWarningTitle="Atenció: Actualment en direc
OBSWebSocket.Settings.ShowConnectInfoWarningMessage="Sembla que una sortida (retransmissió, gravació, etc.) està actualment activa." OBSWebSocket.Settings.ShowConnectInfoWarningMessage="Sembla que una sortida (retransmissió, gravació, etc.) està actualment activa."
OBSWebSocket.Settings.ShowConnectInfoWarningInfoText="Segur que voleu mostrar la vostra informació de connexió?" OBSWebSocket.Settings.ShowConnectInfoWarningInfoText="Segur que voleu mostrar la vostra informació de connexió?"
OBSWebSocket.Settings.Save.UserPasswordWarningTitle="Atenció: Risc potencial de seguretat" OBSWebSocket.Settings.Save.UserPasswordWarningTitle="Atenció: Risc potencial de seguretat"
OBSWebSocket.Settings.Save.UserPasswordWarningMessage="El servidor web del l'OBS (obs-websocket) emmagatzema la contrasenya del servidor com a text pla. És altament recomanable l'ús d'una contrasenya generada automàticament." OBSWebSocket.Settings.Save.UserPasswordWarningMessage="obs-websocket emmagatzema la contrasenya del servidor com a text pla. És altament recomanable l'ús d'una contrasenya generada automàticament."
OBSWebSocket.Settings.Save.UserPasswordWarningInfoText="Segur que voleu utilitzar la vostra contrasenya?" OBSWebSocket.Settings.Save.UserPasswordWarningInfoText="Segur que voleu utilitzar la vostra contrasenya?"
OBSWebSocket.Settings.Save.PasswordInvalidErrorTitle="Error: Configuració no vàlida" OBSWebSocket.Settings.Save.PasswordInvalidErrorTitle="Error: Configuració no vàlida"
OBSWebSocket.Settings.Save.PasswordInvalidErrorMessage="Utilitzeu una contrasenya de 6 o més caràcters." OBSWebSocket.Settings.Save.PasswordInvalidErrorMessage="Utilitzeu una contrasenya de 6 o més caràcters."
OBSWebSocket.SessionTable.Title="Sessions de servidor connectades" OBSWebSocket.SessionTable.Title="Sessions de WebSocket connectades"
OBSWebSocket.SessionTable.RemoteAddressColumnTitle="Adreça remota" OBSWebSocket.SessionTable.RemoteAddressColumnTitle="Adreça remota"
OBSWebSocket.SessionTable.SessionDurationColumnTitle="Durada de la sessió" OBSWebSocket.SessionTable.SessionDurationColumnTitle="Durada de la sessió"
OBSWebSocket.SessionTable.MessagesInOutColumnTitle="Missatges d'entrada/sortida" OBSWebSocket.SessionTable.MessagesInOutColumnTitle="Missatges d'entrada/sortida"
OBSWebSocket.SessionTable.IdentifiedTitle="Identificat" OBSWebSocket.SessionTable.IdentifiedTitle="Identificat"
OBSWebSocket.SessionTable.KickButtonColumnTitle="Expuls?" OBSWebSocket.SessionTable.KickButtonColumnTitle="Expulsar?"
OBSWebSocket.SessionTable.KickButtonText="Expulsa" OBSWebSocket.SessionTable.KickButtonText="Expulsa"
OBSWebSocket.ConnectInfo.DialogTitle="Informació de connexió del servidor Web (WebSocket)" OBSWebSocket.ConnectInfo.DialogTitle="Informació de connexió del servidor WebSocket"
OBSWebSocket.ConnectInfo.CopyText="Copia" OBSWebSocket.ConnectInfo.CopyText="Copia"
OBSWebSocket.ConnectInfo.ServerIp="Adreça IP (més acurada)" OBSWebSocket.ConnectInfo.ServerIp="Adreça IP (més acurada)"
OBSWebSocket.ConnectInfo.ServerPort="Port" OBSWebSocket.ConnectInfo.ServerPort="Port"
OBSWebSocket.ConnectInfo.ServerPassword="Contrasenya" OBSWebSocket.ConnectInfo.ServerPassword="Contrasenya"
OBSWebSocket.ConnectInfo.ServerPasswordPlaceholderText="[Autenticació inhabilitada]" OBSWebSocket.ConnectInfo.ServerPasswordPlaceholderText="[Autenticació inhabilitada]"
OBSWebSocket.ConnectInfo.QrTitle="QR de la connexió" OBSWebSocket.ConnectInfo.QrTitle="QR de la connexió"
OBSWebSocket.TrayNotification.Identified.Title="Connexió nova de servidor Web (WebSocket)" OBSWebSocket.TrayNotification.Identified.Title="Connexió nova de WebSocket"
OBSWebSocket.TrayNotification.Identified.Body="Client %1 identificat." OBSWebSocket.TrayNotification.Identified.Body="Client %1 identificat."
OBSWebSocket.TrayNotification.AuthenticationFailed.Title="Ha fallat l'autenticació del servidor Web" OBSWebSocket.TrayNotification.AuthenticationFailed.Title="Ha fallat l'autenticació del servidor WebSocket"
OBSWebSocket.TrayNotification.AuthenticationFailed.Body="Ha fallat l'autenticació del client %1." OBSWebSocket.TrayNotification.AuthenticationFailed.Body="Ha fallat l'autenticació del client %1."
OBSWebSocket.TrayNotification.Disconnected.Title="Client desconnectat del servidor Web" OBSWebSocket.TrayNotification.Disconnected.Title="Client desconnectat del servidor WebSocket"
OBSWebSocket.TrayNotification.Disconnected.Body="Client %1 desconnectat." OBSWebSocket.TrayNotification.Disconnected.Body="Client %1 desconnectat."
OBSWebSocket.Server.StartFailed.Title="Ha fallat el servidor Web (WebSocket)" OBSWebSocket.Server.StartFailed.Title="Ha fallat el servidor WebSocket"
OBSWebSocket.Server.StartFailed.Message="El servidor Web ha fallat en iniciar. Potser el port TCP %1 ja està en ús per altre programa del sistema. Proveu un port diferent a la configuració del servidor Web (WebSocket), o atureu qualsevol altra aplicació que pugui utilitzar aquest port.\n Missatge d'error: %2" OBSWebSocket.Server.StartFailed.Message="El servidor WebSocket ha fallat en iniciar. Potser el port TCP %1 ja està en ús per altre programa del sistema. Proveu un port diferent a la configuració del servidor WebSocket, o atureu qualsevol altra aplicació que pugui utilitzar aquest port.\n Missatge d'error: %2"

2
data/locale/nb-NO.ini Normal file
View File

@ -0,0 +1,2 @@
OBSWebSocket.Settings.Password="Server Passord"
OBSWebSocket.Settings.GeneratePassword="Generer Passord"

View File

@ -1,13 +1,39 @@
OBSWebSocket.Plugin.Description="Điều khiển từ xa OBS Studio thông qua WebSocket"
OBSWebSocket.Settings.DialogTitle="Cài đặt máy chủ WebSocket"
OBSWebSocket.Settings.PluginSettingsTitle="Thiết đặt trình cắm" OBSWebSocket.Settings.PluginSettingsTitle="Thiết đặt trình cắm"
OBSWebSocket.Settings.ServerEnable="Bật máy chủ WebSocket" OBSWebSocket.Settings.ServerEnable="Bật máy chủ WebSocket"
OBSWebSocket.Settings.AlertsEnable="Bật cảnh báo khay hệ thống"
OBSWebSocket.Settings.DebugEnable="Bật ghi nhật ký gỡ lỗi"
OBSWebSocket.Settings.DebugEnableHoverText="Cho phép ghi nhật ký gỡ lỗi cho phiên bản OBS hiện tại. Không tồn tại khi tải.\nUde --websocket gỡ lỗi để bật khi tải."
OBSWebSocket.Settings.ServerSettingsTitle="Thiết đặt máy chủ" OBSWebSocket.Settings.ServerSettingsTitle="Thiết đặt máy chủ"
OBSWebSocket.Settings.AuthRequired="Bật xác thực"
OBSWebSocket.Settings.Password="Mật khẩu máy chủ" OBSWebSocket.Settings.Password="Mật khẩu máy chủ"
OBSWebSocket.Settings.GeneratePassword="Tạo mật khẩu" OBSWebSocket.Settings.GeneratePassword="Tạo mật khẩu"
OBSWebSocket.Settings.ServerPort="Cổng máy chủ" OBSWebSocket.Settings.ServerPort="Cổng máy chủ"
OBSWebSocket.Settings.ShowConnectInfo="Hiện thông tin kết nối" OBSWebSocket.Settings.ShowConnectInfo="Hiện thông tin kết nối"
OBSWebSocket.Settings.ShowConnectInfoWarningTitle="Cảnh báo: Hiện đang chạy"
OBSWebSocket.Settings.ShowConnectInfoWarningMessage="Có vẻ như một đầu ra (luồng, bản ghi, v.v.) hiện đang hoạt động."
OBSWebSocket.Settings.ShowConnectInfoWarningInfoText="Bạn có chắc chắn muốn hiển thị thông tin kết nối của mình không?"
OBSWebSocket.Settings.Save.UserPasswordWarningTitle="Cảnh báo: Vấn đề bảo mật tiềm ẩn"
OBSWebSocket.Settings.Save.UserPasswordWarningMessage="obs-websocket lưu trữ mật khẩu máy chủ dưới dạng văn bản thuần túy. Bạn nên sử dụng mật khẩu được tạo bởi obs-websocket."
OBSWebSocket.Settings.Save.UserPasswordWarningInfoText="Bạn có chắc bạn muốn sử dụng mật khẩu của mình?"
OBSWebSocket.Settings.Save.PasswordInvalidErrorTitle="Lỗi: Thiết lập không hợp lệ"
OBSWebSocket.Settings.Save.PasswordInvalidErrorMessage="Bạn phải sử dụng mật khẩu có 6 ký tự trở lên."
OBSWebSocket.SessionTable.Title="Các phiên WebSocket được kết nối"
OBSWebSocket.SessionTable.RemoteAddressColumnTitle="Địa chỉ từ xa"
OBSWebSocket.SessionTable.SessionDurationColumnTitle="Thời lượng phiên"
OBSWebSocket.SessionTable.MessagesInOutColumnTitle="Tin nhắn vào/ra"
OBSWebSocket.SessionTable.IdentifiedTitle="Định dạng" OBSWebSocket.SessionTable.IdentifiedTitle="Định dạng"
OBSWebSocket.ConnectInfo.DialogTitle="Thông tin kết nối WebSocket"
OBSWebSocket.ConnectInfo.ServerIp="IP Máy chủ (Gợi ý tốt nhất)" OBSWebSocket.ConnectInfo.ServerIp="IP Máy chủ (Gợi ý tốt nhất)"
OBSWebSocket.ConnectInfo.ServerPort="Cổng máy chủ" OBSWebSocket.ConnectInfo.ServerPort="Cổng máy chủ"
OBSWebSocket.ConnectInfo.ServerPassword="Mật khẩu máy chủ" OBSWebSocket.ConnectInfo.ServerPassword="Mật khẩu máy chủ"
OBSWebSocket.ConnectInfo.QrTitle="Kết nối bằng mã QR" OBSWebSocket.ConnectInfo.QrTitle="Kết nối bằng mã QR"
OBSWebSocket.TrayNotification.Identified.Title="Tạo cổng kết nối WebSocket mới" OBSWebSocket.TrayNotification.Identified.Title="Tạo cổng kết nối WebSocket mới"
OBSWebSocket.TrayNotification.Identified.Body="Máy khách %1 được xác định."
OBSWebSocket.TrayNotification.AuthenticationFailed.Title="Lỗi xác thực WebSocket"
OBSWebSocket.TrayNotification.AuthenticationFailed.Body="Máy khách %1 không xác thực được."
OBSWebSocket.TrayNotification.Disconnected.Title="Máy khách WebSocket bị ngắt kết nối"
OBSWebSocket.TrayNotification.Disconnected.Body="Máy khách %1 bị ngắt kết nối."
OBSWebSocket.Server.StartFailed.Title="Lỗi máy chủ WebSocket"
OBSWebSocket.Server.StartFailed.Message="Máy chủ WebSocket không khởi động được. Cổng TCP %1 có thể đã được ứng dụng khác sử dụng ở nơi khác trên hệ thống này. Hãy thử đặt một cổng TCP khác trong cài đặt máy chủ WebSocket hoặc dừng bất kỳ ứng dụng nào có thể đang sử dụng cổng này.\n Thông báo lỗi: %2"

View File

@ -237,6 +237,14 @@
"initialVersion": "5.0.0", "initialVersion": "5.0.0",
"enumValue": 206 "enumValue": 206
}, },
{
"description": "The server is not ready to handle the request.\n\nNote: This usually occurs during OBS scene collection change or exit. Requests may be tried again after a delay if this code is given.",
"enumIdentifier": "NotReady",
"rpcVersion": "1",
"deprecated": false,
"initialVersion": "5.3.0",
"enumValue": 207
},
{ {
"description": "A required request field is missing.", "description": "A required request field is missing.",
"enumIdentifier": "MissingRequestField", "enumIdentifier": "MissingRequestField",

View File

@ -471,6 +471,7 @@ These are enumeration declarations, which are referenced throughout obs-websocke
- [RequestStatus::UnknownRequestType](#requeststatusunknownrequesttype) - [RequestStatus::UnknownRequestType](#requeststatusunknownrequesttype)
- [RequestStatus::GenericError](#requeststatusgenericerror) - [RequestStatus::GenericError](#requeststatusgenericerror)
- [RequestStatus::UnsupportedRequestBatchExecutionType](#requeststatusunsupportedrequestbatchexecutiontype) - [RequestStatus::UnsupportedRequestBatchExecutionType](#requeststatusunsupportedrequestbatchexecutiontype)
- [RequestStatus::NotReady](#requeststatusnotready)
- [RequestStatus::MissingRequestField](#requeststatusmissingrequestfield) - [RequestStatus::MissingRequestField](#requeststatusmissingrequestfield)
- [RequestStatus::MissingRequestData](#requeststatusmissingrequestdata) - [RequestStatus::MissingRequestData](#requeststatusmissingrequestdata)
- [RequestStatus::InvalidRequestField](#requeststatusinvalidrequestfield) - [RequestStatus::InvalidRequestField](#requeststatusinvalidrequestfield)
@ -879,6 +880,18 @@ The request batch execution type is not supported.
--- ---
### RequestStatus::NotReady
The server is not ready to handle the request.
Note: This usually occurs during OBS scene collection change or exit. Requests may be tried again after a delay if this code is given.
- Identifier Value: `207`
- Latest Supported RPC Version: `1`
- Added in v5.3.0
---
### RequestStatus::MissingRequestField ### RequestStatus::MissingRequestField
A required request field is missing. A required request field is missing.

View File

@ -269,7 +269,7 @@ void EventHandler::OnFrontendEvent(enum obs_frontend_event event, void *private_
case OBS_FRONTEND_EVENT_FINISHED_LOADING: case OBS_FRONTEND_EVENT_FINISHED_LOADING:
eventHandler->FrontendFinishedLoadingMultiHandler(); eventHandler->FrontendFinishedLoadingMultiHandler();
break; break;
case OBS_FRONTEND_EVENT_EXIT: case OBS_FRONTEND_EVENT_SCRIPTING_SHUTDOWN:
eventHandler->FrontendExitMultiHandler(); eventHandler->FrontendExitMultiHandler();
break; break;

View File

@ -103,7 +103,10 @@ void EventHandler::HandleCurrentProgramSceneChanged()
OBSSourceAutoRelease currentScene = obs_frontend_get_current_scene(); OBSSourceAutoRelease currentScene = obs_frontend_get_current_scene();
json eventData; json eventData;
eventData["sceneName"] = obs_source_get_name(currentScene); if (currentScene)
eventData["sceneName"] = obs_source_get_name(currentScene);
else
eventData["sceneName"] = nullptr;
BroadcastEvent(EventSubscription::Scenes, "CurrentProgramSceneChanged", eventData); BroadcastEvent(EventSubscription::Scenes, "CurrentProgramSceneChanged", eventData);
} }

View File

@ -103,6 +103,19 @@ namespace RequestStatus {
* @api enums * @api enums
*/ */
UnsupportedRequestBatchExecutionType = 206, UnsupportedRequestBatchExecutionType = 206,
/**
* The server is not ready to handle the request.
*
* Note: This usually occurs during OBS scene collection change or exit. Requests may be tried again after a delay if this code is given.
*
* @enumIdentifier NotReady
* @enumValue 207
* @enumType RequestStatus
* @rpcVersion -1
* @initialVersion 5.3.0
* @api enums
*/
NotReady = 207,
/** /**
* A required request field is missing. * A required request field is missing.