mirror of
https://github.com/Palakis/obs-websocket.git
synced 2024-08-30 18:12:16 +00:00
80 lines
2.1 KiB
C++
80 lines
2.1 KiB
C++
#include "obs-websocket.h"
|
|
#include "Utils.h"
|
|
#include "WSEvents.h"
|
|
|
|
#include "WSRequestHandler.h"
|
|
|
|
/**
|
|
* Get current virtual cam status.
|
|
*
|
|
* @return {boolean} `isVirtualCam` Current virtual camera status.
|
|
* @return {String (optional)} `virtualCamTimecode` Time elapsed since virtual cam started (only present if virtual cam currently active).
|
|
*
|
|
* @api requests
|
|
* @name GetVirtualCamStatus
|
|
* @category virtual cam
|
|
* @since 4.9.1
|
|
*/
|
|
RpcResponse WSRequestHandler::GetVirtualCamStatus(const RpcRequest& request) {
|
|
auto events = GetEventsSystem();
|
|
|
|
OBSDataAutoRelease data = obs_data_create();
|
|
obs_data_set_bool(data, "isVirtualCam", obs_frontend_virtualcam_active());
|
|
|
|
if (obs_frontend_virtualcam_active()) {
|
|
QString virtualCamTimecode = events->getVirtualCamTimecode();
|
|
obs_data_set_string(data, "virtualCamTimecode", virtualCamTimecode.toUtf8().constData());
|
|
}
|
|
|
|
return request.success(data);
|
|
}
|
|
|
|
/**
|
|
* Toggle virtual cam on or off (depending on the current virtual cam state).
|
|
*
|
|
* @api requests
|
|
* @name StartStopVirtualCam
|
|
* @category virtual cam
|
|
* @since 4.9.1
|
|
*/
|
|
RpcResponse WSRequestHandler::StartStopVirtualCam(const RpcRequest& request) {
|
|
(obs_frontend_virtualcam_active() ? obs_frontend_stop_virtualcam() : obs_frontend_start_virtualcam());
|
|
return request.success();
|
|
}
|
|
|
|
/**
|
|
* Start virtual cam.
|
|
* Will return an `error` if virtual cam is already active.
|
|
*
|
|
* @api requests
|
|
* @name StartVirtualCam
|
|
* @category virtual cam
|
|
* @since 4.9.1
|
|
*/
|
|
RpcResponse WSRequestHandler::StartVirtualCam(const RpcRequest& request) {
|
|
if (obs_frontend_virtualcam_active()) {
|
|
return request.failed("virtual cam already active");
|
|
}
|
|
|
|
obs_frontend_start_virtualcam();
|
|
return request.success();
|
|
}
|
|
|
|
/**
|
|
* Stop virtual cam.
|
|
* Will return an `error` if virtual cam is not active.
|
|
*
|
|
* @api requests
|
|
* @name StopVirtualCam
|
|
* @category virtual cam
|
|
* @since 4.9.1
|
|
*/
|
|
RpcResponse WSRequestHandler::StopVirtualCam(const RpcRequest& request) {
|
|
if (!obs_frontend_virtualcam_active()) {
|
|
return request.failed("virtual cam not active");
|
|
}
|
|
|
|
obs_frontend_stop_virtualcam();
|
|
return request.success();
|
|
}
|