Skip to content

Commit

Permalink
Merge pull request #524 from ProstoSanja/create-scene
Browse files Browse the repository at this point in the history
Add request `CreateScene` to `scenes`
category
  • Loading branch information
tt2468 authored May 28, 2020
2 parents 5d12dfa + eb7787f commit 5822992
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/WSRequestHandler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 },
Expand Down
1 change: 1 addition & 0 deletions src/WSRequestHandler.h
Original file line number Diff line number Diff line change
Expand Up @@ -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&);
Expand Down
25 changes: 25 additions & 0 deletions src/WSRequestHandler_Scenes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,31 @@ RpcResponse WSRequestHandler::GetSceneList(const RpcRequest& request) {
return request.success(data);
}

/**
* Create a new scene scene.
*
* @param {String} `sceneName` 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.
*
Expand Down

0 comments on commit 5822992

Please sign in to comment.