diff --git a/Utils.cpp b/Utils.cpp index cc773f9b..49dfca39 100644 --- a/Utils.cpp +++ b/Utils.cpp @@ -30,14 +30,14 @@ obs_data_array_t* string_list_to_array(char** strings, char* key) if (!strings) return obs_data_array_create(); - obs_data_array_t *list = obs_data_array_create(); + obs_data_array_t* list = obs_data_array_create(); char* value = ""; for (int i = 0; value != nullptr; i++) { value = strings[i]; - obs_data_t *item = obs_data_create(); + obs_data_t* item = obs_data_create(); obs_data_set_string(item, key, value); if (value) @@ -49,17 +49,19 @@ obs_data_array_t* string_list_to_array(char** strings, char* key) return list; } -obs_data_array_t* Utils::GetSceneItems(obs_source_t *source) { - obs_data_array_t *items = obs_data_array_create(); - obs_scene_t *scene = obs_scene_from_source(source); - if (scene == NULL) { - return NULL; - } +obs_data_array_t* Utils::GetSceneItems(obs_source_t* source) +{ + obs_data_array_t* items = obs_data_array_create(); + obs_scene_t* scene = obs_scene_from_source(source); - obs_scene_enum_items(scene, [](obs_scene_t *scene, obs_sceneitem_t *currentItem, void *param) { - obs_data_array_t *data = static_cast(param); - - obs_data_t *item_data = GetSceneItemData(currentItem); + if (!scene) + return nullptr; + + obs_scene_enum_items(scene, [](obs_scene_t* scene, obs_sceneitem_t* currentItem, void* param) + { + obs_data_array_t* data = static_cast(param); + + obs_data_t* item_data = GetSceneItemData(currentItem); obs_data_array_insert(data, 0, item_data); obs_data_release(item_data); @@ -69,10 +71,10 @@ obs_data_array_t* Utils::GetSceneItems(obs_source_t *source) { return items; } -obs_data_t* Utils::GetSceneItemData(obs_sceneitem_t *item) { - if (!item) { - return NULL; - } +obs_data_t* Utils::GetSceneItemData(obs_sceneitem_t* item) +{ + if (!item) + return nullptr; vec2 pos; obs_sceneitem_get_pos(item, &pos); @@ -84,7 +86,7 @@ obs_data_t* Utils::GetSceneItemData(obs_sceneitem_t *item) { float item_width = float(obs_source_get_width(item_source)); float item_height = float(obs_source_get_height(item_source)); - obs_data_t *data = obs_data_create(); + obs_data_t* data = obs_data_create(); obs_data_set_string(data, "name", obs_source_get_name(obs_sceneitem_get_source(item))); obs_data_set_string(data, "type", @@ -95,14 +97,15 @@ obs_data_t* Utils::GetSceneItemData(obs_sceneitem_t *item) { obs_data_set_double(data, "y", pos.y); obs_data_set_int(data, "source_cx", (int)item_width); obs_data_set_int(data, "source_cy", (int)item_height); - obs_data_set_double(data, "cx", item_width * scale.x); - obs_data_set_double(data, "cy", item_height * scale.y); + obs_data_set_double(data, "cx", item_width* scale.x); + obs_data_set_double(data, "cy", item_height* scale.y); obs_data_set_bool(data, "render", obs_sceneitem_visible(item)); return data; } -obs_sceneitem_t* Utils::GetSceneItemFromName(obs_source_t* source, const char* name) { +obs_sceneitem_t* Utils::GetSceneItemFromName(obs_source_t* source, const char* name) +{ struct current_search { const char* query; obs_sceneitem_t* result; @@ -110,20 +113,21 @@ obs_sceneitem_t* Utils::GetSceneItemFromName(obs_source_t* source, const char* n current_search search; search.query = name; - search.result = NULL; + search.result = nullptr; - obs_scene_t *scene = obs_scene_from_source(source); - if (scene == NULL) { - return NULL; - } + obs_scene_t* scene = obs_scene_from_source(source); + if (scene == nullptr) + return nullptr; + + obs_scene_enum_items(scene, [](obs_scene_t* scene, obs_sceneitem_t* currentItem, void* param) + { + current_search* search = static_cast(param); - obs_scene_enum_items(scene, [](obs_scene_t *scene, obs_sceneitem_t *currentItem, void *param) { - current_search *search = static_cast(param); - const char* currentItemName = obs_source_get_name(obs_sceneitem_get_source(currentItem)); - - if (strcmp(currentItemName, search->query) == 0) { + + if (strcmp(currentItemName, search->query) == 0) + { search->result = currentItem; obs_sceneitem_addref(search->result); return false; @@ -135,17 +139,20 @@ obs_sceneitem_t* Utils::GetSceneItemFromName(obs_source_t* source, const char* n return search.result; } -obs_source_t* Utils::GetTransitionFromName(const char *search_name) { - obs_source_t *found_transition = NULL; +obs_source_t* Utils::GetTransitionFromName(const char* search_name) +{ + obs_source_t* found_transition = NULL; obs_frontend_source_list transition_list = {}; obs_frontend_get_transitions(&transition_list); - for (size_t i = 0; i < transition_list.sources.num; i++) { - obs_source_t *transition = transition_list.sources.array[i]; + for (size_t i = 0; i < transition_list.sources.num; i++) + { + obs_source_t* transition = transition_list.sources.array[i]; - const char *transition_name = obs_source_get_name(transition); - if (strcmp(transition_name, search_name) == 0) { + const char* transition_name = obs_source_get_name(transition); + if (strcmp(transition_name, search_name) == 0) + { found_transition = transition; obs_source_addref(found_transition); break; @@ -157,44 +164,47 @@ obs_source_t* Utils::GetTransitionFromName(const char *search_name) { return found_transition; } -obs_source_t* Utils::GetSceneFromNameOrCurrent(const char *scene_name) { - obs_source_t* scene; - if (!scene_name || !strlen(scene_name)) { +obs_source_t* Utils::GetSceneFromNameOrCurrent(const char* scene_name) +{ + obs_source_t* scene = nullptr; + + if (!scene_name || !strlen(scene_name)) scene = obs_frontend_get_current_scene(); - } - else { + else scene = obs_get_source_by_name(scene_name); - } return scene; } -obs_data_array_t* Utils::GetScenes() { +obs_data_array_t* Utils::GetScenes() +{ obs_frontend_source_list sceneList = {}; obs_frontend_get_scenes(&sceneList); obs_data_array_t* scenes = obs_data_array_create(); - for (size_t i = 0; i < sceneList.sources.num; i++) { - obs_source_t *scene = sceneList.sources.array[i]; - - obs_data_t *scene_data = GetSceneData(scene); + for (size_t i = 0; i < sceneList.sources.num; i++) + { + obs_source_t* scene = sceneList.sources.array[i]; + + obs_data_t* scene_data = GetSceneData(scene); obs_data_array_push_back(scenes, scene_data); obs_data_release(scene_data); } - obs_frontend_source_list_free(&sceneList); + obs_frontend_source_list_free(&sceneList); return scenes; } -obs_data_t* Utils::GetSceneData(obs_source *source) { - obs_data_array_t *scene_items = GetSceneItems(source); +obs_data_t* Utils::GetSceneData(obs_source* source) +{ + obs_data_array_t* scene_items = GetSceneItems(source); obs_data_t* sceneData = obs_data_create(); obs_data_set_string(sceneData, "name", obs_source_get_name(source)); obs_data_set_array(sceneData, "sources", scene_items); - + obs_data_array_release(scene_items); return sceneData; } @@ -202,7 +212,7 @@ obs_data_t* Utils::GetSceneData(obs_source *source) { obs_data_array_t* Utils::GetSceneCollections() { char** scene_collections = obs_frontend_get_scene_collections(); - obs_data_array_t *list = string_list_to_array(scene_collections, "sc-name"); + obs_data_array_t* list = string_list_to_array(scene_collections, "sc-name"); bfree(scene_collections); return list; @@ -211,7 +221,7 @@ obs_data_array_t* Utils::GetSceneCollections() obs_data_array_t* Utils::GetProfiles() { char** profiles = obs_frontend_get_profiles(); - obs_data_array_t *list = string_list_to_array(profiles, "profile-name"); + obs_data_array_t* list = string_list_to_array(profiles, "profile-name"); bfree(profiles); return list; @@ -219,7 +229,7 @@ obs_data_array_t* Utils::GetProfiles() QSpinBox* Utils::GetTransitionDurationControl() { - QMainWindow *window = (QMainWindow*)obs_frontend_get_main_window(); + QMainWindow* window = (QMainWindow*)obs_frontend_get_main_window(); return window->findChild("transitionDuration"); } @@ -227,13 +237,9 @@ int Utils::GetTransitionDuration() { QSpinBox* control = GetTransitionDurationControl(); if (control) - { return control->value(); - } else - { return -1; - } } void Utils::SetTransitionDuration(int ms) @@ -241,14 +247,12 @@ void Utils::SetTransitionDuration(int ms) QSpinBox* control = GetTransitionDurationControl(); if (control && ms >= 0) - { control->setValue(ms); - } } bool Utils::SetTransitionByName(const char* transition_name) { - obs_source_t *transition = GetTransitionFromName(transition_name); + obs_source_t* transition = GetTransitionFromName(transition_name); if (transition) { @@ -335,7 +339,7 @@ obs_scene_t* Utils::GetPreviewScene() obs_scene_addref(scene); return scene; } - + return nullptr; } @@ -344,7 +348,7 @@ bool Utils::SetPreviewScene(const char* name) if (IsPreviewModeActive()) { QListWidget* sceneList = GetSceneListControl(); - QList matchingItems = + QList matchingItems = sceneList->findItems(name, Qt::MatchExactly); if (matchingItems.count() > 0) @@ -374,7 +378,7 @@ void Utils::TransitionToProgram() // The program options widget is the second item in the left-to-right layout QWidget* programOptions = GetPreviewLayout()->itemAt(1)->widget(); - // The "Transition" button lies in the mainButtonLayout + // The "Transition" button lies in the mainButtonLayout // which is the first itemin the program options' layout QLayout* mainButtonLayout = programOptions->layout()->itemAt(1)->layout(); QWidget* transitionBtnWidget = mainButtonLayout->itemAt(0)->widget(); @@ -394,7 +398,7 @@ const char* Utils::OBSVersionString() { minor = (version >> 16) & 0xFF; patch = version & 0xFF; - char *result = (char*)bmalloc(sizeof(char) * 12); + char* result = (char*)bmalloc(sizeof(char) * 12); sprintf(result, "%d.%d.%d", major, minor, patch); return result; @@ -412,7 +416,6 @@ void Utils::SysTrayNotify(QString &text, QSystemTrayIcon::MessageIcon icon, QStr return; QSystemTrayIcon* trayIcon = GetTrayIcon(); - if (trayIcon) trayIcon->showMessage(title, text, icon); } @@ -420,9 +423,7 @@ void Utils::SysTrayNotify(QString &text, QSystemTrayIcon::MessageIcon icon, QStr QString Utils::FormatIPAddress(QHostAddress &addr) { if (addr.protocol() == QAbstractSocket::IPv4Protocol) - { QString v4addr = addr.toString().replace("::fff:", ""); - } return addr.toString(); } diff --git a/Utils.h b/Utils.h index 6829ef1b..9b428b9e 100644 --- a/Utils.h +++ b/Utils.h @@ -32,15 +32,15 @@ with this program. If not, see class Utils { public: - static obs_data_array_t* GetSceneItems(obs_source_t *source); - static obs_data_t* GetSceneItemData(obs_scene_item *item); + static obs_data_array_t* GetSceneItems(obs_source_t* source); + static obs_data_t* GetSceneItemData(obs_scene_item* item); static obs_sceneitem_t* GetSceneItemFromName( - obs_source_t *source, const char *name); - static obs_source_t* GetTransitionFromName(const char *search_name); - static obs_source_t* GetSceneFromNameOrCurrent(const char *scene_name); + obs_source_t* source, const char* name); + static obs_source_t* GetTransitionFromName(const char* search_name); + static obs_source_t* GetSceneFromNameOrCurrent(const char* scene_name); static obs_data_array_t* GetScenes(); - static obs_data_t* GetSceneData(obs_source *source); + static obs_data_t* GetSceneData(obs_source* source); static obs_data_array_t* GetSceneCollections(); static obs_data_array_t* GetProfiles(); diff --git a/WSEvents.cpp b/WSEvents.cpp index 3f3fa3e3..3beeb489 100644 --- a/WSEvents.cpp +++ b/WSEvents.cpp @@ -24,12 +24,12 @@ with this program. If not, see #include "WSEvents.h" #include "obs-websocket.h" -bool transition_is_cut(obs_source_t *transition) +bool transition_is_cut(obs_source_t* transition) { if (!transition) return false; - if (obs_source_get_type(transition) == OBS_SOURCE_TYPE_TRANSITION + if (obs_source_get_type(transition) == OBS_SOURCE_TYPE_TRANSITION && strcmp(obs_source_get_id(transition), "cut_transition") == 0) { return true; @@ -58,17 +58,17 @@ const char* ns_to_timestamp(uint64_t ns) WSEvents* WSEvents::Instance = nullptr; -WSEvents::WSEvents(WSServer *srv) +WSEvents::WSEvents(WSServer* srv) { _srv = srv; obs_frontend_add_event_callback(WSEvents::FrontendEventHandler, this); QSpinBox* duration_control = Utils::GetTransitionDurationControl(); - connect(duration_control, SIGNAL(valueChanged(int)), + connect(duration_control, SIGNAL(valueChanged(int)), this, SLOT(TransitionDurationChanged(int))); - QTimer *statusTimer = new QTimer(); - connect(statusTimer, SIGNAL(timeout()), + QTimer* statusTimer = new QTimer(); + connect(statusTimer, SIGNAL(timeout()), this, SLOT(StreamStatus())); statusTimer->start(2000); // equal to frontend's constant BITRATE_UPDATE_SECONDS @@ -107,9 +107,9 @@ void WSEvents::deferredInitOperations() obs_source_release(scene); } -void WSEvents::FrontendEventHandler(enum obs_frontend_event event, void *private_data) +void WSEvents::FrontendEventHandler(enum obs_frontend_event event, void* private_data) { - WSEvents *owner = static_cast(private_data); + WSEvents* owner = static_cast(private_data); if (!owner->_srv) return; @@ -190,11 +190,11 @@ void WSEvents::FrontendEventHandler(enum obs_frontend_event event, void *private } } -void WSEvents::broadcastUpdate(const char *updateType, obs_data_t *additionalFields = NULL) +void WSEvents::broadcastUpdate(const char* updateType, obs_data_t* additionalFields = NULL) { - obs_data_t *update = obs_data_create(); + obs_data_t* update = obs_data_create(); obs_data_set_string(update, "update-type", updateType); - + const char* ts = nullptr; if (_streaming_active) { @@ -209,10 +209,9 @@ void WSEvents::broadcastUpdate(const char *updateType, obs_data_t *additionalFie obs_data_set_string(update, "rec-timecode", ts); bfree((void*)ts); } - - if (additionalFields != NULL) { + + if (additionalFields != NULL) obs_data_apply(update, additionalFields); - } _srv->broadcast(obs_data_get_json(update)); @@ -231,7 +230,8 @@ void WSEvents::connectTransitionSignals(obs_source_t* transition) { transition_handler = obs_source_get_signal_handler(transition); signal_handler_connect(transition_handler, - "transition_start", OnTransitionBegin, this); } + "transition_start", OnTransitionBegin, this); + } else { transition_handler = nullptr; @@ -293,7 +293,7 @@ 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_data_t* data = obs_data_create(); obs_source_t* current_scene = obs_frontend_get_current_scene(); obs_data_array_t* scene_items = Utils::GetSceneItems(current_scene); @@ -346,12 +346,12 @@ void WSEvents::OnTransitionChange() obs_source_t* current_transition = obs_frontend_get_current_transition(); connectTransitionSignals(current_transition); - obs_data_t *data = obs_data_create(); - obs_data_set_string(data, "transition-name", + obs_data_t* data = obs_data_create(); + obs_data_set_string(data, "transition-name", obs_source_get_name(current_transition)); - + broadcastUpdate("SwitchTransition", data); - + obs_data_release(data); obs_source_release(current_transition); } @@ -374,7 +374,7 @@ 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_t* data = obs_data_create(); obs_data_set_bool(data, "preview-only", false); broadcastUpdate("StreamStarting", data); @@ -393,7 +393,7 @@ void WSEvents::OnStreamStarted() void WSEvents::OnStreamStopping() { // Implements an existing update type from bilhamil's OBS Remote - obs_data_t *data = obs_data_create(); + obs_data_t* data = obs_data_create(); obs_data_set_bool(data, "preview-only", false); broadcastUpdate("StreamStopping", data); @@ -445,25 +445,25 @@ void WSEvents::StreamStatus() bool streaming_active = obs_frontend_streaming_active(); bool recording_active = obs_frontend_recording_active(); - obs_output_t *stream_output = obs_frontend_get_streaming_output(); + obs_output_t* stream_output = obs_frontend_get_streaming_output(); - if (!stream_output || !streaming_active) { - if (stream_output) { + if (!stream_output || !streaming_active) + { + if (stream_output) obs_output_release(stream_output); - } + return; } uint64_t bytes_sent = obs_output_get_total_bytes(stream_output); uint64_t bytes_sent_time = os_gettime_ns(); - if (bytes_sent < _lastBytesSent) { + if (bytes_sent < _lastBytesSent) bytes_sent = 0; - } - if (bytes_sent == 0) { + + if (bytes_sent == 0) _lastBytesSent = 0; - } - + uint64_t bytes_between = bytes_sent - _lastBytesSent; double time_passed = double(bytes_sent_time - _lastBytesSentTime) / 1000000000.0; @@ -481,7 +481,7 @@ void WSEvents::StreamStatus() float strain = obs_output_get_congestion(stream_output); - obs_data_t *data = obs_data_create(); + obs_data_t* data = obs_data_create(); obs_data_set_bool(data, "streaming", streaming_active); obs_data_set_bool(data, "recording", recording_active); obs_data_set_int(data, "bytes-per-sec", bytes_per_sec); @@ -519,23 +519,23 @@ void WSEvents::OnTransitionBegin(void* param, calldata_t* data) blog(LOG_INFO, "transition begin"); } -void WSEvents::OnSceneReordered(void *param, calldata_t *data) +void WSEvents::OnSceneReordered(void* param, calldata_t* data) { WSEvents* instance = static_cast(param); obs_scene_t* scene = nullptr; calldata_get_ptr(data, "scene", &scene); - obs_data_t *fields = obs_data_create(); - obs_data_set_string(fields, "scene-name", + obs_data_t* fields = obs_data_create(); + obs_data_set_string(fields, "scene-name", obs_source_get_name(obs_scene_get_source(scene))); - + instance->broadcastUpdate("SourceOrderChanged", fields); obs_data_release(fields); } -void WSEvents::OnSceneItemAdd(void *param, calldata_t *data) +void WSEvents::OnSceneItemAdd(void* param, calldata_t* data) { WSEvents* instance = static_cast(param); @@ -559,7 +559,7 @@ void WSEvents::OnSceneItemAdd(void *param, calldata_t *data) obs_data_release(fields); } -void WSEvents::OnSceneItemDelete(void *param, calldata_t *data) +void WSEvents::OnSceneItemDelete(void* param, calldata_t* data) { WSEvents* instance = static_cast(param); @@ -583,7 +583,7 @@ void WSEvents::OnSceneItemDelete(void *param, calldata_t *data) obs_data_release(fields); } -void WSEvents::OnSceneItemVisibilityChanged(void *param, calldata_t *data) +void WSEvents::OnSceneItemVisibilityChanged(void* param, calldata_t* data) { WSEvents* instance = static_cast(param); @@ -611,7 +611,7 @@ void WSEvents::OnSceneItemVisibilityChanged(void *param, calldata_t *data) obs_data_release(fields); } -void WSEvents::SelectedSceneChanged(QListWidgetItem *current, QListWidgetItem *prev) +void WSEvents::SelectedSceneChanged(QListWidgetItem* current, QListWidgetItem* prev) { if (Utils::IsPreviewModeActive()) { diff --git a/WSEvents.h b/WSEvents.h index 26550a83..aa173bd4 100644 --- a/WSEvents.h +++ b/WSEvents.h @@ -24,15 +24,15 @@ with this program. If not, see #include #include "WSServer.h" -class WSEvents : public QObject +class WSEvents : public QObject { Q_OBJECT public: - explicit WSEvents(WSServer *srv); + explicit WSEvents(WSServer* srv); ~WSEvents(); static void FrontendEventHandler( - enum obs_frontend_event event, void *private_data); + enum obs_frontend_event event, void* private_data); void connectTransitionSignals(obs_source_t* transition); void connectSceneSignals(obs_source_t* scene); static WSEvents* Instance; @@ -47,13 +47,13 @@ class WSEvents : public QObject void StreamStatus(); void TransitionDurationChanged(int ms); void SelectedSceneChanged( - QListWidgetItem *current, QListWidgetItem *prev); + QListWidgetItem* current, QListWidgetItem* prev); void ModeSwitchClicked(bool checked); private: - WSServer *_srv; - signal_handler_t *transition_handler; - signal_handler_t *scene_handler; + WSServer* _srv; + signal_handler_t* transition_handler; + signal_handler_t* scene_handler; bool _streaming_active; bool _recording_active; @@ -64,8 +64,8 @@ class WSEvents : public QObject uint64_t _lastBytesSent; uint64_t _lastBytesSentTime; - void broadcastUpdate(const char *updateType, - obs_data_t *additionalFields); + void broadcastUpdate(const char* updateType, + obs_data_t* additionalFields); void OnSceneChange(); void OnSceneListChange(); @@ -90,12 +90,12 @@ class WSEvents : public QObject void OnExit(); - static void OnTransitionBegin(void *param, calldata_t *data); + static void OnTransitionBegin(void* param, calldata_t* data); - static void OnSceneReordered(void *param, calldata_t *data); - static void OnSceneItemAdd(void *param, calldata_t *data); - static void OnSceneItemDelete(void *param, calldata_t *data); - static void OnSceneItemVisibilityChanged(void *param, calldata_t *data); + static void OnSceneReordered(void* param, calldata_t* data); + static void OnSceneItemAdd(void* param, calldata_t* data); + static void OnSceneItemDelete(void* param, calldata_t* data); + static void OnSceneItemVisibilityChanged(void* param, calldata_t* data); }; #endif // WSEVENTS_H \ No newline at end of file diff --git a/WSRequestHandler.cpp b/WSRequestHandler.cpp index 1aa18a50..e3d71e51 100644 --- a/WSRequestHandler.cpp +++ b/WSRequestHandler.cpp @@ -28,7 +28,7 @@ bool str_valid(const char* str) return (str != nullptr && strlen(str) > 0); } -WSRequestHandler::WSRequestHandler(QWebSocket *client) : +WSRequestHandler::WSRequestHandler(QWebSocket* client) : _messageId(0), _requestType(""), data(nullptr) @@ -94,15 +94,13 @@ WSRequestHandler::WSRequestHandler(QWebSocket *client) : void WSRequestHandler::processIncomingMessage(QString textMessage) { QByteArray msgData = textMessage.toUtf8(); - const char *msg = msgData; + const char* msg = msgData; data = obs_data_create_from_json(msg); if (!data) { if (!msg) - { msg = ""; - } blog(LOG_ERROR, "invalid JSON payload received for '%s'", msg); SendErrorResponse("invalid JSON payload"); @@ -141,9 +139,9 @@ 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_t* response = obs_data_create(); obs_data_set_string(response, "status", "ok"); obs_data_set_string(response, "message-id", _messageId); @@ -155,9 +153,9 @@ void WSRequestHandler::SendOKResponse(obs_data_t *additionalFields) obs_data_release(response); } -void WSRequestHandler::SendErrorResponse(const char *errorMessage) +void WSRequestHandler::SendErrorResponse(const char* errorMessage) { - obs_data_t *response = obs_data_create(); + obs_data_t* response = obs_data_create(); obs_data_set_string(response, "status", "error"); obs_data_set_string(response, "error", errorMessage); obs_data_set_string(response, "message-id", _messageId); @@ -175,11 +173,11 @@ bool WSRequestHandler::hasField(const char* name) 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(); + obs_data_t* data = obs_data_create(); obs_data_set_double(data, "version", API_VERSION); obs_data_set_string(data, "obs-websocket-version", OBS_WEBSOCKET_VERSION); obs_data_set_string(data, "obs-studio-version", obs_version); @@ -190,11 +188,11 @@ 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_t* data = obs_data_create(); obs_data_set_bool(data, "authRequired", authRequired); if (authRequired) @@ -210,7 +208,7 @@ void WSRequestHandler::HandleGetAuthRequired(WSRequestHandler *req) obs_data_release(data); } -void WSRequestHandler::HandleAuthenticate(WSRequestHandler *req) +void WSRequestHandler::HandleAuthenticate(WSRequestHandler* req) { if (!req->hasField("auth")) { @@ -218,14 +216,14 @@ void WSRequestHandler::HandleAuthenticate(WSRequestHandler *req) return; } - const char *auth = obs_data_get_string(req->data, "auth"); + const char* auth = obs_data_get_string(req->data, "auth"); if (!str_valid(auth)) { req->SendErrorResponse("auth not specified!"); return; } - if ((req->_client->property(PROP_AUTHENTICATED).toBool() == false) + if ((req->_client->property(PROP_AUTHENTICATED).toBool() == false) && Config::Current()->CheckAuth(auth)) { req->_client->setProperty(PROP_AUTHENTICATED, true); @@ -237,7 +235,7 @@ void WSRequestHandler::HandleAuthenticate(WSRequestHandler *req) } } -void WSRequestHandler::HandleSetCurrentScene(WSRequestHandler *req) +void WSRequestHandler::HandleSetCurrentScene(WSRequestHandler* req) { if (!req->hasField("scene-name")) { @@ -245,8 +243,8 @@ void WSRequestHandler::HandleSetCurrentScene(WSRequestHandler *req) return; } - const char *sceneName = obs_data_get_string(req->data, "scene-name"); - obs_source_t *source = obs_get_source_by_name(sceneName); + const char* sceneName = obs_data_get_string(req->data, "scene-name"); + obs_source_t* source = obs_get_source_by_name(sceneName); if (source) { @@ -261,14 +259,14 @@ void WSRequestHandler::HandleSetCurrentScene(WSRequestHandler *req) 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); + obs_source_t* current_scene = obs_frontend_get_current_scene(); + const char* name = obs_source_get_name(current_scene); - obs_data_array_t *scene_items = Utils::GetSceneItems(current_scene); + obs_data_array_t* scene_items = Utils::GetSceneItems(current_scene); - obs_data_t *data = obs_data_create(); + obs_data_t* data = obs_data_create(); obs_data_set_string(data, "name", name); obs_data_set_array(data, "sources", scene_items); @@ -279,12 +277,12 @@ 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(); + obs_source_t* current_scene = obs_frontend_get_current_scene(); + obs_data_array_t* scenes = Utils::GetScenes(); - obs_data_t *data = obs_data_create(); + obs_data_t* data = obs_data_create(); obs_data_set_string(data, "current-scene", obs_source_get_name(current_scene)); obs_data_set_array(data, "scenes", scenes); @@ -296,7 +294,7 @@ 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")) @@ -305,23 +303,23 @@ void WSRequestHandler::HandleSetSceneItemRender(WSRequestHandler *req) return; } - const char *itemName = obs_data_get_string(req->data, "source"); + const char* itemName = obs_data_get_string(req->data, "source"); bool isVisible = obs_data_get_bool(req->data, "render"); - + 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); + const char* sceneName = obs_data_get_string(req->data, "scene-name"); + obs_source_t* scene = Utils::GetSceneFromNameOrCurrent(sceneName); if (scene == NULL) { req->SendErrorResponse("requested scene doesn't exist"); return; } - obs_sceneitem_t *sceneItem = Utils::GetSceneItemFromName(scene, itemName); + obs_sceneitem_t* sceneItem = Utils::GetSceneItemFromName(scene, itemName); if (sceneItem != NULL) { obs_sceneitem_set_visible(sceneItem, isVisible); @@ -336,9 +334,9 @@ void WSRequestHandler::HandleSetSceneItemRender(WSRequestHandler *req) obs_source_release(scene); } -void WSRequestHandler::HandleGetStreamingStatus(WSRequestHandler *req) +void WSRequestHandler::HandleGetStreamingStatus(WSRequestHandler* req) { - obs_data_t *data = obs_data_create(); + 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); @@ -362,7 +360,7 @@ void WSRequestHandler::HandleGetStreamingStatus(WSRequestHandler *req) obs_data_release(data); } -void WSRequestHandler::HandleStartStopStreaming(WSRequestHandler *req) +void WSRequestHandler::HandleStartStopStreaming(WSRequestHandler* req) { if (obs_frontend_streaming_active()) obs_frontend_streaming_stop(); @@ -372,7 +370,7 @@ void WSRequestHandler::HandleStartStopStreaming(WSRequestHandler *req) req->SendOKResponse(); } -void WSRequestHandler::HandleStartStopRecording(WSRequestHandler *req) +void WSRequestHandler::HandleStartStopRecording(WSRequestHandler* req) { if (obs_frontend_recording_active()) obs_frontend_recording_stop(); @@ -382,7 +380,7 @@ void WSRequestHandler::HandleStartStopRecording(WSRequestHandler *req) req->SendOKResponse(); } -void WSRequestHandler::HandleStartStreaming(WSRequestHandler *req) +void WSRequestHandler::HandleStartStreaming(WSRequestHandler* req) { if (obs_frontend_streaming_active() == false) { @@ -395,7 +393,7 @@ void WSRequestHandler::HandleStartStreaming(WSRequestHandler *req) } } -void WSRequestHandler::HandleStopStreaming(WSRequestHandler *req) +void WSRequestHandler::HandleStopStreaming(WSRequestHandler* req) { if (obs_frontend_streaming_active() == true) { @@ -408,7 +406,7 @@ void WSRequestHandler::HandleStopStreaming(WSRequestHandler *req) } } -void WSRequestHandler::HandleStartRecording(WSRequestHandler *req) +void WSRequestHandler::HandleStartRecording(WSRequestHandler* req) { if (obs_frontend_recording_active() == false) { @@ -421,7 +419,7 @@ void WSRequestHandler::HandleStartRecording(WSRequestHandler *req) } } -void WSRequestHandler::HandleStopRecording(WSRequestHandler *req) +void WSRequestHandler::HandleStopRecording(WSRequestHandler* req) { if (obs_frontend_recording_active() == true) { @@ -434,9 +432,9 @@ void WSRequestHandler::HandleStopRecording(WSRequestHandler *req) } } -void WSRequestHandler::HandleGetTransitionList(WSRequestHandler *req) +void WSRequestHandler::HandleGetTransitionList(WSRequestHandler* req) { - obs_source_t *current_transition = obs_frontend_get_current_transition(); + obs_source_t* current_transition = obs_frontend_get_current_transition(); obs_frontend_source_list transitionList = {}; obs_frontend_get_transitions(&transitionList); @@ -445,7 +443,7 @@ void WSRequestHandler::HandleGetTransitionList(WSRequestHandler *req) { obs_source_t* transition = transitionList.sources.array[i]; - obs_data_t *obj = obs_data_create(); + obs_data_t* obj = obs_data_create(); obs_data_set_string(obj, "name", obs_source_get_name(transition)); obs_data_array_push_back(transitions, obj); @@ -453,7 +451,7 @@ void WSRequestHandler::HandleGetTransitionList(WSRequestHandler *req) } obs_frontend_source_list_free(&transitionList); - obs_data_t *response = obs_data_create(); + obs_data_t* response = obs_data_create(); obs_data_set_string(response, "current-transition", obs_source_get_name(current_transition)); obs_data_set_array(response, "transitions", transitions); @@ -465,18 +463,16 @@ 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_source_t* current_transition = obs_frontend_get_current_transition(); - obs_data_t *response = obs_data_create(); + obs_data_t* response = obs_data_create(); obs_data_set_string(response, "name", obs_source_get_name(current_transition)); - + if (!obs_transition_fixed(current_transition)) - { obs_data_set_int(response, "duration", Utils::GetTransitionDuration()); - } req->SendOKResponse(response); @@ -484,7 +480,7 @@ void WSRequestHandler::HandleGetCurrentTransition(WSRequestHandler *req) obs_source_release(current_transition); } -void WSRequestHandler::HandleSetCurrentTransition(WSRequestHandler *req) +void WSRequestHandler::HandleSetCurrentTransition(WSRequestHandler* req) { if (!req->hasField("transition-name")) { @@ -492,7 +488,7 @@ void WSRequestHandler::HandleSetCurrentTransition(WSRequestHandler *req) return; } - const char *name = obs_data_get_string(req->data, "transition-name"); + const char* name = obs_data_get_string(req->data, "transition-name"); bool success = Utils::SetTransitionByName(name); @@ -502,7 +498,7 @@ void WSRequestHandler::HandleSetCurrentTransition(WSRequestHandler *req) req->SendErrorResponse("requested transition does not exist"); } -void WSRequestHandler::HandleSetTransitionDuration(WSRequestHandler *req) +void WSRequestHandler::HandleSetTransitionDuration(WSRequestHandler* req) { if (!req->hasField("duration")) { @@ -515,7 +511,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", @@ -525,7 +521,7 @@ 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")) @@ -534,7 +530,7 @@ void WSRequestHandler::HandleSetVolume(WSRequestHandler *req) return; } - const char *source_name = obs_data_get_string(req->data, "source"); + const char* source_name = obs_data_get_string(req->data, "source"); float source_volume = obs_data_get_double(req->data, "volume"); if (source_name == NULL || strlen(source_name) < 1 || @@ -557,7 +553,7 @@ void WSRequestHandler::HandleSetVolume(WSRequestHandler *req) obs_source_release(source); } -void WSRequestHandler::HandleGetVolume(WSRequestHandler *req) +void WSRequestHandler::HandleGetVolume(WSRequestHandler* req) { if (!req->hasField("source")) { @@ -565,7 +561,7 @@ void WSRequestHandler::HandleGetVolume(WSRequestHandler *req) return; } - const char *source_name = obs_data_get_string(req->data, "source"); + const char* source_name = obs_data_get_string(req->data, "source"); if (str_valid(source_name)) { @@ -587,7 +583,7 @@ void WSRequestHandler::HandleGetVolume(WSRequestHandler *req) } } -void WSRequestHandler::HandleToggleMute(WSRequestHandler *req) +void WSRequestHandler::HandleToggleMute(WSRequestHandler* req) { if (!req->hasField("source")) { @@ -595,7 +591,7 @@ void WSRequestHandler::HandleToggleMute(WSRequestHandler *req) return; } - const char *source_name = obs_data_get_string(req->data, "source"); + const char* source_name = obs_data_get_string(req->data, "source"); if (!str_valid(source_name)) { req->SendErrorResponse("invalid request parameters"); @@ -615,7 +611,7 @@ 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")) @@ -624,7 +620,7 @@ void WSRequestHandler::HandleSetMute(WSRequestHandler *req) return; } - const char *source_name = obs_data_get_string(req->data, "source"); + 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)) @@ -646,7 +642,7 @@ void WSRequestHandler::HandleSetMute(WSRequestHandler *req) obs_source_release(source); } -void WSRequestHandler::HandleGetMute(WSRequestHandler *req) +void WSRequestHandler::HandleGetMute(WSRequestHandler* req) { if (!req->hasField("source")) { @@ -654,7 +650,7 @@ void WSRequestHandler::HandleGetMute(WSRequestHandler *req) return; } - const char *source_name = obs_data_get_string(req->data, "source"); + const char* source_name = obs_data_get_string(req->data, "source"); if (!str_valid(source_name)) { @@ -679,7 +675,7 @@ 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")) @@ -688,21 +684,21 @@ void WSRequestHandler::HandleSetSceneItemPosition(WSRequestHandler *req) return; } - const char *item_name = obs_data_get_string(req->data, "item"); + const char* item_name = obs_data_get_string(req->data, "item"); if (!str_valid(item_name)) { req->SendErrorResponse("invalid request parameters"); return; } - const char *scene_name = obs_data_get_string(req->data, "scene-name"); - obs_source_t *scene = Utils::GetSceneFromNameOrCurrent(scene_name); + const char* scene_name = obs_data_get_string(req->data, "scene-name"); + obs_source_t* scene = Utils::GetSceneFromNameOrCurrent(scene_name); if (!scene) { req->SendErrorResponse("requested scene could not be found"); return; } - obs_sceneitem_t *scene_item = Utils::GetSceneItemFromName(scene, item_name); + obs_sceneitem_t* scene_item = Utils::GetSceneItemFromName(scene, item_name); if (scene_item) { @@ -723,7 +719,7 @@ void WSRequestHandler::HandleSetSceneItemPosition(WSRequestHandler *req) obs_source_release(scene); } -void WSRequestHandler::HandleSetSceneItemTransform(WSRequestHandler *req) +void WSRequestHandler::HandleSetSceneItemTransform(WSRequestHandler* req) { if (!req->hasField("item") || !req->hasField("x-scale") || @@ -734,14 +730,14 @@ void WSRequestHandler::HandleSetSceneItemTransform(WSRequestHandler *req) return; } - const char *item_name = obs_data_get_string(req->data, "item"); + const char* item_name = obs_data_get_string(req->data, "item"); if (!str_valid(item_name)) { req->SendErrorResponse("invalid request parameters"); return; } - const char *scene_name = obs_data_get_string(req->data, "scene-name"); + const char* scene_name = obs_data_get_string(req->data, "scene-name"); obs_source_t* scene = Utils::GetSceneFromNameOrCurrent(scene_name); if (!scene) { req->SendErrorResponse("requested scene doesn't exist"); @@ -754,13 +750,13 @@ void WSRequestHandler::HandleSetSceneItemTransform(WSRequestHandler *req) float rotation = obs_data_get_double(req->data, "rotation"); - obs_sceneitem_t *scene_item = Utils::GetSceneItemFromName(scene, item_name); + obs_sceneitem_t* scene_item = Utils::GetSceneItemFromName(scene, item_name); if (scene_item) { obs_sceneitem_set_scale(scene_item, &scale); obs_sceneitem_set_rot(scene_item, rotation); - + obs_sceneitem_release(scene_item); req->SendOKResponse(); } @@ -772,7 +768,7 @@ void WSRequestHandler::HandleSetSceneItemTransform(WSRequestHandler *req) obs_source_release(scene); } -void WSRequestHandler::HandleSetSceneItemCrop(WSRequestHandler *req) +void WSRequestHandler::HandleSetSceneItemCrop(WSRequestHandler* req) { if (!req->hasField("item")) { @@ -780,21 +776,21 @@ void WSRequestHandler::HandleSetSceneItemCrop(WSRequestHandler *req) return; } - const char *item_name = obs_data_get_string(req->data, "item"); + const char* item_name = obs_data_get_string(req->data, "item"); if (!str_valid(item_name)) { req->SendErrorResponse("invalid request parameters"); return; } - const char *scene_name = obs_data_get_string(req->data, "scene-name"); + const char* scene_name = obs_data_get_string(req->data, "scene-name"); obs_source_t* scene = Utils::GetSceneFromNameOrCurrent(scene_name); if (!scene) { req->SendErrorResponse("requested scene doesn't exist"); return; } - obs_sceneitem_t *scene_item = Utils::GetSceneItemFromName(scene, item_name); + obs_sceneitem_t* scene_item = Utils::GetSceneItemFromName(scene, item_name); if (scene_item) { @@ -817,7 +813,7 @@ void WSRequestHandler::HandleSetSceneItemCrop(WSRequestHandler *req) obs_source_release(scene); } -void WSRequestHandler::HandleSetCurrentSceneCollection(WSRequestHandler *req) +void WSRequestHandler::HandleSetCurrentSceneCollection(WSRequestHandler* req) { if (!req->hasField("sc-name")) { @@ -839,9 +835,9 @@ void WSRequestHandler::HandleSetCurrentSceneCollection(WSRequestHandler *req) } } -void WSRequestHandler::HandleGetCurrentSceneCollection(WSRequestHandler *req) +void WSRequestHandler::HandleGetCurrentSceneCollection(WSRequestHandler* req) { - obs_data_t *response = obs_data_create(); + obs_data_t* response = obs_data_create(); obs_data_set_string(response, "sc-name", obs_frontend_get_current_scene_collection()); @@ -850,11 +846,11 @@ void WSRequestHandler::HandleGetCurrentSceneCollection(WSRequestHandler *req) obs_data_release(response); } -void WSRequestHandler::HandleListSceneCollections(WSRequestHandler *req) +void WSRequestHandler::HandleListSceneCollections(WSRequestHandler* req) { - obs_data_array_t *scene_collections = Utils::GetSceneCollections(); + obs_data_array_t* scene_collections = Utils::GetSceneCollections(); - obs_data_t *response = obs_data_create(); + obs_data_t* response = obs_data_create(); obs_data_set_array(response, "scene-collections", scene_collections); req->SendOKResponse(response); @@ -863,7 +859,7 @@ void WSRequestHandler::HandleListSceneCollections(WSRequestHandler *req) obs_data_array_release(scene_collections); } -void WSRequestHandler::HandleSetCurrentProfile(WSRequestHandler *req) +void WSRequestHandler::HandleSetCurrentProfile(WSRequestHandler* req) { if (!req->hasField("profile-name")) { @@ -885,9 +881,9 @@ void WSRequestHandler::HandleSetCurrentProfile(WSRequestHandler *req) } } -void WSRequestHandler::HandleGetCurrentProfile(WSRequestHandler *req) +void WSRequestHandler::HandleGetCurrentProfile(WSRequestHandler* req) { - obs_data_t *response = obs_data_create(); + obs_data_t* response = obs_data_create(); obs_data_set_string(response, "profile-name", obs_frontend_get_current_profile()); @@ -896,11 +892,11 @@ void WSRequestHandler::HandleGetCurrentProfile(WSRequestHandler *req) obs_data_release(response); } -void WSRequestHandler::HandleListProfiles(WSRequestHandler *req) +void WSRequestHandler::HandleListProfiles(WSRequestHandler* req) { - obs_data_array_t *profiles = Utils::GetProfiles(); + obs_data_array_t* profiles = Utils::GetProfiles(); - obs_data_t *response = obs_data_create(); + obs_data_t* response = obs_data_create(); obs_data_set_array(response, "profiles", profiles); req->SendOKResponse(response); @@ -909,7 +905,7 @@ void WSRequestHandler::HandleListProfiles(WSRequestHandler *req) obs_data_array_release(profiles); } -void WSRequestHandler::HandleGetStudioModeStatus(WSRequestHandler *req) +void WSRequestHandler::HandleGetStudioModeStatus(WSRequestHandler* req) { bool previewActive = Utils::IsPreviewModeActive(); @@ -921,7 +917,7 @@ void WSRequestHandler::HandleGetStudioModeStatus(WSRequestHandler *req) obs_data_release(response); } -void WSRequestHandler::HandleGetPreviewScene(WSRequestHandler *req) +void WSRequestHandler::HandleGetPreviewScene(WSRequestHandler* req) { if (!Utils::IsPreviewModeActive()) { @@ -931,11 +927,11 @@ void WSRequestHandler::HandleGetPreviewScene(WSRequestHandler *req) obs_scene_t* preview_scene = Utils::GetPreviewScene(); obs_source_t* source = obs_scene_get_source(preview_scene); - const char *name = obs_source_get_name(source); + const char* name = obs_source_get_name(source); - obs_data_array_t *scene_items = Utils::GetSceneItems(source); + obs_data_array_t* scene_items = Utils::GetSceneItems(source); - obs_data_t *data = obs_data_create(); + obs_data_t* data = obs_data_create(); obs_data_set_string(data, "name", name); obs_data_set_array(data, "sources", scene_items); @@ -947,7 +943,7 @@ void WSRequestHandler::HandleGetPreviewScene(WSRequestHandler *req) obs_scene_release(preview_scene); } -void WSRequestHandler::HandleSetPreviewScene(WSRequestHandler *req) +void WSRequestHandler::HandleSetPreviewScene(WSRequestHandler* req) { if (!Utils::IsPreviewModeActive()) { @@ -970,7 +966,7 @@ void WSRequestHandler::HandleSetPreviewScene(WSRequestHandler *req) req->SendErrorResponse("specified scene doesn't exist"); } -void WSRequestHandler::HandleTransitionToProgram(WSRequestHandler *req) +void WSRequestHandler::HandleTransitionToProgram(WSRequestHandler* req) { if (!Utils::IsPreviewModeActive()) { @@ -987,7 +983,7 @@ void WSRequestHandler::HandleTransitionToProgram(WSRequestHandler *req) { const char* transitionName = obs_data_get_string(transitionInfo, "name"); - + if (!str_valid(transitionName)) { req->SendErrorResponse("invalid request parameters"); @@ -1010,7 +1006,7 @@ void WSRequestHandler::HandleTransitionToProgram(WSRequestHandler *req) Utils::SetTransitionDuration(transitionDuration); } - + obs_data_release(transitionInfo); } @@ -1018,25 +1014,25 @@ 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(); diff --git a/WSRequestHandler.h b/WSRequestHandler.h index d537bc1a..c7230c16 100644 --- a/WSRequestHandler.h +++ b/WSRequestHandler.h @@ -29,73 +29,73 @@ class WSRequestHandler : public QObject Q_OBJECT public: - explicit WSRequestHandler(QWebSocket *client); + explicit WSRequestHandler(QWebSocket* client); ~WSRequestHandler(); void processIncomingMessage(QString textMessage); bool hasField(const char* name); private: - QWebSocket *_client; - const char *_messageId; - const char *_requestType; - obs_data_t *data; + QWebSocket* _client; + const char* _messageId; + const char* _requestType; + obs_data_t* data; QMap messageMap; QSet authNotRequired; - void SendOKResponse(obs_data_t *additionalFields = NULL); - void SendErrorResponse(const char *errorMessage); - - static void HandleGetVersion(WSRequestHandler *req); - static void HandleGetAuthRequired(WSRequestHandler *req); - static void HandleAuthenticate(WSRequestHandler *req); + void SendOKResponse(obs_data_t* additionalFields = NULL); + void SendErrorResponse(const char* errorMessage); - static void HandleSetCurrentScene(WSRequestHandler *req); - static void HandleGetCurrentScene(WSRequestHandler *req); - static void HandleGetSceneList(WSRequestHandler *req); - - static void HandleSetSceneItemRender(WSRequestHandler *req); - static void HandleSetSceneItemPosition(WSRequestHandler *req); - static void HandleSetSceneItemTransform(WSRequestHandler *req); - static void HandleSetSceneItemCrop(WSRequestHandler *req); + static void HandleGetVersion(WSRequestHandler* req); + static void HandleGetAuthRequired(WSRequestHandler* req); + static void HandleAuthenticate(WSRequestHandler* req); - static void HandleGetStreamingStatus(WSRequestHandler *req); - static void HandleStartStopStreaming(WSRequestHandler *req); - static void HandleStartStopRecording(WSRequestHandler *req); - static void HandleStartStreaming(WSRequestHandler *req); - static void HandleStopStreaming(WSRequestHandler *req); - static void HandleStartRecording(WSRequestHandler *req); - static void HandleStopRecording(WSRequestHandler *req); + static void HandleSetCurrentScene(WSRequestHandler* req); + static void HandleGetCurrentScene(WSRequestHandler* req); + static void HandleGetSceneList(WSRequestHandler* req); - static void HandleGetTransitionList(WSRequestHandler *req); - static void HandleGetCurrentTransition(WSRequestHandler *req); - static void HandleSetCurrentTransition(WSRequestHandler *req); + static void HandleSetSceneItemRender(WSRequestHandler* req); + static void HandleSetSceneItemPosition(WSRequestHandler* req); + static void HandleSetSceneItemTransform(WSRequestHandler* req); + static void HandleSetSceneItemCrop(WSRequestHandler* req); - static void HandleSetVolume(WSRequestHandler *req); - static void HandleGetVolume(WSRequestHandler *req); - static void HandleToggleMute(WSRequestHandler *req); - static void HandleSetMute(WSRequestHandler *req); - static void HandleGetMute(WSRequestHandler *req); - static void HandleGetSpecialSources(WSRequestHandler *req); + static void HandleGetStreamingStatus(WSRequestHandler* req); + static void HandleStartStopStreaming(WSRequestHandler* req); + static void HandleStartStopRecording(WSRequestHandler* req); + static void HandleStartStreaming(WSRequestHandler* req); + static void HandleStopStreaming(WSRequestHandler* req); + static void HandleStartRecording(WSRequestHandler* req); + static void HandleStopRecording(WSRequestHandler* req); - static void HandleSetCurrentSceneCollection(WSRequestHandler *req); - static void HandleGetCurrentSceneCollection(WSRequestHandler *req); - static void HandleListSceneCollections(WSRequestHandler *req); + static void HandleGetTransitionList(WSRequestHandler* req); + static void HandleGetCurrentTransition(WSRequestHandler* req); + static void HandleSetCurrentTransition(WSRequestHandler* req); - static void HandleSetCurrentProfile(WSRequestHandler *req); - static void HandleGetCurrentProfile(WSRequestHandler *req); - static void HandleListProfiles(WSRequestHandler *req); + static void HandleSetVolume(WSRequestHandler* req); + static void HandleGetVolume(WSRequestHandler* req); + static void HandleToggleMute(WSRequestHandler* req); + static void HandleSetMute(WSRequestHandler* req); + static void HandleGetMute(WSRequestHandler* req); + static void HandleGetSpecialSources(WSRequestHandler* req); - static void HandleSetTransitionDuration(WSRequestHandler *req); - static void HandleGetTransitionDuration(WSRequestHandler *req); + static void HandleSetCurrentSceneCollection(WSRequestHandler* req); + static void HandleGetCurrentSceneCollection(WSRequestHandler* req); + static void HandleListSceneCollections(WSRequestHandler* req); - static void HandleGetStudioModeStatus(WSRequestHandler *req); - static void HandleGetPreviewScene(WSRequestHandler *req); - static void HandleSetPreviewScene(WSRequestHandler *req); - static void HandleTransitionToProgram(WSRequestHandler *req); - static void HandleEnableStudioMode(WSRequestHandler *req); - static void HandleDisableStudioMode(WSRequestHandler *req); - static void HandleToggleStudioMode(WSRequestHandler *req); + static void HandleSetCurrentProfile(WSRequestHandler* req); + static void HandleGetCurrentProfile(WSRequestHandler* req); + static void HandleListProfiles(WSRequestHandler* req); + + static void HandleSetTransitionDuration(WSRequestHandler* req); + static void HandleGetTransitionDuration(WSRequestHandler* req); + + static void HandleGetStudioModeStatus(WSRequestHandler* req); + static void HandleGetPreviewScene(WSRequestHandler* req); + static void HandleSetPreviewScene(WSRequestHandler* req); + static void HandleTransitionToProgram(WSRequestHandler* req); + static void HandleEnableStudioMode(WSRequestHandler* req); + static void HandleDisableStudioMode(WSRequestHandler* req); + static void HandleToggleStudioMode(WSRequestHandler* req); }; #endif // WSPROTOCOL_H diff --git a/WSServer.cpp b/WSServer.cpp index c74fd2be..91106541 100644 --- a/WSServer.cpp +++ b/WSServer.cpp @@ -30,7 +30,7 @@ QT_USE_NAMESPACE WSServer* WSServer::Instance = nullptr; -WSServer::WSServer(QObject *parent) : +WSServer::WSServer(QObject* parent) : QObject(parent), _wsServer(Q_NULLPTR), _clients(), @@ -49,7 +49,6 @@ WSServer::WSServer(QObject *parent) : WSServer::~WSServer() { Stop(); - delete _serverThread; } @@ -64,7 +63,7 @@ void WSServer::Start(quint16 port) bool serverStarted = _wsServer->listen(QHostAddress::Any, port); if (serverStarted) { - connect(_wsServer, &QWebSocketServer::newConnection, + connect(_wsServer, &QWebSocketServer::newConnection, this, &WSServer::onNewConnection); } } @@ -72,7 +71,7 @@ void WSServer::Start(quint16 port) void WSServer::Stop() { _clMutex.lock(); - Q_FOREACH(QWebSocket *pClient, _clients) + Q_FOREACH(QWebSocket* pClient, _clients) { pClient->close(); } @@ -85,7 +84,7 @@ void WSServer::broadcast(QString message) { _clMutex.lock(); - Q_FOREACH(QWebSocket *pClient, _clients) + Q_FOREACH(QWebSocket* pClient, _clients) { if (Config::Current()->AuthRequired && (pClient->property(PROP_AUTHENTICATED).toBool() == false)) @@ -102,13 +101,13 @@ void WSServer::broadcast(QString message) void WSServer::onNewConnection() { - QWebSocket *pSocket = _wsServer->nextPendingConnection(); + QWebSocket* pSocket = _wsServer->nextPendingConnection(); if (pSocket) { - connect(pSocket, &QWebSocket::textMessageReceived, + connect(pSocket, &QWebSocket::textMessageReceived, this, &WSServer::textMessageReceived); - connect(pSocket, &QWebSocket::disconnected, + connect(pSocket, &QWebSocket::disconnected, this, &WSServer::socketDisconnected); pSocket->setProperty(PROP_AUTHENTICATED, false); @@ -119,22 +118,22 @@ void WSServer::onNewConnection() QHostAddress clientAddr = pSocket->peerAddress(); QString clientIp = Utils::FormatIPAddress(clientAddr); - blog(LOG_INFO, "new client connection from %s:%d", + blog(LOG_INFO, "new client connection from %s:%d", clientIp.toUtf8().constData(), pSocket->peerPort()); - QString msg = QString(obs_module_text("OBSWebsocket.ConnectNotify.ClientIP")) - + QString(" ") + QString msg = QString(obs_module_text("OBSWebsocket.ConnectNotify.ClientIP")) + + QString(" ") + clientAddr.toString(); - + Utils::SysTrayNotify(msg, QSystemTrayIcon::Information, QString(obs_module_text("OBSWebsocket.ConnectNotify.Connected"))); } } -void WSServer::textMessageReceived(QString message) +void WSServer::textMessageReceived(QString message) { - QWebSocket *pSocket = qobject_cast(sender()); + QWebSocket* pSocket = qobject_cast(sender()); if (pSocket) { @@ -145,7 +144,7 @@ void WSServer::textMessageReceived(QString message) void WSServer::socketDisconnected() { - QWebSocket *pSocket = qobject_cast(sender()); + QWebSocket* pSocket = qobject_cast(sender()); if (pSocket) { @@ -154,13 +153,13 @@ void WSServer::socketDisconnected() _clMutex.lock(); _clients.removeAll(pSocket); _clMutex.unlock(); - + pSocket->deleteLater(); QHostAddress clientAddr = pSocket->peerAddress(); QString clientIp = Utils::FormatIPAddress(clientAddr); - blog(LOG_INFO, "client %s:%d disconnected", + blog(LOG_INFO, "client %s:%d disconnected", clientIp.toUtf8().constData(), pSocket->peerPort()); QString msg = QString(obs_module_text("OBSWebsocket.ConnectNotify.ClientIP")) diff --git a/WSServer.h b/WSServer.h index 3d48f2a9..f2f28f84 100644 --- a/WSServer.h +++ b/WSServer.h @@ -33,7 +33,7 @@ class WSServer : public QObject Q_OBJECT public: - explicit WSServer(QObject *parent = Q_NULLPTR); + explicit WSServer(QObject* parent = Q_NULLPTR); virtual ~WSServer(); void Start(quint16 port); void Stop(); @@ -46,10 +46,10 @@ class WSServer : public QObject void socketDisconnected(); private: - QWebSocketServer *_wsServer; - QList _clients; + QWebSocketServer* _wsServer; + QList _clients; QMutex _clMutex; - QThread *_serverThread; + QThread* _serverThread; }; #endif // WSSERVER_H \ No newline at end of file diff --git a/forms/settings-dialog.cpp b/forms/settings-dialog.cpp index 18b25a0a..3729159a 100644 --- a/forms/settings-dialog.cpp +++ b/forms/settings-dialog.cpp @@ -26,22 +26,22 @@ with this program. If not, see #define CHANGE_ME "changeme" -SettingsDialog::SettingsDialog(QWidget *parent) : +SettingsDialog::SettingsDialog(QWidget* parent) : QDialog(parent, Qt::Dialog), ui(new Ui::SettingsDialog) { ui->setupUi(this); - - connect(ui->authRequired, &QCheckBox::stateChanged, + + connect(ui->authRequired, &QCheckBox::stateChanged, this, &SettingsDialog::AuthCheckboxChanged); - connect(ui->buttonBox, &QDialogButtonBox::accepted, + connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &SettingsDialog::FormAccepted); AuthCheckboxChanged(); } -void SettingsDialog::showEvent(QShowEvent *event) +void SettingsDialog::showEvent(QShowEvent* event) { Config* conf = Config::Current(); @@ -84,7 +84,7 @@ void SettingsDialog::FormAccepted() conf->SetPassword(new_password); } - + if (strcmp(Config::Current()->Secret, "") != 0) conf->AuthRequired = true; else diff --git a/forms/settings-dialog.h b/forms/settings-dialog.h index fbf87fe2..b4401eb2 100644 --- a/forms/settings-dialog.h +++ b/forms/settings-dialog.h @@ -30,9 +30,9 @@ class SettingsDialog : public QDialog Q_OBJECT public: - explicit SettingsDialog(QWidget *parent = 0); + explicit SettingsDialog(QWidget* parent = 0); ~SettingsDialog(); - void showEvent(QShowEvent *event); + void showEvent(QShowEvent* event); void ToggleShowHide(); private Q_SLOTS: @@ -40,7 +40,7 @@ private Q_SLOTS: void FormAccepted(); private: - Ui::SettingsDialog *ui; + Ui::SettingsDialog* ui; }; #endif // SETTINGSDIALOG_H