mirror of
https://github.com/Palakis/obs-websocket.git
synced 2024-08-30 18:12:16 +00:00
Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
7a1c71bb96 | |||
cf285b3761 | |||
ede66a68cb | |||
e8089a5bbf | |||
07537a33fa | |||
efeae8d640 |
@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16...3.25)
|
||||
|
||||
legacy_check()
|
||||
|
||||
set(obs-websocket_VERSION 5.3.3)
|
||||
set(obs-websocket_VERSION 5.3.5)
|
||||
set(OBS_WEBSOCKET_RPC_VERSION 1)
|
||||
|
||||
option(ENABLE_WEBSOCKET "Enable building OBS with websocket plugin" ON)
|
||||
@ -12,7 +12,7 @@ if(NOT ENABLE_WEBSOCKET)
|
||||
endif()
|
||||
|
||||
# Find Qt
|
||||
find_qt(COMPONENTS Core Widgets Svg Network)
|
||||
find_package(Qt6 REQUIRED Core Widgets Svg Network)
|
||||
|
||||
# Find nlohmann JSON
|
||||
find_package(nlohmann_json 3 REQUIRED)
|
||||
@ -31,51 +31,53 @@ find_package(Asio 1.12.1 REQUIRED)
|
||||
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
|
||||
src/obs-websocket.h
|
||||
PRIVATE # cmake-format: sortable
|
||||
lib/obs-websocket-api.h
|
||||
src/Config.cpp
|
||||
src/Config.h
|
||||
lib/obs-websocket-api.h
|
||||
src/forms/ConnectInfo.cpp
|
||||
src/forms/ConnectInfo.h
|
||||
src/forms/resources.qrc
|
||||
src/forms/SettingsDialog.cpp
|
||||
src/forms/SettingsDialog.h
|
||||
src/obs-websocket.cpp
|
||||
src/obs-websocket.h
|
||||
src/WebSocketApi.cpp
|
||||
src/WebSocketApi.h)
|
||||
|
||||
target_sources(
|
||||
obs-websocket
|
||||
PRIVATE src/websocketserver/WebSocketServer.cpp
|
||||
src/websocketserver/WebSocketServer_Protocol.cpp
|
||||
src/websocketserver/WebSocketServer.h
|
||||
PRIVATE # cmake-format: sortable
|
||||
src/websocketserver/rpc/WebSocketSession.h
|
||||
src/websocketserver/types/WebSocketCloseCode.h
|
||||
src/websocketserver/types/WebSocketOpCode.h)
|
||||
src/websocketserver/types/WebSocketOpCode.h
|
||||
src/websocketserver/WebSocketServer.cpp
|
||||
src/websocketserver/WebSocketServer.h
|
||||
src/websocketserver/WebSocketServer_Protocol.cpp)
|
||||
|
||||
target_sources(
|
||||
obs-websocket
|
||||
PRIVATE src/eventhandler/EventHandler.cpp
|
||||
PRIVATE # cmake-format: sortable
|
||||
src/eventhandler/EventHandler.cpp
|
||||
src/eventhandler/EventHandler.h
|
||||
src/eventhandler/EventHandler_Config.cpp
|
||||
src/eventhandler/EventHandler_General.cpp
|
||||
src/eventhandler/EventHandler_Filters.cpp
|
||||
src/eventhandler/EventHandler_General.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_Scenes.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
|
||||
PRIVATE # cmake-format: sortable
|
||||
src/requesthandler/RequestBatchHandler.cpp
|
||||
src/requesthandler/RequestBatchHandler.h
|
||||
src/requesthandler/RequestHandler.cpp
|
||||
src/requesthandler/RequestHandler.h
|
||||
@ -85,10 +87,10 @@ target_sources(
|
||||
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_Scenes.cpp
|
||||
src/requesthandler/RequestHandler_Sources.cpp
|
||||
src/requesthandler/RequestHandler_Stream.cpp
|
||||
src/requesthandler/RequestHandler_Transitions.cpp
|
||||
src/requesthandler/RequestHandler_Ui.cpp
|
||||
@ -98,12 +100,13 @@ target_sources(
|
||||
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/requesthandler/types/RequestBatchExecutionType.h
|
||||
src/requesthandler/types/RequestStatus.h)
|
||||
|
||||
target_sources(
|
||||
obs-websocket
|
||||
PRIVATE src/utils/Compat.cpp
|
||||
PRIVATE # cmake-format: sortable
|
||||
src/utils/Compat.cpp
|
||||
src/utils/Compat.h
|
||||
src/utils/Crypto.cpp
|
||||
src/utils/Crypto.h
|
||||
@ -115,8 +118,8 @@ target_sources(
|
||||
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_StringHelper.cpp
|
||||
src/utils/Obs_VolumeMeter.cpp
|
||||
src/utils/Obs_VolumeMeter.h
|
||||
src/utils/Obs_VolumeMeter_Helpers.h
|
||||
@ -133,14 +136,19 @@ target_compile_definitions(
|
||||
|
||||
target_compile_options(
|
||||
obs-websocket
|
||||
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>
|
||||
)
|
||||
PRIVATE $<$<PLATFORM_ID:Windows>:/wd4267>
|
||||
$<$<COMPILE_LANG_AND_ID:CXX,GNU,AppleClang,Clang>:-Wall>
|
||||
$<$<COMPILE_LANG_AND_ID:CXX,GNU,AppleClang,Clang>:-Wno-error=float-conversion>
|
||||
$<$<COMPILE_LANG_AND_ID:CXX,GNU,AppleClang,Clang>:-Wno-error=shadow>
|
||||
$<$<COMPILE_LANG_AND_ID:CXX,GNU>:-Wno-error=format-overflow>
|
||||
$<$<COMPILE_LANG_AND_ID:CXX,GNU>:-Wno-error=int-conversion>
|
||||
$<$<COMPILE_LANG_AND_ID:CXX,GNU>:-Wno-error=comment>
|
||||
$<$<COMPILE_LANG_AND_ID:CXX,AppleClang,Clang>:-Wno-error=null-pointer-subtraction>
|
||||
$<$<COMPILE_LANG_AND_ID:CXX,AppleClang,Clang>:-Wno-error=deprecated-declarations>
|
||||
$<$<COMPILE_LANG_AND_ID:CXX,AppleClang,Clang>:-Wno-error=implicit-int-conversion>
|
||||
$<$<COMPILE_LANG_AND_ID:CXX,AppleClang,Clang>:-Wno-error=shorten-64-to-32>
|
||||
$<$<COMPILE_LANG_AND_ID:CXX,AppleClang,Clang>:-Wno-comma>
|
||||
$<$<COMPILE_LANG_AND_ID:CXX,AppleClang,Clang>:-Wno-quoted-include-in-framework-header>)
|
||||
|
||||
target_link_libraries(
|
||||
obs-websocket
|
||||
@ -155,6 +163,8 @@ target_link_libraries(
|
||||
Asio::Asio
|
||||
qrcodegencpp::qrcodegencpp)
|
||||
|
||||
target_link_options(obs-websocket PRIVATE $<$<PLATFORM_ID:Windows>:/IGNORE:4099>)
|
||||
|
||||
set_target_properties_obs(
|
||||
obs-websocket
|
||||
PROPERTIES FOLDER plugins
|
||||
@ -168,6 +178,4 @@ if(OS_WINDOWS)
|
||||
TARGET obs-websocket
|
||||
APPEND
|
||||
PROPERTY AUTORCC_OPTIONS --format-version 1)
|
||||
|
||||
target_link_options(obs-websocket PRIVATE /IGNORE:4099)
|
||||
endif()
|
||||
|
@ -1,4 +1,4 @@
|
||||
project(obs-websocket VERSION 5.3.3)
|
||||
project(obs-websocket VERSION 5.3.5)
|
||||
set(OBS_WEBSOCKET_RPC_VERSION 1)
|
||||
|
||||
option(ENABLE_WEBSOCKET "Enable building OBS with websocket plugin" ON)
|
||||
|
@ -10,6 +10,7 @@ OBSWebSocket.Settings.ShowConnectInfoWarningTitle="Waarskuwing: Tans regstreeks"
|
||||
OBSWebSocket.Settings.ShowConnectInfoWarningMessage="Dit lyk of ’n afvoer (stroom, opname, ens.) tans aktief is."
|
||||
OBSWebSocket.Settings.ShowConnectInfoWarningInfoText="Is u seker u wil u verbindingsinligting laat sien?"
|
||||
OBSWebSocket.Settings.Save.UserPasswordWarningTitle="Waarskuwing: potensiële beveiligingsprobleem"
|
||||
OBSWebSocket.Settings.Save.UserPasswordWarningMessage="obs-websok bewaar die bedienerwagwoord as platteks. Dit word ten sterkste aanbeveel om ’n wagwoord wat deur obs-websok geskep is te gebruik."
|
||||
OBSWebSocket.Settings.Save.UserPasswordWarningInfoText="Is u seker u wil u eie wagwoord gebruik?"
|
||||
OBSWebSocket.Settings.Save.PasswordInvalidErrorTitle="Fout: Ongeldige opstalling"
|
||||
OBSWebSocket.Settings.Save.PasswordInvalidErrorMessage="U moet ’n wagwoord van meet as 6 karakters gebruik."
|
||||
@ -18,6 +19,9 @@ OBSWebSocket.SessionTable.RemoteAddressColumnTitle="Afstandsadres"
|
||||
OBSWebSocket.SessionTable.SessionDurationColumnTitle="Sessieduur"
|
||||
OBSWebSocket.SessionTable.MessagesInOutColumnTitle="Boodskappe In/Uit"
|
||||
OBSWebSocket.SessionTable.IdentifiedTitle="Geïdentifiseer"
|
||||
OBSWebSocket.SessionTable.KickButtonColumnTitle="Verwyder?"
|
||||
OBSWebSocket.SessionTable.KickButtonText="Verwyder"
|
||||
OBSWebSocket.ConnectInfo.DialogTitle="WebSocket-verbindingsinligting"
|
||||
OBSWebSocket.ConnectInfo.CopyText="Kopieer"
|
||||
OBSWebSocket.ConnectInfo.ServerIp="Bediener-IP (beste skatting)"
|
||||
OBSWebSocket.ConnectInfo.ServerPort="Bedienerpoort"
|
||||
|
@ -16,9 +16,9 @@ OBSWebSocket.Settings.ShowConnectInfoWarningMessage="Il semble qu'une sortie (st
|
||||
OBSWebSocket.Settings.ShowConnectInfoWarningInfoText="Êtes-vous sûr de vouloir afficher vos informations de connexion ?"
|
||||
OBSWebSocket.Settings.Save.UserPasswordWarningTitle="Avertissement : Problème potentiel de sécurité"
|
||||
OBSWebSocket.Settings.Save.UserPasswordWarningMessage="obs-websocket enregistre le mot de passe du serveur en texte brut. L'utilisation d'un mot de passe généré par obs-websocket est fortement recommandée."
|
||||
OBSWebSocket.Settings.Save.UserPasswordWarningInfoText="Êtes-vous sûr de vouloir utiliser votre propre mot de passe ?"
|
||||
OBSWebSocket.Settings.Save.UserPasswordWarningInfoText="Êtes-vous sûr(e) de vouloir utiliser votre propre mot de passe ?"
|
||||
OBSWebSocket.Settings.Save.PasswordInvalidErrorTitle="Erreur : Configuration invalide"
|
||||
OBSWebSocket.Settings.Save.PasswordInvalidErrorMessage="Vous devez utiliser un mot de passe d'au moins 6 caractères"
|
||||
OBSWebSocket.Settings.Save.PasswordInvalidErrorMessage="Vous devez utiliser un mot de passe de 6 caractères ou plus."
|
||||
OBSWebSocket.SessionTable.Title="Sessions WebSocket connectées"
|
||||
OBSWebSocket.SessionTable.RemoteAddressColumnTitle="Adresse distante"
|
||||
OBSWebSocket.SessionTable.SessionDurationColumnTitle="Durée de session"
|
||||
@ -30,7 +30,7 @@ OBSWebSocket.ConnectInfo.DialogTitle="Informations de connexion WebSocket"
|
||||
OBSWebSocket.ConnectInfo.CopyText="Copier"
|
||||
OBSWebSocket.ConnectInfo.ServerIp="IP du serveur (meilleure estimation)"
|
||||
OBSWebSocket.ConnectInfo.ServerPort="Port serveur"
|
||||
OBSWebSocket.ConnectInfo.ServerPassword="Mot de passe serveur"
|
||||
OBSWebSocket.ConnectInfo.ServerPassword="Mot de passe du serveur"
|
||||
OBSWebSocket.ConnectInfo.ServerPasswordPlaceholderText="[Authentification désactivée]"
|
||||
OBSWebSocket.ConnectInfo.QrTitle="QR code de connexion"
|
||||
OBSWebSocket.TrayNotification.Identified.Title="Nouvelle connexion WebSocket"
|
||||
|
@ -1,4 +1,5 @@
|
||||
OBSWebSocket.Plugin.Description="Kawalan-jauh OBS Studio melalui WebSocket"
|
||||
OBSWebSocket.Settings.DialogTitle="Tetapan Pelayan WebSocket"
|
||||
OBSWebSocket.Settings.PluginSettingsTitle="Tetapan Pemalam"
|
||||
OBSWebSocket.Settings.ServerEnable="Benarkan pelayan WebSocket"
|
||||
OBSWebSocket.Settings.AlertsEnable="Benarkan Amaran Talam Sistem"
|
||||
|
@ -1,2 +1,25 @@
|
||||
OBSWebSocket.Settings.DialogTitle="WebSocket-tjenerinnstillinger"
|
||||
OBSWebSocket.Settings.PluginSettingsTitle="Utvidelsesinnstillinger"
|
||||
OBSWebSocket.Settings.ServerSettingsTitle="Tjenerinnstillinger"
|
||||
OBSWebSocket.Settings.AuthRequired="Skru på autentisering"
|
||||
OBSWebSocket.Settings.Password="Server Passord"
|
||||
OBSWebSocket.Settings.GeneratePassword="Generer Passord"
|
||||
OBSWebSocket.Settings.ShowConnectInfo="Vis tilkoblingsinfo"
|
||||
OBSWebSocket.Settings.ShowConnectInfoWarningTitle="Advarsel: For øyeblikket på direktesending"
|
||||
OBSWebSocket.Settings.Save.UserPasswordWarningTitle="Advarsel: Potensielt sikkerhetsproblem"
|
||||
OBSWebSocket.Settings.Save.PasswordInvalidErrorTitle="Feil: Ugyldig konfigurasjon"
|
||||
OBSWebSocket.Settings.Save.PasswordInvalidErrorMessage="Du må bruke et passord på minst 6 tegn."
|
||||
OBSWebSocket.SessionTable.RemoteAddressColumnTitle="Ekstern adresse"
|
||||
OBSWebSocket.SessionTable.SessionDurationColumnTitle="Øktens varighet"
|
||||
OBSWebSocket.SessionTable.MessagesInOutColumnTitle="Innboks/Utboks"
|
||||
OBSWebSocket.SessionTable.IdentifiedTitle="Identifisert"
|
||||
OBSWebSocket.ConnectInfo.DialogTitle="WebSocket-tilkoblingsinfo"
|
||||
OBSWebSocket.ConnectInfo.CopyText="Kopier"
|
||||
OBSWebSocket.ConnectInfo.ServerIp="Tjenerens IP (beste gjetning)"
|
||||
OBSWebSocket.ConnectInfo.ServerPort="Tjenerport"
|
||||
OBSWebSocket.ConnectInfo.ServerPassword="Tjenerpassord"
|
||||
OBSWebSocket.ConnectInfo.QrTitle="QR-tilkobling"
|
||||
OBSWebSocket.TrayNotification.Identified.Title="Ny WebSocket-tilkobling"
|
||||
OBSWebSocket.TrayNotification.Identified.Body="Klient %1 er identifisert."
|
||||
OBSWebSocket.TrayNotification.Disconnected.Title="WebSocket-klient koblet fra"
|
||||
OBSWebSocket.TrayNotification.Disconnected.Body="Klient %1 koblet fra."
|
||||
|
@ -29,7 +29,7 @@ OBSWebSocket.SessionTable.KickButtonText="Çıkar"
|
||||
OBSWebSocket.ConnectInfo.DialogTitle="WebSocket Bağlanma Bilgileri"
|
||||
OBSWebSocket.ConnectInfo.CopyText="Kopyala"
|
||||
OBSWebSocket.ConnectInfo.ServerIp="Sunucu IP (En İyi Tahmin)"
|
||||
OBSWebSocket.ConnectInfo.ServerPort="Sunucu Kapısı"
|
||||
OBSWebSocket.ConnectInfo.ServerPort="Sunucu Portu"
|
||||
OBSWebSocket.ConnectInfo.ServerPassword="Sunucu Parolası"
|
||||
OBSWebSocket.ConnectInfo.ServerPasswordPlaceholderText="[Doğrulama Devre Dışı]"
|
||||
OBSWebSocket.ConnectInfo.QrTitle="Kare Kod ile Bağlan"
|
||||
|
@ -54,6 +54,20 @@ EventHandler::~EventHandler()
|
||||
blog(LOG_ERROR, "[EventHandler::~EventHandler] Unable to get libobs signal handler!");
|
||||
}
|
||||
|
||||
// Revoke callbacks of all inputs and scenes, in case some still have our callbacks attached
|
||||
auto enumInputs = [](void *param, obs_source_t *source) {
|
||||
auto eventHandler = static_cast<EventHandler *>(param);
|
||||
eventHandler->DisconnectSourceSignals(source);
|
||||
return true;
|
||||
};
|
||||
obs_enum_sources(enumInputs, this);
|
||||
auto enumScenes = [](void *param, obs_source_t *source) {
|
||||
auto eventHandler = static_cast<EventHandler *>(param);
|
||||
eventHandler->DisconnectSourceSignals(source);
|
||||
return true;
|
||||
};
|
||||
obs_enum_scenes(enumScenes, this);
|
||||
|
||||
blog_debug("[EventHandler::~EventHandler] Finished.");
|
||||
}
|
||||
|
||||
|
@ -49,14 +49,21 @@ WebSocketServer::WebSocketServer() : QObject(nullptr)
|
||||
websocketpp::lib::placeholders::_2));
|
||||
|
||||
auto eventHandler = GetEventHandler();
|
||||
if (eventHandler) {
|
||||
eventHandler->SetBroadcastCallback(std::bind(&WebSocketServer::BroadcastEvent, this, std::placeholders::_1,
|
||||
std::placeholders::_2, std::placeholders::_3, std::placeholders::_4));
|
||||
|
||||
eventHandler->SetObsReadyCallback(std::bind(&WebSocketServer::onObsReady, this, std::placeholders::_1));
|
||||
}
|
||||
}
|
||||
|
||||
WebSocketServer::~WebSocketServer()
|
||||
{
|
||||
auto eventHandler = GetEventHandler();
|
||||
if (eventHandler) {
|
||||
eventHandler->SetObsReadyCallback(nullptr);
|
||||
eventHandler->SetBroadcastCallback(nullptr);
|
||||
}
|
||||
|
||||
if (_server.is_listening())
|
||||
Stop();
|
||||
}
|
||||
|
Reference in New Issue
Block a user