diff --git a/JavascriptApi.h b/JavascriptApi.h index ce89fd58..37d1ce96 100644 --- a/JavascriptApi.h +++ b/JavascriptApi.h @@ -81,6 +81,7 @@ class JavascriptApi JS_TRANSITION_SET_SETTINGS, JS_ENUM_SCENES, JS_RESTART_OBS, + JS_SL_VERSION_INFO, }; public: @@ -412,6 +413,14 @@ class JavascriptApi // .(@function(arg1)) {"web_clearAuthToken", JS_CLEAR_AUTH_TOKEN}, + /*** + * Streamlabs + */ + + // .(@function(arg1)) + // Example arg1 = { "branch": '29.1.0', "git_sha": 'abcdefg...' } + {"sl_getVersionInfo", JS_SL_VERSION_INFO}, + }; return names; diff --git a/PluginJsHandler.cpp b/PluginJsHandler.cpp index 0b3d9210..2a6d7927 100644 --- a/PluginJsHandler.cpp +++ b/PluginJsHandler.cpp @@ -151,6 +151,7 @@ void PluginJsHandler::executeApiRequest(const std::string &funcName, const std:: case JavascriptApi::JS_DOCK_SETTITLE: JS_DOCK_SETTITLE(jsonParams, jsonReturnStr); break; case JavascriptApi::JS_SET_STREAMSETTINGS: JS_SET_STREAMSETTINGS(jsonParams, jsonReturnStr); break; case JavascriptApi::JS_GET_STREAMSETTINGS: JS_GET_STREAMSETTINGS(jsonParams, jsonReturnStr); break; + case JavascriptApi::JS_SL_VERSION_INFO: JS_SL_VERSION_INFO(jsonParams, jsonReturnStr); break; case JavascriptApi::JS_START_WEBSERVER: JS_START_WEBSERVER(jsonParams, jsonReturnStr); break; case JavascriptApi::JS_STOP_WEBSERVER: JS_STOP_WEBSERVER(jsonParams, jsonReturnStr); break; case JavascriptApi::JS_LAUNCH_OS_BROWSER_URL: JS_LAUNCH_OS_BROWSER_URL(jsonParams, jsonReturnStr); break; @@ -277,6 +278,15 @@ void PluginJsHandler::JS_CLEAR_AUTH_TOKEN(const json11::Json ¶ms, std::strin out_jsonReturn = Json(Json::object{{"status", "success"}}).dump(); } +void PluginJsHandler::JS_SL_VERSION_INFO(const json11::Json ¶ms, std::string &out_jsonReturn) +{ +#ifdef GITHUB_REVISION + out_jsonReturn = Json(Json::object{{"branch", SL_OBS_VERSION}, {"git_sha", GITHUB_REVISION}}).dump(); +#else + out_jsonReturn = Json(Json::object{{"branch", "debug"}, {"git_sha", "debug"}}).dump(); +#endif +} + void PluginJsHandler::JS_GET_STREAMSETTINGS(const json11::Json ¶ms, std::string &out_jsonReturn) { QMainWindow *mainWindow = (QMainWindow *)obs_frontend_get_main_window(); diff --git a/PluginJsHandler.h b/PluginJsHandler.h index 0780a683..2b98ac28 100644 --- a/PluginJsHandler.h +++ b/PluginJsHandler.h @@ -54,6 +54,7 @@ class PluginJsHandler void JS_DOCK_SETTITLE(const json11::Json ¶ms, std::string &out_jsonReturn); void JS_SET_STREAMSETTINGS(const json11::Json ¶ms, std::string &out_jsonReturn); void JS_GET_STREAMSETTINGS(const json11::Json ¶ms, std::string &out_jsonReturn); + void JS_SL_VERSION_INFO(const json11::Json ¶ms, std::string &out_jsonReturn); void JS_START_WEBSERVER(const json11::Json ¶ms, std::string &out_jsonReturn); void JS_STOP_WEBSERVER(const json11::Json ¶ms, std::string &out_jsonReturn); void JS_LAUNCH_OS_BROWSER_URL(const json11::Json ¶ms, std::string &out_jsonReturn); diff --git a/sl-browser-plugin.cpp b/sl-browser-plugin.cpp index 0655d585..bff16c20 100644 --- a/sl-browser-plugin.cpp +++ b/sl-browser-plugin.cpp @@ -32,6 +32,12 @@ MODULE_EXPORT const char *obs_module_description(void) bool obs_module_load(void) { +#ifdef GITHUB_REVISION + blog(LOG_INFO, "%s module git sha is %s for OBS %s", GITHUB_REVISION, SL_OBS_VERSION); +#else + blog(LOG_INFO, "%s module is a debug build, version information unknown."); +#endif + PluginJsHandler::instance().loadFonts(); PluginJsHandler::instance().loadSlabsBrowserDocks(); return true;