diff --git a/CMakeLists.txt b/CMakeLists.txt index 68d474da..d839a272 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,13 +30,13 @@ set(obs-websocket_SOURCES src/WSRequestHandler_General.cpp src/WSRequestHandler_Profiles.cpp src/WSRequestHandler_Recording.cpp - src/WSRequestHandler_VirtualCam.cpp src/WSRequestHandler_ReplayBuffer.cpp src/WSRequestHandler_SceneCollections.cpp src/WSRequestHandler_Scenes.cpp src/WSRequestHandler_SceneItems.cpp src/WSRequestHandler_Sources.cpp src/WSRequestHandler_Streaming.cpp + src/WSRequestHandler_VirtualCam.cpp src/WSRequestHandler_StudioMode.cpp src/WSRequestHandler_Transitions.cpp src/WSRequestHandler_Outputs.cpp diff --git a/src/WSEvents.cpp b/src/WSEvents.cpp index cf06890f..b396664b 100644 --- a/src/WSEvents.cpp +++ b/src/WSEvents.cpp @@ -202,6 +202,14 @@ void WSEvents::FrontendEventHandler(enum obs_frontend_event event, void* private owner->OnRecordingResumed(); break; + case OBS_FRONTEND_EVENT_VIRTUALCAM_STARTED: + owner->OnVirtualCamStarted(); + break; + + case OBS_FRONTEND_EVENT_VIRTUALCAM_STOPPED: + owner->OnVirtualCamStopped(); + break; + case OBS_FRONTEND_EVENT_REPLAY_BUFFER_STARTING: owner->OnReplayStarting(); break; @@ -773,6 +781,30 @@ void WSEvents::OnRecordingResumed() { broadcastUpdate("RecordingResumed"); } +/** + * Virtual cam started successfully. + * + * @api events + * @name VirtualCamStarted + * @category virtual cam + * @since 4.9.1 + */ +void WSEvents::OnVirtualCamStarted() { + broadcastUpdate("VirtualCamStarted"); +} + +/** + * Virtual cam stopped successfully. + * + * @api events + * @name VirtualCamStopped + * @category virtual cam + * @since 4.9.1 + */ +void WSEvents::OnVirtualCamStopped() { + broadcastUpdate("VirtualCamStopped"); +} + /** * A request to start the replay buffer has been issued. * diff --git a/src/WSEvents.h b/src/WSEvents.h index dc814e83..83b766bb 100644 --- a/src/WSEvents.h +++ b/src/WSEvents.h @@ -51,6 +51,7 @@ public: QString getStreamingTimecode(); QString getRecordingTimecode(); + QString getVirtualCamTimecode(); obs_data_t* GetStats(); @@ -101,6 +102,9 @@ private: void OnRecordingStopped(); void OnRecordingPaused(); void OnRecordingResumed(); + + void OnVirtualCamStarted(); + void OnVirtualCamStopped(); void OnReplayStarting(); void OnReplayStarted(); diff --git a/src/WSRequestHandler_VirtualCam.cpp b/src/WSRequestHandler_VirtualCam.cpp index 2404df1d..b5c5d0bc 100644 --- a/src/WSRequestHandler_VirtualCam.cpp +++ b/src/WSRequestHandler_VirtualCam.cpp @@ -1,11 +1,9 @@ #include "obs-websocket.h" -#include "WSRequestHandler.h" - -#include -#include #include "Utils.h" #include "WSEvents.h" +#include "WSRequestHandler.h" + /** * Get current virtual cam status. * @@ -58,7 +56,7 @@ RpcResponse WSRequestHandler::StartVirtualCam(const RpcRequest& request) { return request.failed("virtual cam already active"); } - obs_frontend_virtualcam_start(); + obs_frontend_start_virtualcam(); return request.success(); } @@ -76,6 +74,6 @@ RpcResponse WSRequestHandler::StartVirtualCam(const RpcRequest& request) { return request.failed("virtual cam not active"); } - obs_frontend_virtualcam_stop(); + obs_frontend_stop_virtualcam(); return request.success(); }