Request: Add CreateScene

This commit is contained in:
Alex Tsernoh 2020-05-27 00:13:43 +03:00
parent 5d12dfa368
commit f1371034f7
3 changed files with 27 additions and 0 deletions

View File

@ -46,6 +46,7 @@ const QHash<QString, RpcMethodHandler> WSRequestHandler::messageMap {
{ "SetCurrentScene", &WSRequestHandler::SetCurrentScene },
{ "GetCurrentScene", &WSRequestHandler::GetCurrentScene },
{ "GetSceneList", &WSRequestHandler::GetSceneList },
{ "CreateScene", &WSRequestHandler::CreateScene },
{ "SetSceneTransitionOverride", &WSRequestHandler::SetSceneTransitionOverride },
{ "RemoveSceneTransitionOverride", &WSRequestHandler::RemoveSceneTransitionOverride },
{ "GetSceneTransitionOverride", &WSRequestHandler::GetSceneTransitionOverride },

View File

@ -64,6 +64,7 @@ class WSRequestHandler {
RpcResponse SetCurrentScene(const RpcRequest&);
RpcResponse GetCurrentScene(const RpcRequest&);
RpcResponse GetSceneList(const RpcRequest&);
RpcResponse CreateScene(const RpcRequest&);
RpcResponse SetSceneTransitionOverride(const RpcRequest&);
RpcResponse RemoveSceneTransitionOverride(const RpcRequest&);
RpcResponse GetSceneTransitionOverride(const RpcRequest&);

View File

@ -79,6 +79,31 @@ RpcResponse WSRequestHandler::GetSceneList(const RpcRequest& request) {
return request.success(data);
}
/**
* Create a new scene scene.
*
* @param {String} `scene-name` Name of the scene to create.
*
* @api requests
* @name CreateScene
* @category scenes
* @since 4.8.0
*/
RpcResponse WSRequestHandler::CreateScene(const RpcRequest& request) {
if (!request.hasField("sceneName")) {
return request.failed("missing request parameters");
}
const char* sceneName = obs_data_get_string(request.parameters(), "sceneName");
OBSSourceAutoRelease source = obs_get_source_by_name(sceneName);
if (source) {
return request.failed("scene with this name already exists");
}
obs_scene_create(sceneName);
return request.success();
}
/**
* Changes the order of scene items in the requested scene.
*