From a1fcc35fd6f97d60804495185b201d703db4965f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Lepin?= Date: Sat, 28 Nov 2020 00:19:27 +0100 Subject: [PATCH] requests(CreateSource): pass settings on source creation --- src/WSRequestHandler_Sources.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/WSRequestHandler_Sources.cpp b/src/WSRequestHandler_Sources.cpp index 3b662fdd..9aa5c260 100644 --- a/src/WSRequestHandler_Sources.cpp +++ b/src/WSRequestHandler_Sources.cpp @@ -58,19 +58,18 @@ RpcResponse WSRequestHandler::CreateSource(const RpcRequest& request) return request.failed("requested scene is invalid or doesnt exist"); } - OBSSourceAutoRelease newSource = obs_source_create(sourceKind.toUtf8(), sourceName.toUtf8(), nullptr, nullptr); + OBSDataAutoRelease sourceSettings = nullptr; + if (request.hasField("sourceSettings")) { + sourceSettings = obs_data_get_obj(request.parameters(), "sourceSettings"); + } + + OBSSourceAutoRelease newSource = obs_source_create(sourceKind.toUtf8(), sourceName.toUtf8(), sourceSettings, nullptr); if (!newSource) { return request.failed("failed to create the source"); } obs_source_set_enabled(newSource, true); - if (request.hasField("sourceSettings")) { // We apply the settings after source creation because otherwise we get a bunch of memory leaks. - OBSDataAutoRelease newSettings = obs_data_get_obj(request.parameters(), "sourceSettings"); - obs_source_update(newSource, newSettings); - obs_source_update_properties(newSource); - } - Utils::AddSourceData data; data.source = newSource; data.setVisible = true;