Compare commits

...

26 Commits
5.1.0 ... 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
6ef055a369 base: Update version to 5.2.2
- Various minor build process cleanups
2023-04-04 15:13:15 -04:00
a4ee9c03ea base: Remove unneeded include directories
Asio and WebSocket++ are no longer added as submodules.
They are now included in obs-deps.
2023-04-04 12:15:33 -04:00
9912c9963c base: Remove unnecessary entries in .gitignore
the commit 21886adb3 moves the destination of the generated files into
the build directory so that it is unnecessary to hide the generated
files by .gitignore.
2023-04-04 12:14:11 -04:00
21886adb32 base: Fix generated header inclusion 2023-03-27 12:59:23 -04:00
c85d9143a9 Update translations from Crowdin 2023-03-27 13:39:01 +00:00
7ca8d5fc2b base: Update version to 5.2.0
- Fixed a crash caused if `authentication` payload field was not a
string
- Allow empty vendor request data
- Minor documentation fixes
- Replace submodules with obs-deps or system versions where possible
  - asio
  - websocketpp
  - nlohmann/json
- Refactor CMake to allow uplift to new obs-studio CMake
2023-03-26 19:30:00 -04:00
db2c251189 base: Re-add version CMake variables
Make sure that non-legacy builds have these version variables populated.
2023-03-26 19:09:51 -04:00
dd248faecb cmake: Add changes for CMake build framework 3.0
New code path only taken if OBS_CMAKE_VERSION is set to 3.0.0 or
greater, old functionality remains unchanged.
2023-03-26 18:21:05 -04:00
68d79b22af base: Disable Qt RCC timestamps only on Windows 2023-03-24 12:29:19 -04:00
b06da5fa63 base: Disable Qt RCC timestamps 2023-03-23 18:20:34 -04:00
78a1b54a47 base,deps: Replace submodules by prefix/system install
nlohmann JSON, WebSocket++ and Asio are moved from sudmodules to
prefix (obs-deps) or system-wide install (Linux).
2023-03-23 17:37:51 -04:00
bf277011f9 base: Refactor CMake Qt properties
- Allow obs-deps to be used by not changing CMAKE_PREFIX_PATH.
- Move Qt AUTO properties to the target.
2023-03-23 17:37:51 -04:00
96032e0e8c requesthandler: Allow empty vendor request data 2023-02-08 10:10:44 -08:00
ddd139255b Update translations from Crowdin 2023-01-08 04:10:35 +00:00
edf29e828c docs(ci): Update generated docs - 079ab31 [skip ci] 2022-12-31 22:55:24 +00:00
079ab31f88 docs: Fix small typo in introduction.md
- Corrected 'compatability' to 'compatibility' in docs/docs/partials/introduction.md
2022-12-31 14:55:04 -08:00
e797a3fb34 websocketserver: Validate data type of authentication payload field
Can cause crash if field is not a string

Reported by @tyami94
2022-12-31 14:54:11 -08:00
a792c59699 docs(ci): Update generated docs - 31f9845 [skip ci] 2022-11-18 10:29:29 +00:00
76 changed files with 630 additions and 205 deletions

View File

