Skip to content

Commit 4da7d5d

Browse files
tt2468Warchamp7
authored andcommitted
requesthandler: Add canvas support to CreateScene
1 parent 88ff417 commit 4da7d5d

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

src/requesthandler/RequestHandler_Scenes.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,8 @@ RequestResult RequestHandler::SetCurrentPreviewScene(const Request &request)
239239
/**
240240
* Creates a new scene in OBS.
241241
*
242-
* @requestField sceneName | String | Name for the new scene
242+
* @requestField ?canvasUuid | String | UUID of the canvas to create the new scene in. Leave default to assume main canvas
243+
* @requestField sceneName | String | Name for the new scene
243244
*
244245
* @responseField sceneUuid | String | UUID of the created scene
245246
*
@@ -259,11 +260,15 @@ RequestResult RequestHandler::CreateScene(const Request &request)
259260

260261
std::string sceneName = request.RequestData["sceneName"];
261262

262-
OBSSourceAutoRelease scene = obs_get_source_by_name(sceneName.c_str());
263+
OBSCanvasAutoRelease canvas = request.GetCanvas("canvasUuid", statusCode, comment);
264+
if (!canvas)
265+
return RequestResult::Error(statusCode, comment);
266+
267+
OBSSourceAutoRelease scene = obs_canvas_get_source_by_name(canvas, sceneName.c_str());
263268
if (scene)
264269
return RequestResult::Error(RequestStatus::ResourceAlreadyExists, "A source already exists by that scene name.");
265270

266-
OBSSceneAutoRelease createdScene = obs_scene_create(sceneName.c_str());
271+
OBSSceneAutoRelease createdScene = obs_canvas_scene_create(canvas, sceneName.c_str());
267272
if (!createdScene)
268273
return RequestResult::Error(RequestStatus::ResourceCreationFailed, "Failed to create the scene.");
269274

0 commit comments

Comments
 (0)