diff --git a/WSEvents.cpp b/WSEvents.cpp
index 3bf6d5b0..76a076a5 100644
--- a/WSEvents.cpp
+++ b/WSEvents.cpp
@@ -260,7 +260,6 @@ const char* WSEvents::GetRecordingTimecode() {
}
void WSEvents::OnSceneChange() {
- // Implements an existing update type from bilhamil's OBS Remote
obs_data_t* data = obs_data_create();
obs_source_t* current_scene = obs_frontend_get_current_scene();
@@ -332,7 +331,6 @@ void WSEvents::OnProfileListChange() {
}
void WSEvents::OnStreamStarting() {
- // Implements an existing update type from bilhamil's OBS Remote
obs_data_t* data = obs_data_create();
obs_data_set_bool(data, "preview-only", false);
@@ -342,14 +340,12 @@ void WSEvents::OnStreamStarting() {
}
void WSEvents::OnStreamStarted() {
- // New update type specific to OBS Studio
_stream_starttime = os_gettime_ns();
_lastBytesSent = 0;
broadcastUpdate("StreamStarted");
}
void WSEvents::OnStreamStopping() {
- // Implements an existing update type from bilhamil's OBS Remote
obs_data_t* data = obs_data_create();
obs_data_set_bool(data, "preview-only", false);
@@ -359,35 +355,29 @@ void WSEvents::OnStreamStopping() {
}
void WSEvents::OnStreamStopped() {
- // New update type specific to OBS Studio
_stream_starttime = 0;
broadcastUpdate("StreamStopped");
}
void WSEvents::OnRecordingStarting() {
- // New update type specific to OBS Studio
broadcastUpdate("RecordingStarting");
}
void WSEvents::OnRecordingStarted() {
- // New update type specific to OBS Studio
_rec_starttime = os_gettime_ns();
broadcastUpdate("RecordingStarted");
}
void WSEvents::OnRecordingStopping() {
- // New update type specific to OBS Studio
broadcastUpdate("RecordingStopping");
}
void WSEvents::OnRecordingStopped() {
- // New update type specific to OBS Studio
_rec_starttime = 0;
broadcastUpdate("RecordingStopped");
}
void WSEvents::OnExit() {
- // New update type specific to OBS Studio
broadcastUpdate("Exiting");
}
diff --git a/WSRequestHandler.cpp b/WSRequestHandler.cpp
index 0ad42083..3663d568 100644
--- a/WSRequestHandler.cpp
+++ b/WSRequestHandler.cpp
@@ -25,21 +25,17 @@ with this program. If not, see
#include "Utils.h"
#include
-bool str_valid(const char* str)
-{
+bool str_valid(const char* str) {
return (str != nullptr && strlen(str) > 0);
}
-
obs_service_t* WSRequestHandler::_service = nullptr;
WSRequestHandler::WSRequestHandler(QWebSocket* client) :
_messageId(0),
_requestType(""),
- data(nullptr)
-{
- _client = client;
-
+ data(nullptr),
+ _client(client) {
messageMap["GetVersion"] = WSRequestHandler::HandleGetVersion;
messageMap["GetAuthRequired"] = WSRequestHandler::HandleGetAuthRequired;
messageMap["Authenticate"] = WSRequestHandler::HandleAuthenticate;
@@ -109,14 +105,12 @@ WSRequestHandler::WSRequestHandler(QWebSocket* client) :
authNotRequired.insert("Authenticate");
}
-void WSRequestHandler::processIncomingMessage(QString textMessage)
-{
+void WSRequestHandler::processIncomingMessage(QString textMessage) {
QByteArray msgData = textMessage.toUtf8();
const char* msg = msgData;
data = obs_data_create_from_json(msg);
- if (!data)
- {
+ if (!data) {
if (!msg)
msg = "";
@@ -125,12 +119,12 @@ void WSRequestHandler::processIncomingMessage(QString textMessage)
return;
}
- if (Config::Current()->DebugEnabled)
+ if (Config::Current()->DebugEnabled) {
blog(LOG_DEBUG, "Request >> '%s'", msg);
+ }
if (!hasField("request-type") ||
- !hasField("message-id"))
- {
+ !hasField("message-id")) {
SendErrorResponse("missing request parameters");
return;
}
@@ -140,8 +134,7 @@ void WSRequestHandler::processIncomingMessage(QString textMessage)
if (Config::Current()->AuthRequired
&& (_client->property(PROP_AUTHENTICATED).toBool() == false)
- && (authNotRequired.find(_requestType) == authNotRequired.end()))
- {
+ && (authNotRequired.find(_requestType) == authNotRequired.end())) {
SendErrorResponse("Not Authenticated");
return;
}
@@ -156,12 +149,10 @@ void WSRequestHandler::processIncomingMessage(QString textMessage)
obs_data_release(data);
}
-WSRequestHandler::~WSRequestHandler()
-{
+WSRequestHandler::~WSRequestHandler() {
}
-void WSRequestHandler::SendOKResponse(obs_data_t* additionalFields)
-{
+void WSRequestHandler::SendOKResponse(obs_data_t* additionalFields) {
obs_data_t* response = obs_data_create();
obs_data_set_string(response, "status", "ok");
obs_data_set_string(response, "message-id", _messageId);
@@ -172,8 +163,7 @@ void WSRequestHandler::SendOKResponse(obs_data_t* additionalFields)
SendResponse(response);
}
-void WSRequestHandler::SendErrorResponse(const char* errorMessage)
-{
+void WSRequestHandler::SendErrorResponse(const char* errorMessage) {
obs_data_t* response = obs_data_create();
obs_data_set_string(response, "status", "error");
obs_data_set_string(response, "error", errorMessage);
@@ -182,8 +172,7 @@ void WSRequestHandler::SendErrorResponse(const char* errorMessage)
SendResponse(response);
}
-void WSRequestHandler::SendResponse(obs_data_t* response)
-{
+void WSRequestHandler::SendResponse(obs_data_t* response) {
const char *json = obs_data_get_json(response);
_client->sendTextMessage(json);
if (Config::Current()->DebugEnabled)
@@ -192,16 +181,14 @@ void WSRequestHandler::SendResponse(obs_data_t* response)
obs_data_release(response);
}
-bool WSRequestHandler::hasField(const char* name)
-{
+bool WSRequestHandler::hasField(const char* name) {
if (!name || !data)
return false;
return obs_data_has_user_value(data, name);
}
-void WSRequestHandler::HandleGetVersion(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleGetVersion(WSRequestHandler* req) {
const char* obs_version = Utils::OBSVersionString();
obs_data_t* data = obs_data_create();
@@ -215,15 +202,13 @@ void WSRequestHandler::HandleGetVersion(WSRequestHandler* req)
bfree((void*)obs_version);
}
-void WSRequestHandler::HandleGetAuthRequired(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleGetAuthRequired(WSRequestHandler* req) {
bool authRequired = Config::Current()->AuthRequired;
obs_data_t* data = obs_data_create();
obs_data_set_bool(data, "authRequired", authRequired);
- if (authRequired)
- {
+ if (authRequired) {
obs_data_set_string(data, "challenge",
Config::Current()->SessionChallenge);
obs_data_set_string(data, "salt",
@@ -235,37 +220,29 @@ void WSRequestHandler::HandleGetAuthRequired(WSRequestHandler* req)
obs_data_release(data);
}
-void WSRequestHandler::HandleAuthenticate(WSRequestHandler* req)
-{
- if (!req->hasField("auth"))
- {
+void WSRequestHandler::HandleAuthenticate(WSRequestHandler* req) {
+ if (!req->hasField("auth")) {
req->SendErrorResponse("missing request parameters");
return;
}
const char* auth = obs_data_get_string(req->data, "auth");
- if (!str_valid(auth))
- {
+ if (!str_valid(auth)) {
req->SendErrorResponse("auth not specified!");
return;
}
if ((req->_client->property(PROP_AUTHENTICATED).toBool() == false)
- && Config::Current()->CheckAuth(auth))
- {
+ && Config::Current()->CheckAuth(auth)) {
req->_client->setProperty(PROP_AUTHENTICATED, true);
req->SendOKResponse();
- }
- else
- {
+ } else {
req->SendErrorResponse("Authentication Failed.");
}
}
-void WSRequestHandler::HandleSetCurrentScene(WSRequestHandler* req)
-{
- if (!req->hasField("scene-name"))
- {
+void WSRequestHandler::HandleSetCurrentScene(WSRequestHandler* req) {
+ if (!req->hasField("scene-name")) {
req->SendErrorResponse("missing request parameters");
return;
}
@@ -273,21 +250,17 @@ void WSRequestHandler::HandleSetCurrentScene(WSRequestHandler* req)
const char* sceneName = obs_data_get_string(req->data, "scene-name");
obs_source_t* source = obs_get_source_by_name(sceneName);
- if (source)
- {
+ if (source) {
obs_frontend_set_current_scene(source);
req->SendOKResponse();
- }
- else
- {
+ } else {
req->SendErrorResponse("requested scene does not exist");
}
obs_source_release(source);
}
-void WSRequestHandler::HandleGetCurrentScene(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleGetCurrentScene(WSRequestHandler* req) {
obs_source_t* current_scene = obs_frontend_get_current_scene();
const char* name = obs_source_get_name(current_scene);
@@ -304,8 +277,7 @@ void WSRequestHandler::HandleGetCurrentScene(WSRequestHandler* req)
obs_source_release(current_scene);
}
-void WSRequestHandler::HandleGetSceneList(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleGetSceneList(WSRequestHandler* req) {
obs_source_t* current_scene = obs_frontend_get_current_scene();
obs_data_array_t* scenes = Utils::GetScenes();
@@ -321,11 +293,9 @@ void WSRequestHandler::HandleGetSceneList(WSRequestHandler* req)
obs_source_release(current_scene);
}
-void WSRequestHandler::HandleSetSceneItemRender(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleSetSceneItemRender(WSRequestHandler* req) {
if (!req->hasField("source") ||
- !req->hasField("render"))
- {
+ !req->hasField("render")) {
req->SendErrorResponse("missing request parameters");
return;
}
@@ -333,51 +303,44 @@ void WSRequestHandler::HandleSetSceneItemRender(WSRequestHandler* req)
const char* itemName = obs_data_get_string(req->data, "source");
bool isVisible = obs_data_get_bool(req->data, "render");
- if (!itemName)
- {
+ if (!itemName) {
req->SendErrorResponse("invalid request parameters");
return;
}
const char* sceneName = obs_data_get_string(req->data, "scene-name");
obs_source_t* scene = Utils::GetSceneFromNameOrCurrent(sceneName);
- if (scene == NULL) {
+ if (!scene) {
req->SendErrorResponse("requested scene doesn't exist");
return;
}
obs_sceneitem_t* sceneItem = Utils::GetSceneItemFromName(scene, itemName);
- if (sceneItem != NULL)
- {
+ if (sceneItem) {
obs_sceneitem_set_visible(sceneItem, isVisible);
obs_sceneitem_release(sceneItem);
req->SendOKResponse();
- }
- else
- {
+ } else {
req->SendErrorResponse("specified scene item doesn't exist");
}
obs_source_release(scene);
}
-void WSRequestHandler::HandleGetStreamingStatus(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleGetStreamingStatus(WSRequestHandler* req) {
obs_data_t* data = obs_data_create();
obs_data_set_bool(data, "streaming", obs_frontend_streaming_active());
obs_data_set_bool(data, "recording", obs_frontend_recording_active());
obs_data_set_bool(data, "preview-only", false);
const char* tc = nullptr;
- if (obs_frontend_streaming_active())
- {
+ if (obs_frontend_streaming_active()) {
tc = WSEvents::Instance->GetStreamingTimecode();
obs_data_set_string(data, "stream-timecode", tc);
bfree((void*)tc);
}
- if (obs_frontend_recording_active())
- {
+ if (obs_frontend_recording_active()) {
tc = WSEvents::Instance->GetRecordingTimecode();
obs_data_set_string(data, "rec-timecode", tc);
bfree((void*)tc);
@@ -387,16 +350,11 @@ void WSRequestHandler::HandleGetStreamingStatus(WSRequestHandler* req)
obs_data_release(data);
}
-void WSRequestHandler::HandleStartStopStreaming(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleStartStopStreaming(WSRequestHandler* req) {
if (obs_frontend_streaming_active())
- {
HandleStopStreaming(req);
- }
else
- {
HandleStartStreaming(req);
- }
}
void WSRequestHandler::HandleStartStopRecording(WSRequestHandler* req)
@@ -411,42 +369,35 @@ void WSRequestHandler::HandleStartStopRecording(WSRequestHandler* req)
void WSRequestHandler::HandleStartStreaming(WSRequestHandler* req)
{
- if (obs_frontend_streaming_active() == false)
- {
+ if (obs_frontend_streaming_active() == false) {
obs_data_t* streamData = obs_data_get_obj(req->data, "stream");
obs_service_t* currentService = nullptr;
- if (streamData)
- {
- currentService = obs_frontend_get_streaming_service();
+ if (streamData) {
+ currentService = obs_frontend_get_streaming_service();
obs_service_addref(currentService);
obs_service_t* service = _service;
const char* currentServiceType = obs_service_get_type(currentService);
- const char* requestedType = obs_data_has_user_value(streamData, "type") ? obs_data_get_string(streamData, "type") : currentServiceType;
- const char* serviceType = service != nullptr ? obs_service_get_type(service) : currentServiceType;
+ const char* requestedType =
+ obs_data_has_user_value(streamData, "type") ? obs_data_get_string(streamData, "type") : currentServiceType;
+ const char* serviceType =
+ service != nullptr ? obs_service_get_type(service) : currentServiceType;
obs_data_t* settings = obs_data_get_obj(streamData, "settings");
-
obs_data_t* metadata = obs_data_get_obj(streamData, "metadata");
QString* query = Utils::ParseDataToQueryString(metadata);
- if (strcmp(requestedType, serviceType) != 0)
- {
- if (settings)
- {
+ if (strcmp(requestedType, serviceType) != 0) {
+ if (settings) {
obs_service_release(service);
service = nullptr; //different type so we can't reuse the existing service instance
- }
- else
- {
+ } else {
req->SendErrorResponse("Service type requested does not match currently configured type and no 'settings' were provided");
return;
}
- }
- else
- {
+ } else {
//if type isn't changing we should overlay the settings we got with the existing settings
obs_data_t* existingSettings = obs_service_get_settings(currentService);
obs_data_t* newSettings = obs_data_create(); //by doing this you can send a request to the websocket that only contains a setting you want to change instead of having to do a get and then change them
@@ -460,8 +411,7 @@ void WSRequestHandler::HandleStartStreaming(WSRequestHandler* req)
obs_data_release(existingSettings);
}
- if (service == nullptr)
- { //create the new custom service setup by the websocket
+ if (!service){
service = obs_service_create(requestedType, "websocket_custom_service", settings, nullptr);
}
@@ -489,6 +439,7 @@ void WSRequestHandler::HandleStartStreaming(WSRequestHandler* req)
obs_service_update(service, settings);
obs_data_release(settings);
obs_data_release(metadata);
+
_service = service;
obs_frontend_set_streaming_service(_service);
} else if (_service != nullptr) {
@@ -504,61 +455,45 @@ void WSRequestHandler::HandleStartStreaming(WSRequestHandler* req)
req->SendOKResponse();
obs_service_release(currentService);
- }
- else
- {
+ } else {
req->SendErrorResponse("streaming already active");
}
}
-void WSRequestHandler::HandleStopStreaming(WSRequestHandler* req)
-{
- if (obs_frontend_streaming_active() == true)
- {
+void WSRequestHandler::HandleStopStreaming(WSRequestHandler* req) {
+ if (obs_frontend_streaming_active() == true) {
obs_frontend_streaming_stop();
req->SendOKResponse();
- }
- else
- {
+ } else {
req->SendErrorResponse("streaming not active");
}
}
-void WSRequestHandler::HandleStartRecording(WSRequestHandler* req)
-{
- if (obs_frontend_recording_active() == false)
- {
+void WSRequestHandler::HandleStartRecording(WSRequestHandler* req) {
+ if (obs_frontend_recording_active() == false) {
obs_frontend_recording_start();
req->SendOKResponse();
- }
- else
- {
+ } else {
req->SendErrorResponse("recording already active");
}
}
-void WSRequestHandler::HandleStopRecording(WSRequestHandler* req)
-{
- if (obs_frontend_recording_active() == true)
- {
+void WSRequestHandler::HandleStopRecording(WSRequestHandler* req) {
+ if (obs_frontend_recording_active() == true) {
obs_frontend_recording_stop();
req->SendOKResponse();
- }
- else
- {
+ } else {
req->SendErrorResponse("recording not active");
}
}
-void WSRequestHandler::HandleGetTransitionList(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleGetTransitionList(WSRequestHandler* req) {
obs_source_t* current_transition = obs_frontend_get_current_transition();
obs_frontend_source_list transitionList = {};
obs_frontend_get_transitions(&transitionList);
obs_data_array_t* transitions = obs_data_array_create();
- for (size_t i = 0; i < transitionList.sources.num; i++)
- {
+ for (size_t i = 0; i < transitionList.sources.num; i++) {
obs_source_t* transition = transitionList.sources.array[i];
obs_data_t* obj = obs_data_create();
@@ -581,8 +516,7 @@ void WSRequestHandler::HandleGetTransitionList(WSRequestHandler* req)
obs_source_release(current_transition);
}
-void WSRequestHandler::HandleGetCurrentTransition(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleGetCurrentTransition(WSRequestHandler* req) {
obs_source_t* current_transition = obs_frontend_get_current_transition();
obs_data_t* response = obs_data_create();
@@ -598,28 +532,22 @@ void WSRequestHandler::HandleGetCurrentTransition(WSRequestHandler* req)
obs_source_release(current_transition);
}
-void WSRequestHandler::HandleSetCurrentTransition(WSRequestHandler* req)
-{
- if (!req->hasField("transition-name"))
- {
+void WSRequestHandler::HandleSetCurrentTransition(WSRequestHandler* req) {
+ if (!req->hasField("transition-name")) {
req->SendErrorResponse("missing request parameters");
return;
}
const char* name = obs_data_get_string(req->data, "transition-name");
-
bool success = Utils::SetTransitionByName(name);
-
if (success)
req->SendOKResponse();
else
req->SendErrorResponse("requested transition does not exist");
}
-void WSRequestHandler::HandleSetTransitionDuration(WSRequestHandler* req)
-{
- if (!req->hasField("duration"))
- {
+void WSRequestHandler::HandleSetTransitionDuration(WSRequestHandler* req) {
+ if (!req->hasField("duration")) {
req->SendErrorResponse("missing request parameters");
return;
}
@@ -629,8 +557,7 @@ void WSRequestHandler::HandleSetTransitionDuration(WSRequestHandler* req)
req->SendOKResponse();
}
-void WSRequestHandler::HandleGetTransitionDuration(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleGetTransitionDuration(WSRequestHandler* req) {
obs_data_t* response = obs_data_create();
obs_data_set_int(response, "transition-duration",
Utils::GetTransitionDuration());
@@ -639,11 +566,9 @@ void WSRequestHandler::HandleGetTransitionDuration(WSRequestHandler* req)
obs_data_release(response);
}
-void WSRequestHandler::HandleSetVolume(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleSetVolume(WSRequestHandler* req) {
if (!req->hasField("source") ||
- !req->hasField("volume"))
- {
+ !req->hasField("volume")) {
req->SendErrorResponse("missing request parameters");
return;
}
@@ -652,15 +577,13 @@ void WSRequestHandler::HandleSetVolume(WSRequestHandler* req)
float source_volume = obs_data_get_double(req->data, "volume");
if (source_name == NULL || strlen(source_name) < 1 ||
- source_volume < 0.0 || source_volume > 1.0)
- {
+ source_volume < 0.0 || source_volume > 1.0) {
req->SendErrorResponse("invalid request parameters");
return;
}
obs_source_t* source = obs_get_source_by_name(source_name);
- if (!source)
- {
+ if (!source) {
req->SendErrorResponse("specified source doesn't exist");
return;
}
@@ -671,18 +594,14 @@ void WSRequestHandler::HandleSetVolume(WSRequestHandler* req)
obs_source_release(source);
}
-void WSRequestHandler::HandleGetVolume(WSRequestHandler* req)
-{
- if (!req->hasField("source"))
- {
+void WSRequestHandler::HandleGetVolume(WSRequestHandler* req) {
+ if (!req->hasField("source")) {
req->SendErrorResponse("missing request parameters");
return;
}
const char* source_name = obs_data_get_string(req->data, "source");
-
- if (str_valid(source_name))
- {
+ if (str_valid(source_name)) {
obs_source_t* source = obs_get_source_by_name(source_name);
obs_data_t* response = obs_data_create();
@@ -694,31 +613,25 @@ void WSRequestHandler::HandleGetVolume(WSRequestHandler* req)
obs_data_release(response);
obs_source_release(source);
- }
- else
- {
+ } else {
req->SendErrorResponse("invalid request parameters");
}
}
-void WSRequestHandler::HandleToggleMute(WSRequestHandler* req)
-{
- if (!req->hasField("source"))
- {
+void WSRequestHandler::HandleToggleMute(WSRequestHandler* req) {
+ if (!req->hasField("source")) {
req->SendErrorResponse("missing request parameters");
return;
}
const char* source_name = obs_data_get_string(req->data, "source");
- if (!str_valid(source_name))
- {
+ if (!str_valid(source_name)) {
req->SendErrorResponse("invalid request parameters");
return;
}
obs_source_t* source = obs_get_source_by_name(source_name);
- if (!source)
- {
+ if (!source) {
req->SendErrorResponse("invalid request parameters");
return;
}
@@ -729,11 +642,9 @@ void WSRequestHandler::HandleToggleMute(WSRequestHandler* req)
obs_source_release(source);
}
-void WSRequestHandler::HandleSetMute(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleSetMute(WSRequestHandler* req) {
if (!req->hasField("source") ||
- !req->hasField("mute"))
- {
+ !req->hasField("mute")) {
req->SendErrorResponse("mssing request parameters");
return;
}
@@ -741,15 +652,13 @@ void WSRequestHandler::HandleSetMute(WSRequestHandler* req)
const char* source_name = obs_data_get_string(req->data, "source");
bool mute = obs_data_get_bool(req->data, "mute");
- if (!str_valid(source_name))
- {
+ if (!str_valid(source_name)) {
req->SendErrorResponse("invalid request parameters");
return;
}
obs_source_t* source = obs_get_source_by_name(source_name);
- if (!source)
- {
+ if (!source) {
req->SendErrorResponse("specified source doesn't exist");
return;
}
@@ -760,25 +669,20 @@ void WSRequestHandler::HandleSetMute(WSRequestHandler* req)
obs_source_release(source);
}
-void WSRequestHandler::HandleGetMute(WSRequestHandler* req)
-{
- if (!req->hasField("source"))
- {
+void WSRequestHandler::HandleGetMute(WSRequestHandler* req) {
+ if (!req->hasField("source")) {
req->SendErrorResponse("mssing request parameters");
return;
}
const char* source_name = obs_data_get_string(req->data, "source");
-
- if (!str_valid(source_name))
- {
+ if (!str_valid(source_name)) {
req->SendErrorResponse("invalid request parameters");
return;
}
obs_source_t* source = obs_get_source_by_name(source_name);
- if (!source)
- {
+ if (!source) {
req->SendErrorResponse("specified source doesn't exist");
return;
}
@@ -793,18 +697,15 @@ void WSRequestHandler::HandleGetMute(WSRequestHandler* req)
obs_data_release(response);
}
-void WSRequestHandler::HandleSetSceneItemPosition(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleSetSceneItemPosition(WSRequestHandler* req) {
if (!req->hasField("item") ||
- !req->hasField("x") || !req->hasField("y"))
- {
+ !req->hasField("x") || !req->hasField("y")) {
req->SendErrorResponse("missing request parameters");
return;
}
const char* item_name = obs_data_get_string(req->data, "item");
- if (!str_valid(item_name))
- {
+ if (!str_valid(item_name)) {
req->SendErrorResponse("invalid request parameters");
return;
}
@@ -817,9 +718,7 @@ void WSRequestHandler::HandleSetSceneItemPosition(WSRequestHandler* req)
}
obs_sceneitem_t* scene_item = Utils::GetSceneItemFromName(scene, item_name);
-
- if (scene_item)
- {
+ if (scene_item) {
vec2 item_position = { 0 };
item_position.x = obs_data_get_double(req->data, "x");
item_position.y = obs_data_get_double(req->data, "y");
@@ -828,29 +727,24 @@ void WSRequestHandler::HandleSetSceneItemPosition(WSRequestHandler* req)
obs_sceneitem_release(scene_item);
req->SendOKResponse();
- }
- else
- {
+ } else {
req->SendErrorResponse("specified scene item doesn't exist");
}
obs_source_release(scene);
}
-void WSRequestHandler::HandleSetSceneItemTransform(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleSetSceneItemTransform(WSRequestHandler* req) {
if (!req->hasField("item") ||
!req->hasField("x-scale") ||
!req->hasField("y-scale") ||
- !req->hasField("rotation"))
- {
+ !req->hasField("rotation")) {
req->SendErrorResponse("missing request parameters");
return;
}
const char* item_name = obs_data_get_string(req->data, "item");
- if (!str_valid(item_name))
- {
+ if (!str_valid(item_name)) {
req->SendErrorResponse("invalid request parameters");
return;
}
@@ -865,38 +759,30 @@ void WSRequestHandler::HandleSetSceneItemTransform(WSRequestHandler* req)
vec2 scale;
scale.x = obs_data_get_double(req->data, "x-scale");
scale.y = obs_data_get_double(req->data, "y-scale");
-
float rotation = obs_data_get_double(req->data, "rotation");
obs_sceneitem_t* scene_item = Utils::GetSceneItemFromName(scene, item_name);
-
- if (scene_item)
- {
+ if (scene_item) {
obs_sceneitem_set_scale(scene_item, &scale);
obs_sceneitem_set_rot(scene_item, rotation);
obs_sceneitem_release(scene_item);
req->SendOKResponse();
- }
- else
- {
+ } else {
req->SendErrorResponse("specified scene item doesn't exist");
}
obs_source_release(scene);
}
-void WSRequestHandler::HandleSetSceneItemCrop(WSRequestHandler* req)
-{
- if (!req->hasField("item"))
- {
+void WSRequestHandler::HandleSetSceneItemCrop(WSRequestHandler* req) {
+ if (!req->hasField("item")) {
req->SendErrorResponse("missing request parameters");
return;
}
const char* item_name = obs_data_get_string(req->data, "item");
- if (!str_valid(item_name))
- {
+ if (!str_valid(item_name)) {
req->SendErrorResponse("invalid request parameters");
return;
}
@@ -909,9 +795,7 @@ void WSRequestHandler::HandleSetSceneItemCrop(WSRequestHandler* req)
}
obs_sceneitem_t* scene_item = Utils::GetSceneItemFromName(scene, item_name);
-
- if (scene_item)
- {
+ if (scene_item) {
struct obs_sceneitem_crop crop = { 0 };
crop.top = obs_data_get_int(req->data, "top");
crop.bottom = obs_data_get_int(req->data, "bottom");;
@@ -922,129 +806,108 @@ void WSRequestHandler::HandleSetSceneItemCrop(WSRequestHandler* req)
obs_sceneitem_release(scene_item);
req->SendOKResponse();
- }
- else
- {
+ } else {
req->SendErrorResponse("specified scene item doesn't exist");
}
obs_source_release(scene);
}
-void WSRequestHandler::HandleSetCurrentSceneCollection(WSRequestHandler* req)
-{
- if (!req->hasField("sc-name"))
- {
+void WSRequestHandler::HandleSetCurrentSceneCollection(WSRequestHandler* req) {
+ if (!req->hasField("sc-name")) {
req->SendErrorResponse("missing request parameters");
return;
}
const char* scene_collection = obs_data_get_string(req->data, "sc-name");
-
- if (str_valid(scene_collection))
- {
+ if (str_valid(scene_collection)) {
// TODO : Check if specified profile exists and if changing is allowed
obs_frontend_set_current_scene_collection(scene_collection);
req->SendOKResponse();
- }
- else
- {
+ } else {
req->SendErrorResponse("invalid request parameters");
}
}
-void WSRequestHandler::HandleGetCurrentSceneCollection(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleGetCurrentSceneCollection(WSRequestHandler* req) {
obs_data_t* response = obs_data_create();
obs_data_set_string(response, "sc-name",
obs_frontend_get_current_scene_collection());
req->SendOKResponse(response);
-
obs_data_release(response);
}
-void WSRequestHandler::HandleListSceneCollections(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleListSceneCollections(WSRequestHandler* req) {
obs_data_array_t* scene_collections = Utils::GetSceneCollections();
obs_data_t* response = obs_data_create();
obs_data_set_array(response, "scene-collections", scene_collections);
req->SendOKResponse(response);
-
obs_data_release(response);
obs_data_array_release(scene_collections);
}
-void WSRequestHandler::HandleSetCurrentProfile(WSRequestHandler* req)
-{
- if (!req->hasField("profile-name"))
- {
+void WSRequestHandler::HandleSetCurrentProfile(WSRequestHandler* req) {
+ if (!req->hasField("profile-name")) {
req->SendErrorResponse("missing request parameters");
return;
}
const char* profile_name = obs_data_get_string(req->data, "profile-name");
-
- if (str_valid(profile_name))
- {
+ if (str_valid(profile_name)) {
// TODO : check if profile exists
obs_frontend_set_current_profile(profile_name);
req->SendOKResponse();
- }
- else
- {
+ } else {
req->SendErrorResponse("invalid request parameters");
}
}
-void WSRequestHandler::HandleGetCurrentProfile(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleGetCurrentProfile(WSRequestHandler* req) {
obs_data_t* response = obs_data_create();
obs_data_set_string(response, "profile-name",
obs_frontend_get_current_profile());
req->SendOKResponse(response);
-
obs_data_release(response);
}
-void WSRequestHandler::HandleSetStreamSettings(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleSetStreamSettings(WSRequestHandler* req) {
obs_service_t* service = obs_frontend_get_streaming_service();
obs_data_t* settings = obs_data_get_obj(req->data, "settings");
- if (!settings)
- {
+ if (!settings) {
req->SendErrorResponse("'settings' are required'");
return;
}
const char* serviceType = obs_service_get_type(service);
const char* requestedType = obs_data_get_string(req->data, "type");
-
- if (requestedType != nullptr && strcmp(requestedType, serviceType) != 0)
- {
+ if (requestedType != nullptr && strcmp(requestedType, serviceType) != 0) {
obs_data_t* hotkeys = obs_hotkeys_save_service(service);
obs_service_release(service);
service = obs_service_create(requestedType, "websocket_custom_service", settings, hotkeys);
obs_data_release(hotkeys);
- }
- else
- {
- obs_data_t* existingSettings = obs_service_get_settings(service); //if type isn't changing we should overlay the settings we got with the existing settings
- obs_data_t* newSettings = obs_data_create(); //by doing this you can send a request to the websocket that only contains a setting you want to change instead of having to do a get and then change them
+ } else {
+ //if type isn't changing we should overlay the settings we got with the existing settings
+ obs_data_t* existingSettings = obs_service_get_settings(service);
+ //by doing this you can send a request to the websocket that only contains a setting you want to change instead of having to do a get and then change them
+ obs_data_t* newSettings = obs_data_create();
+
obs_data_apply(newSettings, existingSettings); //first apply the existing settings
obs_data_apply(newSettings, settings); //then apply the settings from the request
+
obs_data_release(settings);
obs_data_release(existingSettings);
+
obs_service_update(service, settings);
settings = newSettings;
}
- if (obs_data_get_bool(req->data, "save")) //if save is specified we should immediately save the streaming service
- {
+ //if save is specified we should immediately save the streaming service
+ if (obs_data_get_bool(req->data, "save")) {
obs_frontend_save_streaming_service();
}
@@ -1053,15 +916,12 @@ void WSRequestHandler::HandleSetStreamSettings(WSRequestHandler* req)
obs_data_set_obj(response, "settings", settings);
req->SendOKResponse(response);
-
obs_data_release(settings);
obs_data_release(response);
}
-void WSRequestHandler::HandleGetStreamSettings(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleGetStreamSettings(WSRequestHandler* req) {
obs_service_t* service = obs_frontend_get_streaming_service();
-
const char* serviceType = obs_service_get_type(service);
obs_data_t* settings = obs_service_get_settings(service);
@@ -1070,46 +930,38 @@ void WSRequestHandler::HandleGetStreamSettings(WSRequestHandler* req)
obs_data_set_obj(response, "settings", settings);
req->SendOKResponse(response);
-
obs_data_release(settings);
obs_data_release(response);
}
-void WSRequestHandler::HandleSaveStreamSettings(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleSaveStreamSettings(WSRequestHandler* req) {
obs_frontend_save_streaming_service();
req->SendOKResponse();
}
-void WSRequestHandler::HandleListProfiles(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleListProfiles(WSRequestHandler* req) {
obs_data_array_t* profiles = Utils::GetProfiles();
obs_data_t* response = obs_data_create();
obs_data_set_array(response, "profiles", profiles);
req->SendOKResponse(response);
-
obs_data_release(response);
obs_data_array_release(profiles);
}
-void WSRequestHandler::HandleGetStudioModeStatus(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleGetStudioModeStatus(WSRequestHandler* req) {
bool previewActive = Utils::IsPreviewModeActive();
obs_data_t* response = obs_data_create();
obs_data_set_bool(response, "studio-mode", previewActive);
req->SendOKResponse(response);
-
obs_data_release(response);
}
-void WSRequestHandler::HandleGetPreviewScene(WSRequestHandler* req)
-{
- if (!Utils::IsPreviewModeActive())
- {
+void WSRequestHandler::HandleGetPreviewScene(WSRequestHandler* req) {
+ if (!Utils::IsPreviewModeActive()) {
req->SendErrorResponse("studio mode not enabled");
return;
}
@@ -1125,74 +977,59 @@ void WSRequestHandler::HandleGetPreviewScene(WSRequestHandler* req)
obs_data_set_array(data, "sources", scene_items);
req->SendOKResponse(data);
-
obs_data_release(data);
obs_data_array_release(scene_items);
-
obs_scene_release(preview_scene);
}
-void WSRequestHandler::HandleSetPreviewScene(WSRequestHandler* req)
-{
- if (!Utils::IsPreviewModeActive())
- {
+void WSRequestHandler::HandleSetPreviewScene(WSRequestHandler* req) {
+ if (!Utils::IsPreviewModeActive()) {
req->SendErrorResponse("studio mode not enabled");
return;
}
- if (!req->hasField("scene-name"))
- {
+ if (!req->hasField("scene-name")) {
req->SendErrorResponse("missing request parameters");
return;
}
const char* scene_name = obs_data_get_string(req->data, "scene-name");
bool success = Utils::SetPreviewScene(scene_name);
-
if (success)
req->SendOKResponse();
else
req->SendErrorResponse("specified scene doesn't exist");
}
-void WSRequestHandler::HandleTransitionToProgram(WSRequestHandler* req)
-{
- if (!Utils::IsPreviewModeActive())
- {
+void WSRequestHandler::HandleTransitionToProgram(WSRequestHandler* req) {
+ if (!Utils::IsPreviewModeActive()) {
req->SendErrorResponse("studio mode not enabled");
return;
}
- if (req->hasField("with-transition"))
- {
+ if (req->hasField("with-transition")) {
obs_data_t* transitionInfo =
obs_data_get_obj(req->data, "with-transition");
- if (obs_data_has_user_value(transitionInfo, "name"))
- {
+ if (obs_data_has_user_value(transitionInfo, "name")) {
const char* transitionName =
obs_data_get_string(transitionInfo, "name");
-
- if (!str_valid(transitionName))
- {
+ if (!str_valid(transitionName)) {
req->SendErrorResponse("invalid request parameters");
return;
}
bool success = Utils::SetTransitionByName(transitionName);
- if (!success)
- {
+ if (!success) {
req->SendErrorResponse("specified transition doesn't exist");
obs_data_release(transitionInfo);
return;
}
}
- if (obs_data_has_user_value(transitionInfo, "duration"))
- {
+ if (obs_data_has_user_value(transitionInfo, "duration")) {
int transitionDuration =
obs_data_get_int(transitionInfo, "duration");
-
Utils::SetTransitionDuration(transitionDuration);
}
@@ -1203,26 +1040,22 @@ void WSRequestHandler::HandleTransitionToProgram(WSRequestHandler* req)
req->SendOKResponse();
}
-void WSRequestHandler::HandleEnableStudioMode(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleEnableStudioMode(WSRequestHandler* req) {
Utils::EnablePreviewMode();
req->SendOKResponse();
}
-void WSRequestHandler::HandleDisableStudioMode(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleDisableStudioMode(WSRequestHandler* req) {
Utils::DisablePreviewMode();
req->SendOKResponse();
}
-void WSRequestHandler::HandleToggleStudioMode(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleToggleStudioMode(WSRequestHandler* req) {
Utils::TogglePreviewMode();
req->SendOKResponse();
}
-void WSRequestHandler::HandleGetSpecialSources(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleGetSpecialSources(WSRequestHandler* req) {
obs_data_t* response = obs_data_create();
QMap sources;
@@ -1233,45 +1066,38 @@ void WSRequestHandler::HandleGetSpecialSources(WSRequestHandler* req)
sources["mic-3"] = 5;
QMapIterator i(sources);
- while (i.hasNext())
- {
+ while (i.hasNext()) {
i.next();
const char* id = i.key();
obs_source_t* source = obs_get_output_source(i.value());
blog(LOG_INFO, "%s : %p", id, source);
- if (source)
- {
+ if (source) {
obs_data_set_string(response, id, obs_source_get_name(source));
obs_source_release(source);
}
}
req->SendOKResponse(response);
-
obs_data_release(response);
}
-void WSRequestHandler::HandleSetRecordingFolder(WSRequestHandler* req)
-{
- if (!req->hasField("rec-folder"))
- {
+void WSRequestHandler::HandleSetRecordingFolder(WSRequestHandler* req) {
+ if (!req->hasField("rec-folder")) {
req->SendErrorResponse("missing request parameters");
return;
}
const char* newRecFolder = obs_data_get_string(req->data, "rec-folder");
bool success = Utils::SetRecordingFolder(newRecFolder);
-
if (success)
req->SendOKResponse();
else
req->SendErrorResponse("invalid request parameters");
}
-void WSRequestHandler::HandleGetRecordingFolder(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleGetRecordingFolder(WSRequestHandler* req) {
const char* recFolder = Utils::GetRecordingFolder();
obs_data_t* response = obs_data_create();
@@ -1281,11 +1107,9 @@ void WSRequestHandler::HandleGetRecordingFolder(WSRequestHandler* req)
obs_data_release(response);
}
-void WSRequestHandler::HandleGetTextGDIPlusProperties(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleGetTextGDIPlusProperties(WSRequestHandler* req) {
const char* itemName = obs_data_get_string(req->data, "source");
- if (!itemName)
- {
+ if (!itemName) {
req->SendErrorResponse("invalid request parameters");
return;
}
@@ -1298,13 +1122,11 @@ void WSRequestHandler::HandleGetTextGDIPlusProperties(WSRequestHandler* req)
}
obs_sceneitem_t* sceneItem = Utils::GetSceneItemFromName(scene, itemName);
- if (sceneItem)
- {
+ if (sceneItem) {
obs_source_t* sceneItemSource = obs_sceneitem_get_source(sceneItem);
const char* sceneItemSourceId = obs_source_get_id(sceneItemSource);
- if (strcmp(sceneItemSourceId, "text_gdiplus") == 0)
- {
+ if (strcmp(sceneItemSourceId, "text_gdiplus") == 0) {
obs_data_t* response = obs_source_get_settings(sceneItemSource);
obs_data_set_string(response, "source", itemName);
obs_data_set_string(response, "scene-name", sceneName);
@@ -1315,32 +1137,24 @@ void WSRequestHandler::HandleGetTextGDIPlusProperties(WSRequestHandler* req)
obs_data_release(response);
obs_sceneitem_release(sceneItem);
- }
- else
- {
+ } else {
req->SendErrorResponse("not text gdi plus source");
}
-
- }
- else
- {
+ } else {
req->SendErrorResponse("specified scene item doesn't exist");
}
obs_source_release(scene);
}
-void WSRequestHandler::HandleSetTextGDIPlusProperties(WSRequestHandler* req)
-{
- if (!req->hasField("source"))
- {
+void WSRequestHandler::HandleSetTextGDIPlusProperties(WSRequestHandler* req) {
+ if (!req->hasField("source")) {
req->SendErrorResponse("missing request parameters");
return;
}
const char* itemName = obs_data_get_string(req->data, "source");
- if (!itemName)
- {
+ if (!itemName) {
req->SendErrorResponse("invalid request parameters");
return;
}
@@ -1353,86 +1167,71 @@ void WSRequestHandler::HandleSetTextGDIPlusProperties(WSRequestHandler* req)
}
obs_sceneitem_t* sceneItem = Utils::GetSceneItemFromName(scene, itemName);
- if (sceneItem)
- {
+ if (sceneItem) {
obs_source_t* sceneItemSource = obs_sceneitem_get_source(sceneItem);
const char* sceneItemSourceId = obs_source_get_id(sceneItemSource);
- if (strcmp(sceneItemSourceId, "text_gdiplus") == 0)
- {
+ if (strcmp(sceneItemSourceId, "text_gdiplus") == 0) {
obs_data_t* settings = obs_source_get_settings(sceneItemSource);
- if (req->hasField("align"))
- {
+ if (req->hasField("align")) {
obs_data_set_string(settings, "align",
obs_data_get_string(req->data, "align"));
}
- if (req->hasField("bk_color"))
- {
+ if (req->hasField("bk_color")) {
obs_data_set_int(settings, "bk_color",
obs_data_get_int(req->data, "bk_color"));
}
- if (req->hasField("bk-opacity"))
- {
+ if (req->hasField("bk-opacity")) {
obs_data_set_int(settings, "bk_opacity",
obs_data_get_int(req->data, "bk_opacity"));
}
- if (req->hasField("chatlog"))
- {
+ if (req->hasField("chatlog")) {
obs_data_set_bool(settings, "chatlog",
obs_data_get_bool(req->data, "chatlog"));
}
- if (req->hasField("chatlog_lines"))
- {
+ if (req->hasField("chatlog_lines")) {
obs_data_set_int(settings, "chatlog_lines",
obs_data_get_int(req->data, "chatlog_lines"));
}
- if (req->hasField("color"))
- {
+ if (req->hasField("color")) {
obs_data_set_int(settings, "color",
obs_data_get_int(req->data, "color"));
}
- if (req->hasField("extents"))
- {
+ if (req->hasField("extents")) {
obs_data_set_bool(settings, "extents",
obs_data_get_bool(req->data, "extents"));
}
- if (req->hasField("extents_wrap"))
- {
+ if (req->hasField("extents_wrap")) {
obs_data_set_bool(settings, "extents_wrap",
obs_data_get_bool(req->data, "extents_wrap"));
}
- if (req->hasField("extents_cx"))
- {
+ if (req->hasField("extents_cx")) {
obs_data_set_int(settings, "extents_cx",
obs_data_get_int(req->data, "extents_cx"));
}
- if (req->hasField("extents_cy"))
- {
+ if (req->hasField("extents_cy")) {
obs_data_set_int(settings, "extents_cy",
obs_data_get_int(req->data, "extents_cy"));
}
- if (req->hasField("file"))
- {
+ if (req->hasField("file")) {
obs_data_set_string(settings, "file",
obs_data_get_string(req->data, "file"));
}
- if (req->hasField("font"))
- {
+ if (req->hasField("font")) {
obs_data_t* font_obj = obs_data_get_obj(settings, "font");
- if (font_obj)
- {
+ if (font_obj) {
obs_data_t* req_font_obj = obs_data_get_obj(req->data, "font");
if (obs_data_has_user_value(req_font_obj, "face")) {
@@ -1460,109 +1259,89 @@ void WSRequestHandler::HandleSetTextGDIPlusProperties(WSRequestHandler* req)
}
}
- if (req->hasField("gradient"))
- {
+ if (req->hasField("gradient")) {
obs_data_set_bool(settings, "gradient",
obs_data_get_bool(req->data, "gradient"));
}
- if (req->hasField("gradient_color"))
- {
+ if (req->hasField("gradient_color")) {
obs_data_set_int(settings, "gradient_color",
obs_data_get_int(req->data, "gradient_color"));
}
- if (req->hasField("gradient_dir"))
- {
+ if (req->hasField("gradient_dir")) {
obs_data_set_double(settings, "gradient_dir",
obs_data_get_double(req->data, "gradient_dir"));
}
- if (req->hasField("gradient_opacity"))
- {
+ if (req->hasField("gradient_opacity")) {
obs_data_set_int(settings, "gradient_opacity",
obs_data_get_int(req->data, "gradient_opacity"));
}
- if (req->hasField("outline"))
- {
+ if (req->hasField("outline")) {
obs_data_set_bool(settings, "outline",
obs_data_get_bool(req->data, "outline"));
}
- if (req->hasField("outline_size"))
- {
+ if (req->hasField("outline_size")) {
obs_data_set_int(settings, "outline_size",
obs_data_get_int(req->data, "outline_size"));
}
- if (req->hasField("outline_color"))
- {
+ if (req->hasField("outline_color")) {
obs_data_set_int(settings, "outline_color",
obs_data_get_int(req->data, "outline_color"));
}
- if (req->hasField("outline_opacity"))
- {
+ if (req->hasField("outline_opacity")) {
obs_data_set_int(settings, "outline_opacity",
obs_data_get_int(req->data, "outline_opacity"));
}
- if (req->hasField("read_from_file"))
- {
+ if (req->hasField("read_from_file")) {
obs_data_set_bool(settings, "read_from_file",
obs_data_get_bool(req->data, "read_from_file"));
}
- if (req->hasField("text"))
- {
+ if (req->hasField("text")) {
obs_data_set_string(settings, "text",
obs_data_get_string(req->data, "text"));
}
- if (req->hasField("valign"))
- {
+ if (req->hasField("valign")) {
obs_data_set_string(settings, "valign",
obs_data_get_string(req->data, "valign"));
}
- if (req->hasField("vertical"))
- {
+ if (req->hasField("vertical")) {
obs_data_set_bool(settings, "vertical",
obs_data_get_bool(req->data, "vertical"));
}
obs_source_update(sceneItemSource, settings);
- if (req->hasField("render"))
- {
+ if (req->hasField("render")) {
obs_sceneitem_set_visible(sceneItem,
obs_data_get_bool(req->data, "render"));
}
req->SendOKResponse();
-
obs_data_release(settings);
obs_sceneitem_release(sceneItem);
- }
- else
- {
+ } else {
req->SendErrorResponse("not text gdi plus source");
}
- }
- else
- {
+ } else {
req->SendErrorResponse("specified scene item doesn't exist");
}
obs_source_release(scene);
}
-void WSRequestHandler::HandleGetBrowserSourceProperties(WSRequestHandler* req)
-{
+void WSRequestHandler::HandleGetBrowserSourceProperties(WSRequestHandler* req) {
const char* itemName = obs_data_get_string(req->data, "source");
- if (!itemName)
- {
+ if (!itemName) {
req->SendErrorResponse("invalid request parameters");
return;
}
@@ -1575,13 +1354,11 @@ void WSRequestHandler::HandleGetBrowserSourceProperties(WSRequestHandler* req)
}
obs_sceneitem_t* sceneItem = Utils::GetSceneItemFromName(scene, itemName);
- if (sceneItem)
- {
+ if (sceneItem) {
obs_source_t* sceneItemSource = obs_sceneitem_get_source(sceneItem);
const char* sceneItemSourceId = obs_source_get_id(sceneItemSource);
- if (strcmp(sceneItemSourceId, "browser_source") == 0)
- {
+ if (strcmp(sceneItemSourceId, "browser_source") == 0) {
obs_data_t* response = obs_source_get_settings(sceneItemSource);
obs_data_set_string(response, "source", itemName);
obs_data_set_string(response, "scene-name", sceneName);
@@ -1592,30 +1369,23 @@ void WSRequestHandler::HandleGetBrowserSourceProperties(WSRequestHandler* req)
obs_data_release(response);
obs_sceneitem_release(sceneItem);
- }
- else
- {
+ } else {
req->SendErrorResponse("not browser source");
}
- }
- else
- {
+ } else {
req->SendErrorResponse("specified scene item doesn't exist");
}
obs_source_release(scene);
}
-void WSRequestHandler::HandleSetBrowserSourceProperties(WSRequestHandler* req)
-{
- if (!req->hasField("source"))
- {
+void WSRequestHandler::HandleSetBrowserSourceProperties(WSRequestHandler* req) {
+ if (!req->hasField("source")) {
req->SendErrorResponse("missing request parameters");
return;
}
const char* itemName = obs_data_get_string(req->data, "source");
- if (!itemName)
- {
+ if (!itemName) {
req->SendErrorResponse("invalid request parameters");
return;
}
@@ -1628,67 +1398,56 @@ void WSRequestHandler::HandleSetBrowserSourceProperties(WSRequestHandler* req)
}
obs_sceneitem_t* sceneItem = Utils::GetSceneItemFromName(scene, itemName);
- if (sceneItem)
- {
+ if (sceneItem) {
obs_source_t* sceneItemSource = obs_sceneitem_get_source(sceneItem);
const char* sceneItemSourceId = obs_source_get_id(sceneItemSource);
- if (strcmp(sceneItemSourceId, "browser_source") == 0)
- {
+ if (strcmp(sceneItemSourceId, "browser_source") == 0) {
obs_data_t* settings = obs_source_get_settings(sceneItemSource);
- if (req->hasField("restart_when_active"))
- {
+ if (req->hasField("restart_when_active")) {
obs_data_set_bool(settings, "restart_when_active",
obs_data_get_bool(req->data, "restart_when_active"));
}
- if (req->hasField("shutdown"))
- {
+ if (req->hasField("shutdown")) {
obs_data_set_bool(settings, "shutdown",
obs_data_get_bool(req->data, "shutdown"));
}
- if (req->hasField("is_local_file"))
- {
+ if (req->hasField("is_local_file")) {
obs_data_set_bool(settings, "is_local_file",
obs_data_get_bool(req->data, "is_local_file"));
}
- if (req->hasField("url"))
- {
+ if (req->hasField("url")) {
obs_data_set_string(settings, "url",
obs_data_get_string(req->data, "url"));
}
- if (req->hasField("css"))
- {
+ if (req->hasField("css")) {
obs_data_set_string(settings, "css",
obs_data_get_string(req->data, "css"));
}
- if (req->hasField("width"))
- {
+ if (req->hasField("width")) {
obs_data_set_int(settings, "width",
obs_data_get_int(req->data, "width"));
}
- if (req->hasField("height"))
- {
+ if (req->hasField("height")) {
obs_data_set_int(settings, "height",
obs_data_get_int(req->data, "height"));
}
- if (req->hasField("fps"))
- {
+ if (req->hasField("fps")) {
obs_data_set_int(settings, "fps",
obs_data_get_int(req->data, "fps"));
}
obs_source_update(sceneItemSource, settings);
- if (req->hasField("render"))
- {
+ if (req->hasField("render")) {
obs_sceneitem_set_visible(sceneItem,
obs_data_get_bool(req->data, "render"));
}
@@ -1697,14 +1456,10 @@ void WSRequestHandler::HandleSetBrowserSourceProperties(WSRequestHandler* req)
obs_data_release(settings);
obs_sceneitem_release(sceneItem);
- }
- else
- {
+ } else {
req->SendErrorResponse("not browser source");
}
- }
- else
- {
+ } else {
req->SendErrorResponse("specified scene item doesn't exist");
}
obs_source_release(scene);