@ -1,13 +1,46 @@
{
"additional_commands": {
"find_qt": {
"flags": [],
"kwargs": {
"COMPONENTS": "+",
"COMPONENTS_WIN": "+",
"COMPONENTS_MACOS": "+",
"COMPONENTS_LINUX": "+"
"format": {
"line_width": 120,
"tab_size": 2,
"enable_sort": true,
"autosort": true
},
"additional_commands": {
"find_qt": {
"flags": [],
"kwargs": {
"COMPONENTS": "+",
"COMPONENTS_WIN": "+",
"COMPONENTS_MACOS": "+",
"COMPONENTS_LINUX": "+"
}
},
"set_target_properties_obs": {
"pargs": 1,
"flags": [],
"kwargs": {
"PROPERTIES": {
"kwargs": {
"PREFIX": 1,
"OUTPUT_NAME": 1,
"FOLDER": 1,
"VERSION": 1,
"SOVERSION": 1,
"FRAMEWORK": 1,
"BUNDLE": 1,
"AUTOMOC": 1,
"AUTOUIC": 1,
"AUTORCC": 1,
"AUTOUIC_SEARCH_PATHS": 1,
"BUILD_RPATH": 1,
"INSTALL_RPATH": 1,
"XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC": 1,
"XCODE_ATTRIBUTE_CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION": 1,
"XCODE_ATTRIBUTE_GCC_WARN_SHADOW":1 ,
"LIBRARY_OUTPUT_DIRECTORY": 1
}
}
}
}
}
}

2
.gitignore vendored
View File

@ -2,7 +2,6 @@
.DS_Store
.idea
.vscode
**.generated.h
/build/
/build32/
/build64/
@ -10,5 +9,4 @@
/package/
/installer/Output/
/docs/node_modules/
/installer/installer-windows.generated.iss
/cmake-build-debug/

9
.gitmodules vendored
View File

@ -1,12 +1,3 @@
[submodule "deps/websocketpp"]
path = deps/websocketpp
url = https://github.com/zaphoyd/websocketpp.git
[submodule "deps/asio"]
path = deps/asio
url = https://github.com/chriskohlhoff/asio.git
[submodule "deps/json"]
path = deps/json
url = https://github.com/nlohmann/json.git
[submodule "deps/qr"]
path = deps/qr
url = https://github.com/nayuki/QR-Code-generator.git

View File

@ -1,52 +1,38 @@
project(obs-websocket VERSION 5.1.0)
cmake_minimum_required(VERSION 3.16...3.25)
legacy_check()
set(obs-websocket_VERSION 5.2.3)
set(OBS_WEBSOCKET_RPC_VERSION 1)
option(ENABLE_WEBSOCKET "Enable building OBS with websocket plugin" ON)
if(NOT ENABLE_WEBSOCKET OR NOT ENABLE_UI)
message(STATUS "OBS: DISABLED obs-websocket")
if(NOT ENABLE_WEBSOCKET)
target_disable(obs-websocket)
return()
endif()
# Submodule deps check
if(NOT
(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/deps/json/CMakeLists.txt
AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/deps/websocketpp/CMakeLists.txt
AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/deps/qr/cpp/QrCode.hpp
AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/deps/asio/asio/include/asio.hpp))
obs_status(FATAL_ERROR "obs-websocket submodule deps not available.")
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/deps/qr/cpp/QrCode.hpp")
message(FATAL_ERROR "obs-websocket submodule deps not available.")
endif()
# Plugin tests flag
option(PLUGIN_TESTS "Enable plugin runtime tests" OFF)
# Qt build stuff
set(CMAKE_PREFIX_PATH "${QTDIR}")
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON) # For resources.qrc
# Find Qt
find_qt(COMPONENTS Core Widgets Svg Network)
# Find nlohmann
set(JSON_BuildTests
OFF
CACHE INTERNAL "")
add_subdirectory(deps/json)
# Find nlohmann JSON
find_package(nlohmann_json 3 REQUIRED)
# Tell websocketpp not to use system boost
add_definitions(-DASIO_STANDALONE)
# Find WebSocket++
find_package(Websocketpp 0.8 REQUIRED)
# Configure files
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/plugin-macros.h.in
${CMAKE_CURRENT_SOURCE_DIR}/src/plugin-macros.generated.h)
# Find Asio
find_package(Asio 1.12.1 REQUIRED)
# Setup target
add_library(obs-websocket MODULE)
add_library(OBS::websocket ALIAS obs-websocket)
target_sources(obs-websocket PRIVATE)
target_sources(
obs-websocket
PRIVATE src/obs-websocket.cpp
@ -54,50 +40,59 @@ target_sources(
src/Config.cpp
src/Config.h
lib/obs-websocket-api.h
src/forms/SettingsDialog.cpp
src/forms/SettingsDialog.h
src/forms/ConnectInfo.cpp
src/forms/ConnectInfo.h
src/forms/resources.qrc
src/forms/SettingsDialog.cpp
src/forms/SettingsDialog.h
src/WebSocketApi.cpp
src/WebSocketApi.h
src/websocketserver/WebSocketServer.cpp
src/WebSocketApi.h)
target_sources(
obs-websocket
PRIVATE src/websocketserver/WebSocketServer.cpp
src/websocketserver/WebSocketServer_Protocol.cpp
src/websocketserver/WebSocketServer.h
src/websocketserver/rpc/WebSocketSession.cpp
src/websocketserver/rpc/WebSocketSession.h
src/websocketserver/types/WebSocketCloseCode.h
src/websocketserver/types/WebSocketOpCode.h
src/eventhandler/EventHandler.cpp
src/eventhandler/EventHandler_General.cpp
src/eventhandler/EventHandler_Config.cpp
src/eventhandler/EventHandler_Scenes.cpp
src/eventhandler/EventHandler_Inputs.cpp
src/eventhandler/EventHandler_Transitions.cpp
src/eventhandler/EventHandler_Filters.cpp
src/eventhandler/EventHandler_Outputs.cpp
src/eventhandler/EventHandler_SceneItems.cpp
src/eventhandler/EventHandler_MediaInputs.cpp
src/eventhandler/EventHandler_Ui.cpp
src/websocketserver/types/WebSocketOpCode.h)
target_sources(
obs-websocket
PRIVATE src/eventhandler/EventHandler.cpp
src/eventhandler/EventHandler.h
src/eventhandler/types/EventSubscription.h
src/requesthandler/RequestHandler.cpp
src/requesthandler/RequestHandler_General.cpp
src/requesthandler/RequestHandler_Config.cpp
src/requesthandler/RequestHandler_Sources.cpp
src/requesthandler/RequestHandler_Scenes.cpp
src/requesthandler/RequestHandler_Inputs.cpp
src/requesthandler/RequestHandler_Transitions.cpp
src/requesthandler/RequestHandler_Filters.cpp
src/requesthandler/RequestHandler_SceneItems.cpp
src/requesthandler/RequestHandler_Outputs.cpp
src/requesthandler/RequestHandler_Stream.cpp
src/requesthandler/RequestHandler_Record.cpp
src/requesthandler/RequestHandler_MediaInputs.cpp
src/requesthandler/RequestHandler_Ui.cpp
src/requesthandler/RequestHandler.h
src/requesthandler/RequestBatchHandler.cpp
src/eventhandler/EventHandler_Config.cpp
src/eventhandler/EventHandler_General.cpp
src/eventhandler/EventHandler_Filters.cpp
src/eventhandler/EventHandler_Inputs.cpp
src/eventhandler/EventHandler_MediaInputs.cpp
src/eventhandler/EventHandler_Outputs.cpp
src/eventhandler/EventHandler_Scenes.cpp
src/eventhandler/EventHandler_SceneItems.cpp
src/eventhandler/EventHandler_Transitions.cpp
src/eventhandler/EventHandler_Ui.cpp
src/eventhandler/types/EventSubscription.h)
target_sources(
obs-websocket
PRIVATE src/requesthandler/RequestBatchHandler.cpp
src/requesthandler/RequestBatchHandler.h
src/requesthandler/RequestHandler.cpp
src/requesthandler/RequestHandler.h
src/requesthandler/RequestHandler_Config.cpp
src/requesthandler/RequestHandler_Filters.cpp
src/requesthandler/RequestHandler_General.cpp
src/requesthandler/RequestHandler_Inputs.cpp
src/requesthandler/RequestHandler_MediaInputs.cpp
src/requesthandler/RequestHandler_Outputs.cpp
src/requesthandler/RequestHandler_Sources.cpp
src/requesthandler/RequestHandler_Record.cpp
src/requesthandler/RequestHandler_Scenes.cpp
src/requesthandler/RequestHandler_SceneItems.cpp
src/requesthandler/RequestHandler_Stream.cpp
src/requesthandler/RequestHandler_Transitions.cpp
src/requesthandler/RequestHandler_Ui.cpp
src/requesthandler/rpc/Request.cpp
src/requesthandler/rpc/Request.h
src/requesthandler/rpc/RequestBatchRequest.cpp
@ -105,34 +100,50 @@ target_sources(
src/requesthandler/rpc/RequestResult.cpp
src/requesthandler/rpc/RequestResult.h
src/requesthandler/types/RequestStatus.h
src/requesthandler/types/RequestBatchExecutionType.h
src/requesthandler/types/RequestBatchExecutionType.h)
target_sources(
obs-websocket
PRIVATE src/utils/Compat.cpp
src/utils/Compat.h
src/utils/Crypto.cpp
src/utils/Crypto.h
src/utils/Json.cpp
src/utils/Json.h
src/utils/Obs.cpp
src/utils/Obs_StringHelper.cpp
src/utils/Obs_NumberHelper.cpp
src/utils/Obs_ArrayHelper.cpp
src/utils/Obs_ObjectHelper.cpp
src/utils/Obs_SearchHelper.cpp
src/utils/Obs_ActionHelper.cpp
src/utils/Obs.h
src/utils/Obs_ActionHelper.cpp
src/utils/Obs_ArrayHelper.cpp
src/utils/Obs_NumberHelper.cpp
src/utils/Obs_ObjectHelper.cpp
src/utils/Obs_StringHelper.cpp
src/utils/Obs_SearchHelper.cpp
src/utils/Obs_VolumeMeter.cpp
src/utils/Obs_VolumeMeter.h
src/utils/Obs_VolumeMeter_Helpers.h
src/utils/Platform.cpp
src/utils/Platform.h
src/utils/Compat.cpp
src/utils/Compat.h
src/utils/Utils.h
deps/qr/cpp/QrCode.cpp
deps/qr/cpp/QrCode.hpp)
src/utils/Utils.h)
target_include_directories(
target_sources(obs-websocket PRIVATE deps/qr/cpp/QrCode.cpp deps/qr/cpp/QrCode.hpp)
configure_file(src/plugin-macros.h.in plugin-macros.generated.h)
target_sources(obs-websocket PRIVATE plugin-macros.generated.h)
target_compile_definitions(
obs-websocket PRIVATE ASIO_STANDALONE $<$<BOOL:PLUGIN_TESTS>:PLUGIN_TESTS>
$<$<PLATFORM_ID:Windows>:_WEBSOCKETPP_CPP11_STL_> $<$<PLATFORM_ID:Windows>:_WIN32_WINNT=0x0603>)
target_compile_options(
obs-websocket
PRIVATE ${Qt5Core_INCLUDES} ${Qt5Widgets_INCLUDES} ${Qt5Svg_INCLUDES}
${Qt5Network_INCLUDES} "deps/asio/asio/include" "deps/websocketpp")
PRIVATE
$<$<PLATFORM_ID:Windows>:/wd4267>
$<$<PLATFORM_ID:Windows>:/wd4996>
$<$<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>:-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;-Wno-comma;-Wno-quoted-include-in-framework-header>
)
target_link_libraries(
obs-websocket
@ -142,33 +153,21 @@ target_link_libraries(
Qt::Widgets
Qt::Svg
Qt::Network
nlohmann_json::nlohmann_json)
nlohmann_json::nlohmann_json
Websocketpp::Websocketpp
Asio::Asio)
target_compile_features(obs-websocket PRIVATE cxx_std_17)
set_target_properties_obs(
obs-websocket
PROPERTIES FOLDER plugins
PREFIX ""
AUTOMOC ON
AUTOUIC ON
AUTORCC ON)
set_target_properties(obs-websocket PROPERTIES FOLDER "plugins/obs-websocket")
if(PLUGIN_TESTS)
target_compile_definitions(obs-websocket PRIVATE PLUGIN_TESTS)
if(OS_WINDOWS)
set_property(
TARGET obs-websocket
APPEND
PROPERTY AUTORCC_OPTIONS --format-version 1)
endif()
# Random other things
if(WIN32)
add_definitions(-D_WEBSOCKETPP_CPP11_STL_)
endif()
if(MSVC)
target_compile_options(obs-websocket PRIVATE /wd4267 /wd4996)
else()
target_compile_options(
obs-websocket
PRIVATE
-Wall
"$<$<COMPILE_LANG_AND_ID:CXX,GNU>:-Wno-error=format-overflow>"
"$<$<COMPILE_LANG_AND_ID:CXX,AppleClang,Clang>:-Wno-error=null-pointer-subtraction;-Wno-error=deprecated-declarations>"
)
endif()
# Final CMake helpers
setup_plugin_target(obs-websocket)
setup_target_resources(obs-websocket "obs-plugins/obs-websocket")

View File

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

174
cmake/legacy.cmake Normal file
View File

@ -0,0 +1,174 @@
project(obs-websocket VERSION 5.2.3)
set(OBS_WEBSOCKET_RPC_VERSION 1)
option(ENABLE_WEBSOCKET "Enable building OBS with websocket plugin" ON)
if(NOT ENABLE_WEBSOCKET OR NOT ENABLE_UI)
message(STATUS "OBS: DISABLED obs-websocket")
return()
endif()
# Submodule deps check
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/deps/qr/cpp/QrCode.hpp)
obs_status(FATAL_ERROR "obs-websocket submodule deps not available.")
endif()
# Plugin tests flag
option(PLUGIN_TESTS "Enable plugin runtime tests" OFF)
# Find Qt
find_qt(COMPONENTS Core Widgets Svg Network)
# Find nlohmann JSON
find_package(nlohmann_json 3 REQUIRED)
# Find WebSocket++
find_package(Websocketpp 0.8 REQUIRED)
# Find Asio
find_package(Asio 1.12.1 REQUIRED)
# Tell websocketpp not to use system boost
add_definitions(-DASIO_STANDALONE)
# Configure files
configure_file(src/plugin-macros.h.in plugin-macros.generated.h)
# Setup target
add_library(obs-websocket MODULE)
add_library(OBS::websocket ALIAS obs-websocket)
set_target_properties(
obs-websocket
PROPERTIES AUTOMOC ON
AUTOUIC ON
AUTORCC ON)
if(_QT_VERSION EQUAL 6 AND OS_WINDOWS)
set_target_properties(obs-websocket PROPERTIES AUTORCC_OPTIONS "--format-version;1")
endif()
target_include_directories(obs-websocket PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
target_sources(
obs-websocket
PRIVATE src/obs-websocket.cpp
src/obs-websocket.h
src/Config.cpp
src/Config.h
lib/obs-websocket-api.h
src/forms/SettingsDialog.cpp
src/forms/SettingsDialog.h
src/forms/ConnectInfo.cpp
src/forms/ConnectInfo.h
src/forms/resources.qrc
src/WebSocketApi.cpp
src/WebSocketApi.h
src/websocketserver/WebSocketServer.cpp
src/websocketserver/WebSocketServer_Protocol.cpp
src/websocketserver/WebSocketServer.h
src/websocketserver/rpc/WebSocketSession.cpp
src/websocketserver/rpc/WebSocketSession.h
src/websocketserver/types/WebSocketCloseCode.h
src/websocketserver/types/WebSocketOpCode.h
src/eventhandler/EventHandler.cpp
src/eventhandler/EventHandler_General.cpp
src/eventhandler/EventHandler_Config.cpp
src/eventhandler/EventHandler_Scenes.cpp
src/eventhandler/EventHandler_Inputs.cpp
src/eventhandler/EventHandler_Transitions.cpp
src/eventhandler/EventHandler_Filters.cpp
src/eventhandler/EventHandler_Outputs.cpp
src/eventhandler/EventHandler_SceneItems.cpp
src/eventhandler/EventHandler_MediaInputs.cpp
src/eventhandler/EventHandler_Ui.cpp
src/eventhandler/EventHandler.h
src/eventhandler/types/EventSubscription.h
src/requesthandler/RequestHandler.cpp
src/requesthandler/RequestHandler_General.cpp
src/requesthandler/RequestHandler_Config.cpp
src/requesthandler/RequestHandler_Sources.cpp
src/requesthandler/RequestHandler_Scenes.cpp
src/requesthandler/RequestHandler_Inputs.cpp
src/requesthandler/RequestHandler_Transitions.cpp
src/requesthandler/RequestHandler_Filters.cpp
src/requesthandler/RequestHandler_SceneItems.cpp
src/requesthandler/RequestHandler_Outputs.cpp
src/requesthandler/RequestHandler_Stream.cpp
src/requesthandler/RequestHandler_Record.cpp
src/requesthandler/RequestHandler_MediaInputs.cpp
src/requesthandler/RequestHandler_Ui.cpp
src/requesthandler/RequestHandler.h
src/requesthandler/RequestBatchHandler.cpp
src/requesthandler/RequestBatchHandler.h
src/requesthandler/rpc/Request.cpp
src/requesthandler/rpc/Request.h
src/requesthandler/rpc/RequestBatchRequest.cpp
src/requesthandler/rpc/RequestBatchRequest.h
src/requesthandler/rpc/RequestResult.cpp
src/requesthandler/rpc/RequestResult.h
src/requesthandler/types/RequestStatus.h
src/requesthandler/types/RequestBatchExecutionType.h
src/utils/Crypto.cpp
src/utils/Crypto.h
src/utils/Json.cpp
src/utils/Json.h
src/utils/Obs.cpp
src/utils/Obs_StringHelper.cpp
src/utils/Obs_NumberHelper.cpp
src/utils/Obs_ArrayHelper.cpp
src/utils/Obs_ObjectHelper.cpp
src/utils/Obs_SearchHelper.cpp
src/utils/Obs_ActionHelper.cpp
src/utils/Obs.h
src/utils/Obs_VolumeMeter.cpp
src/utils/Obs_VolumeMeter.h
src/utils/Obs_VolumeMeter_Helpers.h
src/utils/Platform.cpp
src/utils/Platform.h
src/utils/Compat.cpp
src/utils/Compat.h
src/utils/Utils.h
deps/qr/cpp/QrCode.cpp
deps/qr/cpp/QrCode.hpp)
target_link_libraries(
obs-websocket
PRIVATE OBS::libobs
OBS::frontend-api
Qt::Core
Qt::Widgets
Qt::Svg
Qt::Network
nlohmann_json::nlohmann_json
Websocketpp::Websocketpp
Asio::Asio)
target_compile_features(obs-websocket PRIVATE cxx_std_17)
set_target_properties(obs-websocket PROPERTIES FOLDER "plugins/obs-websocket")
if(PLUGIN_TESTS)
target_compile_definitions(obs-websocket PRIVATE PLUGIN_TESTS)
endif()
# Random other things
if(WIN32)
add_definitions(-D_WEBSOCKETPP_CPP11_STL_)
endif()
if(MSVC)
target_compile_options(obs-websocket PRIVATE /wd4267 /wd4996)
else()
target_compile_options(
obs-websocket
PRIVATE
-Wall
"$<$<COMPILE_LANG_AND_ID:CXX,GNU>:-Wno-error=format-overflow>"
"$<$<COMPILE_LANG_AND_ID:CXX,AppleClang,Clang>:-Wno-error=null-pointer-subtraction;-Wno-error=deprecated-declarations>"
)
endif()
# Final CMake helpers
setup_plugin_target(obs-websocket)
setup_target_resources(obs-websocket "obs-plugins/obs-websocket")

28
cmake/macos/Info.plist.in Normal file
View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleName</key>
<string>obs-websocket</string>
<key>CFBundleIdentifier</key>
<string>com.obsproject.obs-websocket</string>
<key>CFBundleVersion</key>
<string>${MACOSX_BUNDLE_BUNDLE_VERSION}</string>
<key>CFBundleShortVersionString</key>
<string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleExecutable</key>
<string>obs-websocket</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>LSMinimumSystemVersion</key>
<string>${CMAKE_OSX_DEPLOYMENT_TARGET}</string>
<key>NSHumanReadableCopyright</key>
<string>(c) 2016-${CURRENT_YEAR} Stéphane Lepin, Kyle Manning</string>
</dict>
</plist>

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="التحكم عن بعد في استوديو OBS من خلال WebSocket"
OBSWebSocket.Settings.DialogTitle="إعدادات obs-websocket"
OBSWebSocket.Settings.DialogTitle="إعدادات خادم WebSocket"
OBSWebSocket.Settings.PluginSettingsTitle="إعدادات الإضافات"
OBSWebSocket.Settings.ServerEnable="تمكين خادم WebSocket"
OBSWebSocket.Settings.AlertsEnable="تمكين تنبيهات شريط النظام"

View File

@ -1,10 +1,10 @@
OBSWebSocket.Plugin.Description="Control remot de l'OBS Studio mitjançant un servidor web"
OBSWebSocket.Settings.DialogTitle="Configuració del servidor web de l'OBS"
OBSWebSocket.Plugin.Description="Control remot de l'OBS Studio mitjançant WebSocket"
OBSWebSocket.Settings.DialogTitle="Configuració del servidor WebSocket"
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.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.AuthRequired="Habilita l'autenticació"
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.ShowConnectInfoWarningInfoText="Segur que voleu mostrar la vostra informació de connexió?"
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.PasswordInvalidErrorTitle="Error: Configuració no vàlida"
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.SessionDurationColumnTitle="Durada de la sessió"
OBSWebSocket.SessionTable.MessagesInOutColumnTitle="Missatges d'entrada/sortida"
OBSWebSocket.SessionTable.IdentifiedTitle="Identificat"
OBSWebSocket.SessionTable.KickButtonColumnTitle="Expuls?"
OBSWebSocket.SessionTable.KickButtonColumnTitle="Expulsar?"
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.ServerIp="Adreça IP (més acurada)"
OBSWebSocket.ConnectInfo.ServerPort="Port"
OBSWebSocket.ConnectInfo.ServerPassword="Contrasenya"
OBSWebSocket.ConnectInfo.ServerPasswordPlaceholderText="[Autenticació inhabilitada]"
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.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.Disconnected.Title="Client desconnectat del servidor Web"
OBSWebSocket.TrayNotification.Disconnected.Title="Client desconnectat del servidor WebSocket"
OBSWebSocket.TrayNotification.Disconnected.Body="Client %1 desconnectat."
OBSWebSocket.Server.StartFailed.Title="Ha fallat el servidor Web (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.Title="Ha fallat el servidor WebSocket"
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"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="Vzdálené ovládání OBS Studia přes WebSocket"
OBSWebSocket.Settings.DialogTitle="Nastavení obs-websocket"
OBSWebSocket.Settings.DialogTitle="Nastavení WebSocket serveru"
OBSWebSocket.Settings.PluginSettingsTitle="Nastavení pluginu"
OBSWebSocket.Settings.ServerEnable="Povolit WebSocketový server"
OBSWebSocket.Settings.AlertsEnable="Povolit upozornění v systémové liště"

View File

@ -1,5 +1,4 @@
OBSWebSocket.Plugin.Description="Fjernstyring af OBS Studio via WebSocket"
OBSWebSocket.Settings.DialogTitle="obs-websocket Indstillinger"
OBSWebSocket.Settings.PluginSettingsTitle="Plugin-indstillinger"
OBSWebSocket.Settings.ServerEnable="Aktivér WebSocket-server"
OBSWebSocket.Settings.AlertsEnable="Aktivér Systembakke Alarmer"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="OBS Studio per WebSocket fernsteuern"
OBSWebSocket.Settings.DialogTitle="obs-websocket-Einstellungen"
OBSWebSocket.Settings.DialogTitle="WebSocket-Servereinstellungen"
OBSWebSocket.Settings.PluginSettingsTitle="Plugineinstellungen"
OBSWebSocket.Settings.ServerEnable="WebSocket-Server aktivieren"
OBSWebSocket.Settings.AlertsEnable="Warnungen im Infobereich aktivieren"

42
data/locale/el-GR.ini Normal file
View File

@ -0,0 +1,42 @@
OBSWebSocket.Plugin.Description="Απομακρυσμένος έλεγχος του OBS Studio μέσω WebSocket"
OBSWebSocket.Settings.PluginSettingsTitle="Ρυθμίσεις Προσθέτων"
OBSWebSocket.Settings.ServerEnable="Ενεργοποίηση διακομιστή WebSocket"
OBSWebSocket.Settings.AlertsEnable="Ενεργοποίηση Ειδοποιήσεων στο System Tray"
OBSWebSocket.Settings.DebugEnable="Ενεργοποίηση καταγραφής σφαλμάτων"
OBSWebSocket.Settings.DebugEnableHoverText="Ενεργοποιεί την καταγραφή σφαλμάτων για την τρέχουσα εικόνα του OBS. Δεν επιμένει κατά τη φόρτωση.\nΧρησιμοποίησε το --websocket_debug για να ενεργοποιηθεί κατά τη φόρτωση."
OBSWebSocket.Settings.ServerSettingsTitle="Ρυθμίσεις Διακομιστή"
OBSWebSocket.Settings.AuthRequired="Ενεργοποίηση Επαλήθευσης Στοιχείων"
OBSWebSocket.Settings.Password="Κωδικός Διακομιστή"
OBSWebSocket.Settings.GeneratePassword="Δημιουργία Κωδικού"
OBSWebSocket.Settings.ServerPort="Θύρα Διακομιστή"
OBSWebSocket.Settings.ShowConnectInfo="Εμφάνιση Πληροφοριών Σύνδεσης"
OBSWebSocket.Settings.ShowConnectInfoWarningTitle="Προειδοποίηση: Ενεργό επί του Παρόντος"
OBSWebSocket.Settings.ShowConnectInfoWarningMessage="Φαίνεται ότι μια έξοδος (ροή, εγγραφή, κλπ.) είναι ενεργή αυτή τη στιγμή."
OBSWebSocket.Settings.ShowConnectInfoWarningInfoText="Είστε βέβαιοι ότι θέλετε να εμφανιστούν οι πληροφορίες σύνδεσης σας?"
OBSWebSocket.Settings.Save.UserPasswordWarningTitle="Προειδοποίηση: Πιθανό Πρόβλημα Ασφαλείας"
OBSWebSocket.Settings.Save.UserPasswordWarningMessage="Το obs-websocket αποθηκεύει τον κωδικό πρόσβασης του διακομιστή ως απλό κείμενο. Χρησιμοποιώντας έναν κωδικό πρόσβασης που δημιουργείται από το obs-websocket συνιστάται ιδιαίτερα."
OBSWebSocket.Settings.Save.UserPasswordWarningInfoText="Είστε βέβαιοι ότι θέλετε να χρησιμοποιήσετε το δικό σας κωδικό πρόσβασης?"
OBSWebSocket.Settings.Save.PasswordInvalidErrorTitle="Σφάλμα: Μη Έγκυρη Ρύθμιση"
OBSWebSocket.Settings.Save.PasswordInvalidErrorMessage="Πρέπει να χρησιμοποιήσετε έναν κωδικό πρόσβασης με 6 ή περισσότερους χαρακτήρες."
OBSWebSocket.SessionTable.Title="Συνδεδεμένες Συνεδρίες WebSocket"
OBSWebSocket.SessionTable.RemoteAddressColumnTitle="Απομακρυσμένη Διεύθυνση"
OBSWebSocket.SessionTable.SessionDurationColumnTitle="Διάρκεια Συνεδρίας"
OBSWebSocket.SessionTable.MessagesInOutColumnTitle="Εισερχόμενα/Εξερχόμενα Μηνύματα"
OBSWebSocket.SessionTable.IdentifiedTitle="Ταυτοποιήθηκε"
OBSWebSocket.SessionTable.KickButtonColumnTitle="Διακοπή?"
OBSWebSocket.SessionTable.KickButtonText="Διακοπή"
OBSWebSocket.ConnectInfo.DialogTitle="Πληροφορίες Σύνδεσης WebSocket"
OBSWebSocket.ConnectInfo.CopyText="Αντιγραφή"
OBSWebSocket.ConnectInfo.ServerIp="IP Διακομιστή (Βέλτιστη Εκτίμηση)"
OBSWebSocket.ConnectInfo.ServerPort="Θύρα Διακομιστή"
OBSWebSocket.ConnectInfo.ServerPassword="Κωδικός Διακομιστή"
OBSWebSocket.ConnectInfo.ServerPasswordPlaceholderText="[Ταυτοποίηση Απενεργοποιημένη]"
OBSWebSocket.ConnectInfo.QrTitle="Σύνδεση με QR"
OBSWebSocket.TrayNotification.Identified.Title="Νέα Σύνδεση WebSocket"
OBSWebSocket.TrayNotification.Identified.Body="Ο πελάτης %1 ταυτοποιήθηκε."
OBSWebSocket.TrayNotification.AuthenticationFailed.Title="Αποτυχία Ταυτοποίησης WebSocket"
OBSWebSocket.TrayNotification.AuthenticationFailed.Body="Αποτυχία ταυτοποίησης του πελάτη %1."
OBSWebSocket.TrayNotification.Disconnected.Title="Αποσυνδέθηκε ο Πελάτης του WebSocket"
OBSWebSocket.TrayNotification.Disconnected.Body="Ο πελάτης %1 αποσυνδέθηκε."
OBSWebSocket.Server.StartFailed.Title="Αποτυχία Διακομιστή WebSocket"
OBSWebSocket.Server.StartFailed.Message="Ο διακομιστής WebSocket απέτυχε να ξεκινήσει. Η θύρα %1 TCP μπορεί ήδη να χρησιμοποιείται από μια άλλη εφαρμογή σε αυτό το σύστημα. Δοκιμάστε να ορίσετε μια διαφορετική θύρα TCP στις ρυθμίσεις διακομιστή WebSocket ή να σταματήσετε οποιαδήποτε εφαρμογή που θα μπορούσε να χρησιμοποιήσει αυτή τη θύρα.\n Μήνυμα σφάλματος: %2"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="Control remoto de OBS Studio a través de WebSocket"
OBSWebSocket.Settings.DialogTitle="Ajustes de obs-websocket"
OBSWebSocket.Settings.DialogTitle="Ajustes del servidor WebSocket"
OBSWebSocket.Settings.PluginSettingsTitle="Ajustes del plugin"
OBSWebSocket.Settings.ServerEnable="Habilitar servidor WebSocket"
OBSWebSocket.Settings.AlertsEnable="Habilitar alertas en la bandeja del sistema"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="OBS Studio kaugjuhtimine WebSocketi kaudu"
OBSWebSocket.Settings.DialogTitle="obs-websocket seaded"
OBSWebSocket.Settings.DialogTitle="WebSocket serveri seaded"
OBSWebSocket.Settings.PluginSettingsTitle="Plugina seaded"
OBSWebSocket.Settings.ServerEnable="Luba WebSocket server"
OBSWebSocket.Settings.AlertsEnable="Luba hoiatused tegumireal"

42
data/locale/eu-ES.ini Normal file
View File

@ -0,0 +1,42 @@
OBSWebSocket.Plugin.Description="OBS Studioren urruneko kontrolatzailea WebSocket-en bidez"
OBSWebSocket.Settings.PluginSettingsTitle="Plugin Ezarpenak"
OBSWebSocket.Settings.ServerEnable="WebSocket zerbitzaria gaitu"
OBSWebSocket.Settings.AlertsEnable="Aktibatu sistema-erretiluko alertak"
OBSWebSocket.Settings.DebugEnable="Gaitu arazketa erregistroa"
OBSWebSocket.Settings.DebugEnableHoverText="OBSren uneko instantzian arazketa erregistroa gaitzen du. Berriro irekitzerakoan ez da mantenduko . \nErabili --websocket_debug kargatzerakoan gaitzeko."
OBSWebSocket.Settings.ServerSettingsTitle="Zerbitzariaren Ezarpenak"
OBSWebSocket.Settings.AuthRequired="Autentifikazioa aktibatu"
OBSWebSocket.Settings.Password="Zerbitzari pasahitza"
OBSWebSocket.Settings.GeneratePassword="Pasahitza sortu"
OBSWebSocket.Settings.ServerPort="Zerbitzari portua"
OBSWebSocket.Settings.ShowConnectInfo="Konexio-informazioa erakutsi"
OBSWebSocket.Settings.ShowConnectInfoWarningTitle="Adi: Zuzenean zaude"
OBSWebSocket.Settings.ShowConnectInfoWarningMessage="Irteera bat (stream, grabazioa, etab.) aktibo dagoela badirudi."
OBSWebSocket.Settings.ShowConnectInfoWarningInfoText="Ziur zaude konexio-informazioa erakutsi nahi duzula?"
OBSWebSocket.Settings.Save.UserPasswordWarningTitle="Adi: Segurtasun arazo potentziala"
OBSWebSocket.Settings.Save.UserPasswordWarningMessage="obs-websocket-ek zerbitzariaren pasahitza testu sinple gisa gordetzen du. obs-websocket bidez sortutako pasahitza erabiltzea gomendatzen da."
OBSWebSocket.Settings.Save.UserPasswordWarningInfoText="Ziur zaude zure pasahitza erabili nahi duzula?"
OBSWebSocket.Settings.Save.PasswordInvalidErrorTitle="Errorea: konfigurazio baliogabea"
OBSWebSocket.Settings.Save.PasswordInvalidErrorMessage="6 karaktere edo gehiagoko pasahitza erabili behar duzu."
OBSWebSocket.SessionTable.Title="Konektatutako WebSocket saioak"
OBSWebSocket.SessionTable.RemoteAddressColumnTitle="Urruneko helbidea"
OBSWebSocket.SessionTable.SessionDurationColumnTitle="Saioaren iraupena"
OBSWebSocket.SessionTable.MessagesInOutColumnTitle="Sarrera-/irteera-mezuak"
OBSWebSocket.SessionTable.IdentifiedTitle="Identifikatuta"
OBSWebSocket.SessionTable.KickButtonColumnTitle="Kanporatu?"
OBSWebSocket.SessionTable.KickButtonText="Kanporatu"
OBSWebSocket.ConnectInfo.DialogTitle="WebSocket konexio-informazioa"
OBSWebSocket.ConnectInfo.CopyText="Kopiatu"
OBSWebSocket.ConnectInfo.ServerIp="Zerbitzariaren IP-a (proposamen hoberena)"
OBSWebSocket.ConnectInfo.ServerPort="Zerbitzari portua"
OBSWebSocket.ConnectInfo.ServerPassword="Zerbitzari pasahitza"
OBSWebSocket.ConnectInfo.ServerPasswordPlaceholderText="[Autorizazioa desgaituta]"
OBSWebSocket.ConnectInfo.QrTitle="Konexioaren QR kodea"
OBSWebSocket.TrayNotification.Identified.Title="WebSocket konexio berria"
OBSWebSocket.TrayNotification.Identified.Body="%1 bezeroa identifikatuta."
OBSWebSocket.TrayNotification.AuthenticationFailed.Title="WebSocket Autentikazioan hutsegitea"
OBSWebSocket.TrayNotification.AuthenticationFailed.Body="%1 bezeroak autentifikatzen huts egin du."
OBSWebSocket.TrayNotification.Disconnected.Title="WebSocket Bezeroa deskonektatu da"
OBSWebSocket.TrayNotification.Disconnected.Body="%1 bezeroa deskonektatu da."
OBSWebSocket.Server.StartFailed.Title="WebSocket Zerbitzari hutsegitea"
OBSWebSocket.Server.StartFailed.Message="WebSocket zerbitzaria ez da hasi. %1 TCP portua agian dagoeneko beste aplikazio batek erabiltzen ari du sistema honetan. Saiatu beste TCP portu bat konfiguratzen WebSocket zerbitzariaren konfigurazioan, edo portu hori erabiltzen ari den edozein aplikazio geldiarazi.\nErrore-mezua: %2"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="کنترل از راه دور OBS Studio از طریق WebSocket"
OBSWebSocket.Settings.DialogTitle="تنظیمات obs-سوکت وب"
OBSWebSocket.Settings.DialogTitle="تنظیمات سرور سوکت وب"
OBSWebSocket.Settings.PluginSettingsTitle="تنظیمات پلاگین"
OBSWebSocket.Settings.ServerEnable="سرور سوکت وب را فعال کنید"
OBSWebSocket.Settings.AlertsEnable="هشدارهای سینی سیستم را فعال کنید"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="OBS Studion etähallinta WebSocketin kautta"
OBSWebSocket.Settings.DialogTitle="obs-websocketin asetukset"
OBSWebSocket.Settings.DialogTitle="WebSocket-palvelimen asetukset"
OBSWebSocket.Settings.PluginSettingsTitle="Liitännäisen asetukset"
OBSWebSocket.Settings.ServerEnable="Ota WebSocket-palvelin käyttöön"
OBSWebSocket.Settings.AlertsEnable="Ota ilmoitusalueen ilmoitukset käyttöön"

39
data/locale/fil-PH.ini Normal file
View File

@ -0,0 +1,39 @@
OBSWebSocket.Plugin.Description="Remote-control ng OBS Studio sa pamamagitan ng WebSocket"
OBSWebSocket.Settings.DialogTitle="Mga Setting Ng WebSocket Server"
OBSWebSocket.Settings.PluginSettingsTitle="Mga Setting ng Plugin"
OBSWebSocket.Settings.ServerEnable="Paganahin ang WebSocket server"
OBSWebSocket.Settings.AlertsEnable="Paganahin ang System Tray Alerto"
OBSWebSocket.Settings.DebugEnable="Paganahin ang Debug Log"
OBSWebSocket.Settings.DebugEnableHoverText="Paganahin ang debug log para sa kasalukuyang instance ng OBS. Hindi nagpapatuloy sa pag-load.\nGumamit ng --websocket_debug upang paganahin ang pag-load."
OBSWebSocket.Settings.ServerSettingsTitle="Mga setting ng Server"
OBSWebSocket.Settings.AuthRequired="Paggamit ng Pagpapatunay"
OBSWebSocket.Settings.Password="Password ng server"
OBSWebSocket.Settings.GeneratePassword="Mag-Generate ng Password"
OBSWebSocket.Settings.ShowConnectInfo="Ipakita ang Impormasyon sa Pagkonekta"
OBSWebSocket.Settings.ShowConnectInfoWarningTitle="Babala: Kasalukuyang nakalive"
OBSWebSocket.Settings.ShowConnectInfoWarningMessage="Lumalabas na kasalukuyang aktibo ang isang output (stream, recording, atbp.)."
OBSWebSocket.Settings.ShowConnectInfoWarningInfoText="Sigurado ka bang gusto mong ipakita ang iyong impormasyon sa pagkonekta?"
OBSWebSocket.Settings.Save.UserPasswordWarningTitle="Babala: Potensyal na Isyu sa Seguridad"
OBSWebSocket.Settings.Save.UserPasswordWarningMessage="Iniimbak ng obs-websocket ang password ng server bilang plain text. Ang paggamit ng password na nabuo ng obs-websocket ay lubos na inirerekomenda."
OBSWebSocket.Settings.Save.UserPasswordWarningInfoText="Sigurado ka bang gusto mong gamitin ang iyong sariling password?"
OBSWebSocket.Settings.Save.PasswordInvalidErrorTitle="Error: Di-wastong Configuration"
OBSWebSocket.Settings.Save.PasswordInvalidErrorMessage="Dapat kang gumamit ng password na 6 o higit pang mga character."
OBSWebSocket.SessionTable.Title="Nakakonektang WebSocket Session"
OBSWebSocket.SessionTable.SessionDurationColumnTitle="Tagal ng Session"
OBSWebSocket.SessionTable.MessagesInOutColumnTitle="Mga Mensahe In/Out"
OBSWebSocket.SessionTable.IdentifiedTitle="Kilalanin."
OBSWebSocket.SessionTable.KickButtonColumnTitle="Sipa?"
OBSWebSocket.SessionTable.KickButtonText="Sipa"
OBSWebSocket.ConnectInfo.DialogTitle="Impormasyon ng WebSocket Connect"
OBSWebSocket.ConnectInfo.CopyText="Kopyahin"
OBSWebSocket.ConnectInfo.ServerPassword="Password ng server"
OBSWebSocket.ConnectInfo.ServerPasswordPlaceholderText="[Naka-disable ang Auth]"
OBSWebSocket.ConnectInfo.QrTitle="Ikonekta ang QR"
OBSWebSocket.TrayNotification.Identified.Title="Bagong Koneksyon sa WebSocket"
OBSWebSocket.TrayNotification.Identified.Body="Natukoy ang %1 ng kliyente."
OBSWebSocket.TrayNotification.AuthenticationFailed.Title="Nabigo sa Pagpapatunay ang WebSocket"
OBSWebSocket.TrayNotification.AuthenticationFailed.Body="Nabigo ang kliyenteng %1 na patotohanan."
OBSWebSocket.TrayNotification.Disconnected.Title="Nadiskonekta ang WebSocket Client"
OBSWebSocket.TrayNotification.Disconnected.Body="Nadiskonekta ang kliyenteng %1."
OBSWebSocket.Server.StartFailed.Title="Nabigo ng WebSocket Server"
OBSWebSocket.Server.StartFailed.Message="Nabigong magsimula ang WebSocket server. Ang TCP port %1 ay maaaring ginagamit na sa ibang lugar sa system na ito ng isa pang application. Subukang magtakda ng ibang TCP port sa mga setting ng WebSocket server, o ihinto ang anumang application na maaaring gumagamit ng port na ito.\n Mensahe ng error: %2"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="Contrôle à distance d'OBS Studio via WebSocket"
OBSWebSocket.Settings.DialogTitle="Paramètre du websocket obs"
OBSWebSocket.Settings.DialogTitle="Paramètres du serveur WebSocket"
OBSWebSocket.Settings.PluginSettingsTitle="Paramètres du plugin"
OBSWebSocket.Settings.ServerEnable="Activer le serveur WebSocket"
OBSWebSocket.Settings.AlertsEnable="Activer les alertes de la zone de notification"

6
data/locale/gl-ES.ini Normal file
View File

@ -0,0 +1,6 @@
OBSWebSocket.Settings.ServerSettingsTitle="Configuración do servidor"
OBSWebSocket.ConnectInfo.CopyText="Copiar"
OBSWebSocket.ConnectInfo.ServerPort="Porto do Servidor"
OBSWebSocket.ConnectInfo.ServerPassword="Contrasinal do Servidor"
OBSWebSocket.TrayNotification.Identified.Body="Cliente %1 identificado."
OBSWebSocket.TrayNotification.Disconnected.Body="Cliente %1 desconectado."

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="שליטה מרחוק על OBS Studio באמצעות WebSocket"
OBSWebSocket.Settings.DialogTitle="הגדרות obs-websocket"
OBSWebSocket.Settings.DialogTitle="הגדרות שרת WebSocket"
OBSWebSocket.Settings.PluginSettingsTitle="הגדרות תוסף"
OBSWebSocket.Settings.ServerEnable="הפעלת שרת WebSocket"
OBSWebSocket.Settings.AlertsEnable="הפעלת התראות במגש המערכת"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="WebSocket के माध्यम से OBS स्टूडियो का रिमोट-कंट्रोल"
OBSWebSocket.Settings.DialogTitle="obs-websocket सेटिंग्स"
OBSWebSocket.Settings.DialogTitle="वेबसॉकेट सर्वर सेटिंग्स"
OBSWebSocket.Settings.PluginSettingsTitle="प्लगइन सेटिंग्स"
OBSWebSocket.Settings.ServerEnable="WebSocket सर्वर सक्षम करें"
OBSWebSocket.Settings.AlertsEnable="सिस्टम ट्रे अलर्ट सक्षम करें"

1
data/locale/hr-HR.ini Normal file
View File

@ -0,0 +1 @@
OBSWebSocket.Settings.DialogTitle="Postavke servera WebSocket"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="Az OBS Studio távvezérlése WebSocketen keresztül"
OBSWebSocket.Settings.DialogTitle="Az obs-websocket beállításai"
OBSWebSocket.Settings.DialogTitle="WebSocket-kiszolgáló beállításai"
OBSWebSocket.Settings.PluginSettingsTitle="Bővítménybeállítások"
OBSWebSocket.Settings.ServerEnable="WebSocket-kiszolgáló engedélyezése"
OBSWebSocket.Settings.AlertsEnable="Rendszertálca-riasztások bekapcsolása"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="OBS Studio-ի հեռակառավարումը WebSocket-ի միջոցով"
OBSWebSocket.Settings.DialogTitle="obs-websocket կարգավորումներ"
OBSWebSocket.Settings.DialogTitle="WebSocket Սպասարկչի Կարգավորումները"
OBSWebSocket.Settings.PluginSettingsTitle="Միացնիչի կարգավորումներ"
OBSWebSocket.Settings.ServerEnable="Միացնել WebSocket սերվերը"
OBSWebSocket.Settings.AlertsEnable="Միացնել սկուտեղի ծանուցումները"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="Kendali jarak jauh OBS Studio melalui WebSocket"
OBSWebSocket.Settings.DialogTitle="Pengaturan obs-websocket"
OBSWebSocket.Settings.DialogTitle="Pengaturan Server WebSocket"
OBSWebSocket.Settings.PluginSettingsTitle="Pengaturan Plugin"
OBSWebSocket.Settings.ServerEnable="Aktifkan server WebSocket"
OBSWebSocket.Settings.AlertsEnable="Aktifkan Peringatan Baki Sistem"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="Controllo remoto di OBS Studio tramite WebSocket"
OBSWebSocket.Settings.DialogTitle="Impostazioni obs-websocket"
OBSWebSocket.Settings.DialogTitle="Impostazioni server WebSocket"
OBSWebSocket.Settings.PluginSettingsTitle="Impostazioni del plugin"
OBSWebSocket.Settings.ServerEnable="Abilita il server WebSocket"
OBSWebSocket.Settings.AlertsEnable="Abilita avvisi sulla barra delle applicazioni"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="WebSocketを介したOBS Studioのリモートコントロール"
OBSWebSocket.Settings.DialogTitle="obs-websocket設定"
OBSWebSocket.Settings.DialogTitle="WebSocket サーバー設定"
OBSWebSocket.Settings.PluginSettingsTitle="プラグイン設定"
OBSWebSocket.Settings.ServerEnable="WebSocketサーバーを有効にする"
OBSWebSocket.Settings.AlertsEnable="システムトレイアラートを有効にする"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="OBS Studio-ს დაშორებულად მართვა WebSocket-ით"
OBSWebSocket.Settings.DialogTitle="obs-websocket-პარამეტრები"
OBSWebSocket.Settings.DialogTitle="WebSocket-სერვერის პარამეტრები"
OBSWebSocket.Settings.PluginSettingsTitle="მოდულის პარამეტრები"
OBSWebSocket.Settings.ServerEnable="WebSocket-სერვერის ჩართვა"
OBSWebSocket.Settings.AlertsEnable="სისტემური არეში ცნობების ჩართვა"
@ -14,7 +14,7 @@ OBSWebSocket.Settings.ShowConnectInfo="კავშირის შესახ
OBSWebSocket.Settings.ShowConnectInfoWarningTitle="გაფრთხილება: პირდაპირ ეთერშია"
OBSWebSocket.Settings.ShowConnectInfoWarningMessage="როგორც ჩანს, გამოტანა (ნაკადის, ჩანაწერის და სხვ.) ეთერში გადის."
OBSWebSocket.Settings.ShowConnectInfoWarningInfoText="ნამდვილად გსურთ კავშირის მონაცემების გამოჩენა?"
OBSWebSocket.Settings.Save.UserPasswordWarningTitle="ყურადღება: უსაფრთხოების შესაძლო სისუსტე"
OBSWebSocket.Settings.Save.UserPasswordWarningTitle="ყურადღება: სავარაუდო საფრთხე"
OBSWebSocket.Settings.Save.UserPasswordWarningMessage="obs-websocket სერვერის პაროლს ტექსტის სახით. დაჟინებით გირჩევთ, გამოიყენოთ obs-websocket-ით შედგენილი პაროლი."
OBSWebSocket.Settings.Save.UserPasswordWarningInfoText="ნამდვილად გსურთ საკუთარი პაროლის გამოყენება?"
OBSWebSocket.Settings.Save.PasswordInvalidErrorTitle="შეცდომა: არასწორი გამართვა"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="Rêveberina ji dûr ve ya OBS Studio bi riya WebSocket"
OBSWebSocket.Settings.DialogTitle="Sazkariyên obs-websocket"
OBSWebSocket.Settings.DialogTitle="Sazkariyên rajekar a WebSocket"
OBSWebSocket.Settings.PluginSettingsTitle="Sazkariyên pêvekê"
OBSWebSocket.Settings.ServerEnable="Rajekarê WebSocket çalak bike"
OBSWebSocket.Settings.AlertsEnable="Hişyariyên darika pergalê çalak bike"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="WebSocket으로 OBS Studio를 원격 제어"
OBSWebSocket.Settings.DialogTitle="obs-websocket 설정"
OBSWebSocket.Settings.DialogTitle="WebSocket 서버 설정"
OBSWebSocket.Settings.PluginSettingsTitle="플러그인 설정"
OBSWebSocket.Settings.ServerEnable="WebSocket 서버 사용"
OBSWebSocket.Settings.AlertsEnable="시스템 트레이 알림 사용"

View File

@ -1,5 +1,4 @@
OBSWebSocket.Plugin.Description="Kawalan-jauh OBS Studio melalui WebSocket"
OBSWebSocket.Settings.DialogTitle="Tetapan obs-websocket"
OBSWebSocket.Settings.PluginSettingsTitle="Tetapan Pemalam"
OBSWebSocket.Settings.ServerEnable="Benarkan pelayan WebSocket"
OBSWebSocket.Settings.AlertsEnable="Benarkan Amaran Talam Sistem"

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,5 +1,5 @@
OBSWebSocket.Plugin.Description="Op afstand bediening van OBS Studio via WebSocket"
OBSWebSocket.Settings.DialogTitle="obs-websocket Instellingen"
OBSWebSocket.Settings.DialogTitle="WebSocket Server Instellingen"
OBSWebSocket.Settings.PluginSettingsTitle="Plugin instellingen"
OBSWebSocket.Settings.ServerEnable="WebSocket server inschakelen"
OBSWebSocket.Settings.AlertsEnable="Systeemtray meldingen inschakelen"
@ -30,6 +30,7 @@ OBSWebSocket.ConnectInfo.DialogTitle="WebSocket verbindingsinformatie"
OBSWebSocket.ConnectInfo.CopyText="Kopiëren"
OBSWebSocket.ConnectInfo.ServerIp="Server IP (Beste inschatting)"
OBSWebSocket.ConnectInfo.ServerPort="Serverpoort"
OBSWebSocket.ConnectInfo.ServerPassword="Serverwachtwoord"
OBSWebSocket.ConnectInfo.ServerPasswordPlaceholderText="[Authenticatie Uitgeschakeld]"
OBSWebSocket.ConnectInfo.QrTitle="QR koppelen"
OBSWebSocket.TrayNotification.Identified.Title="Nieuwe WebSocket verbinding"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="Zdalna kontrola OBS Studio przez WebSocket"
OBSWebSocket.Settings.DialogTitle="Ustawienia obs-websocket"
OBSWebSocket.Settings.DialogTitle="Ustawienia serwera WebSocket"
OBSWebSocket.Settings.PluginSettingsTitle="Ustawienia wtyczki"
OBSWebSocket.Settings.ServerEnable="Włącz serwer WebSocket"
OBSWebSocket.Settings.AlertsEnable="Włącz powiadomienia w zasobniku systemowym"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="Controle remoto do OBS Studio através de WebSocket"
OBSWebSocket.Settings.DialogTitle="Configurações OBS-WebSocket"
OBSWebSocket.Settings.DialogTitle="Configurações do servidor WebSocket"
OBSWebSocket.Settings.PluginSettingsTitle="Configurações de Plugin"
OBSWebSocket.Settings.ServerEnable="Ativar servidor WebSocket"
OBSWebSocket.Settings.AlertsEnable="Ativar Alertas da Bandeja do Sistema"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="Controlo remoto do OBS Studio através de WebSocket"
OBSWebSocket.Settings.DialogTitle="Configurações obs-websocket"
OBSWebSocket.Settings.DialogTitle="Definições do servidor WebSocket"
OBSWebSocket.Settings.PluginSettingsTitle="Configurações do plugin"
OBSWebSocket.Settings.ServerEnable="Ativar servidor WebSocket"
OBSWebSocket.Settings.AlertsEnable="Ativar alertas da bandeja do sistema"

View File

@ -1,10 +1,10 @@
OBSWebSocket.Plugin.Description="Control de la distanță pentru OBS Studio prin WebSocket"
OBSWebSocket.Settings.DialogTitle="Setări obs-websocket"
OBSWebSocket.Settings.PluginSettingsTitle="Setări ale plugin-ului"
OBSWebSocket.Settings.DialogTitle="Setări ale server-ului WebSocket"
OBSWebSocket.Settings.PluginSettingsTitle="Setări pentru plugin"
OBSWebSocket.Settings.ServerEnable="Activează serverul WebSocket"
OBSWebSocket.Settings.AlertsEnable="Activați alertele din bara de sistem"
OBSWebSocket.Settings.AlertsEnable="Activează alertele din bara de sistem"
OBSWebSocket.Settings.DebugEnable="Activează jurnalizarea de depanare"
OBSWebSocket.Settings.DebugEnableHoverText="Activează jurnalizarea de depanare pentru instanța curentă de OBS. Nu persistă la încărcare.\nUtilizați --websocket_debug pentru a activa la încărcare."
OBSWebSocket.Settings.DebugEnableHoverText="Activează jurnalizarea de depanare pentru instanța actuală de OBS. Nu persistă la încărcare.\nFolosește --websocket_debug pentru a activa la încărcare."
OBSWebSocket.Settings.ServerSettingsTitle="Setări server"
OBSWebSocket.Settings.AuthRequired="Activează autentificarea"
OBSWebSocket.Settings.Password="Parola serverului"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="Удалённое управление OBS Studio по WebSocket"
OBSWebSocket.Settings.DialogTitle="Настройки obs-websocket"
OBSWebSocket.Settings.DialogTitle="Настройки сервера WebSocket"
OBSWebSocket.Settings.PluginSettingsTitle="Настройки плагина"
OBSWebSocket.Settings.ServerEnable="Включить сервер WebSocket"
OBSWebSocket.Settings.AlertsEnable="Включить оповещения в трее"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="Vzdialené ovládanie OBS Štúdia cez WebSocket"
OBSWebSocket.Settings.DialogTitle="Nastavenia obs-websocket"
OBSWebSocket.Settings.DialogTitle="Serverové nastavenia WebSocket"
OBSWebSocket.Settings.PluginSettingsTitle="Nastavenia pluginu"
OBSWebSocket.Settings.ServerEnable="Zapnúť WebSocket server"
OBSWebSocket.Settings.AlertsEnable="Zapnúť notifikácie zo systémovej lišty"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="Oddaljeni nadzor OBS Studia prek WebSocketa"
OBSWebSocket.Settings.DialogTitle="Nastavitve obs-websocket"
OBSWebSocket.Settings.DialogTitle="Nastavitve strežnika WebSocket"
OBSWebSocket.Settings.PluginSettingsTitle="Nastavitve vtičnika"
OBSWebSocket.Settings.ServerEnable="Omogoči strežnik WebSocket"
OBSWebSocket.Settings.AlertsEnable="Omogoči opozorila v sistemskem pladnju"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="Fjärrkontroll av OBS Studio via WebSocket"
OBSWebSocket.Settings.DialogTitle="Inställningar för obs-websocket"
OBSWebSocket.Settings.DialogTitle="WebSocket-serverinställningar"
OBSWebSocket.Settings.PluginSettingsTitle="Insticksmodulsinställningar"
OBSWebSocket.Settings.ServerEnable="Aktivera WebSocket-server"
OBSWebSocket.Settings.AlertsEnable="Aktivera systemfältsmeddelanden"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="WebSocket aracılığıyla uzaktan OBS Studio"
OBSWebSocket.Settings.DialogTitle="obs-websocket Ayarları"
OBSWebSocket.Settings.DialogTitle="WebSocket Suncusu Ayarları"
OBSWebSocket.Settings.PluginSettingsTitle="Eklenti Ayarları"
OBSWebSocket.Settings.ServerEnable="WebSocket sunucuyu etkinleştir"
OBSWebSocket.Settings.AlertsEnable="Sistem Tepsi Uyarılarını Etkinleştir"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="Віддалене керування OBS Studio через WebSocket"
OBSWebSocket.Settings.DialogTitle="Налаштування obs-websocket"
OBSWebSocket.Settings.DialogTitle="Налаштування WebSocket сервера"
OBSWebSocket.Settings.PluginSettingsTitle="Налаштування плагіна"
OBSWebSocket.Settings.ServerEnable="Увімкнути сервер WebSocket"
OBSWebSocket.Settings.AlertsEnable="Увімкнути сповіщення у системному лотку"

View File

@ -1,7 +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.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.AuthRequired="Bật xác thực"
OBSWebSocket.Settings.Password="Mật khẩu máy chủ"
OBSWebSocket.Settings.GeneratePassword="Tạo mật khẩu"
OBSWebSocket.Settings.ServerPort="Cổng máy chủ"
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.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.ServerPort="Cổng 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.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

@ -1,10 +1,10 @@
OBSWebSocket.Plugin.Description="通过 WebSocket 远程控制 OBS Studio"
OBSWebSocket.Settings.DialogTitle="obs-websocket 设置"
OBSWebSocket.Settings.DialogTitle="WebSocket 服务器设置"
OBSWebSocket.Settings.PluginSettingsTitle="插件设置"
OBSWebSocket.Settings.ServerEnable="开启 WebSocket 服务器"
OBSWebSocket.Settings.AlertsEnable="开启系统托盘提醒"
OBSWebSocket.Settings.DebugEnable="开启调试日志"
OBSWebSocket.Settings.DebugEnableHoverText="启当前 OBS 实例的调试日志。下次启动时需重新设置。\n使用 --websocket_debug 在启动 OBS 时启日志。"
OBSWebSocket.Settings.DebugEnableHoverText="启当前 OBS 实例的调试日志。下次启动时需重新设置。\n使用 --websocket_debug 在启动 OBS 时启日志。"
OBSWebSocket.Settings.ServerSettingsTitle="服务器设置"
OBSWebSocket.Settings.AuthRequired="开启鉴权"
OBSWebSocket.Settings.Password="服务器密码"

View File

@ -1,5 +1,5 @@
OBSWebSocket.Plugin.Description="透過 WebSocket 遠端控制 OBS Studio"
OBSWebSocket.Settings.DialogTitle="obs-websocket 設定"
OBSWebSocket.Settings.DialogTitle="WebSocket 伺服器設定"
OBSWebSocket.Settings.PluginSettingsTitle="外掛程式設定"
OBSWebSocket.Settings.ServerEnable="啟用 WebSocket 伺服器"
OBSWebSocket.Settings.AlertsEnable="啟用系統匣通知"

1
deps/asio vendored

Submodule deps/asio deleted from b73dc1d2c0

1
deps/json vendored

Submodule deps/json deleted from a34e011e24

1
deps/websocketpp vendored

Submodule deps/websocketpp deleted from 56123c8759

View File

@ -61,7 +61,7 @@ These steps should be followed precisely. Failure to connect to the server as in
- The server receives and processes the `Identify` sent by the client.
- If authentication is required and the `Identify` message data does not contain an `authentication` string, or the string is not correct, the connection is closed with `WebSocketCloseCode::AuthenticationFailed`
- If the client has requested an `rpcVersion` which the server cannot use, the connection is closed with `WebSocketCloseCode::UnsupportedRpcVersion`. This system allows both the server and client to have seamless backwards compatability.
- If the client has requested an `rpcVersion` which the server cannot use, the connection is closed with `WebSocketCloseCode::UnsupportedRpcVersion`. This system allows both the server and client to have seamless backwards compatibility.
- If any other parameters are malformed (invalid type, etc), the connection is closed with an appropriate close code.
- Once identification is processed on the server, the server responds to the client with an [OpCode 2 `Identified`](#identified-opcode-2).

View File

@ -237,6 +237,14 @@
"initialVersion": "5.0.0",
"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.",
"enumIdentifier": "MissingRequestField",

View File

@ -1,7 +1,7 @@
<!-- This file was automatically generated. Do not edit directly! -->
<!-- markdownlint-disable no-bare-urls -->
# obs-websocket 5.0.1 Protocol
# obs-websocket 5.1.0 Protocol
## Main Table of Contents
@ -63,7 +63,7 @@ These steps should be followed precisely. Failure to connect to the server as in
- The server receives and processes the `Identify` sent by the client.
- If authentication is required and the `Identify` message data does not contain an `authentication` string, or the string is not correct, the connection is closed with `WebSocketCloseCode::AuthenticationFailed`
- If the client has requested an `rpcVersion` which the server cannot use, the connection is closed with `WebSocketCloseCode::UnsupportedRpcVersion`. This system allows both the server and client to have seamless backwards compatability.
- If the client has requested an `rpcVersion` which the server cannot use, the connection is closed with `WebSocketCloseCode::UnsupportedRpcVersion`. This system allows both the server and client to have seamless backwards compatibility.
- If any other parameters are malformed (invalid type, etc), the connection is closed with an appropriate close code.
- Once identification is processed on the server, the server responds to the client with an [OpCode 2 `Identified`](#identified-opcode-2).
@ -148,7 +148,7 @@ Authentication is required
{
"op": 0,
"d": {
"obsWebSocketVersion": "5.0.1",
"obsWebSocketVersion": "5.1.0",
"rpcVersion": 1,
"authentication": {
"challenge": "+IxH4CnCiqpX1rM9scsNynZzbOe4KhDeYcTNS3PDaeY=",
@ -164,7 +164,7 @@ Authentication is not required
{
"op": 0,
"d": {
"obsWebSocketVersion": "5.0.1",
"obsWebSocketVersion": "5.1.0",
"rpcVersion": 1
}
}
@ -471,6 +471,7 @@ These are enumeration declarations, which are referenced throughout obs-websocke
- [RequestStatus::UnknownRequestType](#requeststatusunknownrequesttype)
- [RequestStatus::GenericError](#requeststatusgenericerror)
- [RequestStatus::UnsupportedRequestBatchExecutionType](#requeststatusunsupportedrequestbatchexecutiontype)
- [RequestStatus::NotReady](#requeststatusnotready)
- [RequestStatus::MissingRequestField](#requeststatusmissingrequestfield)
- [RequestStatus::MissingRequestData](#requeststatusmissingrequestdata)
- [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
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:
eventHandler->FrontendFinishedLoadingMultiHandler();
break;
case OBS_FRONTEND_EVENT_EXIT:
case OBS_FRONTEND_EVENT_SCRIPTING_SHUTDOWN:
eventHandler->FrontendExitMultiHandler();
break;

View File

@ -27,7 +27,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
#include "../obs-websocket.h"
#include "../utils/Obs.h"
#include "../utils/Obs_VolumeMeter.h"
#include "../plugin-macros.generated.h"
#include "plugin-macros.generated.h"
class EventHandler {
public:

View File

@ -103,7 +103,10 @@ void EventHandler::HandleCurrentProgramSceneChanged()
OBSSourceAutoRelease currentScene = obs_frontend_get_current_scene();
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);
}

View File

@ -21,7 +21,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
#include <QtWidgets/QDialog>
#include "../plugin-macros.generated.h"
#include "plugin-macros.generated.h"
#include "ui_ConnectInfo.h"

View File

@ -23,7 +23,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
#include <QTimer>
#include "ConnectInfo.h"
#include "../plugin-macros.generated.h"
#include "plugin-macros.generated.h"
#include "ui_SettingsDialog.h"

View File

@ -30,7 +30,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
#include "../websocketserver/rpc/WebSocketSession.h"
#include "../obs-websocket.h"
#include "../utils/Obs.h"
#include "../plugin-macros.generated.h"
#include "plugin-macros.generated.h"
class RequestHandler;
typedef RequestResult (RequestHandler::*RequestMethodHandler)(const Request &);

View File

@ -178,7 +178,7 @@ RequestResult RequestHandler::CallVendorRequest(const Request &request)
OBSDataAutoRelease requestData = obs_data_create();
if (request.Contains("requestData")) {
if (!request.ValidateOptionalObject("requestData", statusCode, comment))
if (!request.ValidateOptionalObject("requestData", statusCode, comment, true))
return RequestResult::Error(statusCode, comment);
requestData = Utils::Json::JsonToObsData(request.RequestData["requestData"]);

View File

@ -103,6 +103,19 @@ namespace RequestStatus {
* @api enums
*/
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.

View File

@ -22,7 +22,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
#include <QRandomGenerator>
#include "Crypto.h"
#include "../plugin-macros.generated.h"
#include "plugin-macros.generated.h"
static const char allowedChars[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
static const int allowedCharsCount = static_cast<int>(sizeof(allowedChars) - 1);

View File

@ -19,7 +19,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
#include "Json.h"
#include "Platform.h"
#include "../plugin-macros.generated.h"
#include "plugin-macros.generated.h"
bool Utils::Json::JsonArrayIsValidObsArray(const json &j)
{

View File

@ -18,4 +18,4 @@ with this program. If not, see <https://www.gnu.org/licenses/>
*/
#include "Obs.h"
#include "../plugin-macros.generated.h"
#include "plugin-macros.generated.h"

View File

@ -17,7 +17,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
*/
#include "Obs.h"
#include "../plugin-macros.generated.h"
#include "plugin-macros.generated.h"
struct CreateSceneItemData {
obs_source_t *source; // In

View File

@ -20,7 +20,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
#include <algorithm>
#include "Obs.h"
#include "../plugin-macros.generated.h"
#include "plugin-macros.generated.h"
static std::vector<std::string> ConvertStringArray(char **array)
{

View File

@ -21,7 +21,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
#include <util/util_uint64.h>
#include "Obs.h"
#include "../plugin-macros.generated.h"
#include "plugin-macros.generated.h"
uint64_t Utils::Obs::NumberHelper::GetOutputDuration(obs_output_t *output)
{

View File

@ -21,7 +21,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
#include "Obs.h"
#include "../obs-websocket.h"
#include "../plugin-macros.generated.h"
#include "plugin-macros.generated.h"
json Utils::Obs::ObjectHelper::GetStats()
{

View File

@ -17,7 +17,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
*/
#include "Obs.h"
#include "../plugin-macros.generated.h"
#include "plugin-macros.generated.h"
obs_hotkey_t *Utils::Obs::SearchHelper::GetHotkeyByName(std::string name)
{

View File

@ -21,7 +21,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
#include <QString>
#include "Obs.h"
#include "../plugin-macros.generated.h"
#include "plugin-macros.generated.h"
#define CASE(x) \
case x: \

View File

@ -25,7 +25,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
#include <obs-frontend-api.h>
#include "Platform.h"
#include "../plugin-macros.generated.h"
#include "plugin-macros.generated.h"
std::string Utils::Platform::GetLocalAddress()
{

View File

@ -32,7 +32,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
#include "types/WebSocketOpCode.h"
#include "../utils/Json.h"
#include "../requesthandler/rpc/Request.h"
#include "../plugin-macros.generated.h"
#include "plugin-macros.generated.h"
class WebSocketServer : QObject {
Q_OBJECT

View File

@ -104,6 +104,11 @@ void WebSocketServer::ProcessMessage(SessionPtr session, WebSocketServer::Proces
"Your payload's data is missing an `authentication` string, however authentication is required.";
return;
}
if (!payloadData["authentication"].is_string()) {
ret.closeCode = WebSocketCloseCode::AuthenticationFailed;
ret.closeReason = "Your `authentication` field is not a string.";
return;
}
if (!Utils::Crypto::CheckAuthenticationString(session->Secret(), session->Challenge(),
payloadData["authentication"])) {
auto conf = GetConfig();

View File

@ -24,7 +24,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
#include <atomic>
#include <memory>
#include "../../plugin-macros.generated.h"
#include "plugin-macros.generated.h"
class WebSocketSession;
typedef std::shared_ptr<WebSocketSession> SessionPtr;