mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-04-24 23:08:07 -05:00
Rework plugin to allow split into module and library part
This is mostly intended to allow easier bundling for MacOS but might prove to be useful for other areas as well.
This commit is contained in:
parent
aef29d7d82
commit
5ae9e18044
|
|
@ -260,6 +260,7 @@ set_target_properties(
|
|||
AUTORCC ON
|
||||
AUTOUIC_SEARCH_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/forms")
|
||||
|
||||
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_17)
|
||||
target_compile_features(${LIB_NAME} PUBLIC cxx_std_17)
|
||||
|
||||
add_definitions(-DASIO_STANDALONE)
|
||||
|
|
|
|||
|
|
@ -4,13 +4,15 @@
|
|||
OBS_DECLARE_MODULE()
|
||||
OBS_MODULE_USE_DEFAULT_LOCALE("advanced-scene-switcher", "en-US")
|
||||
|
||||
void InitSceneSwitcher();
|
||||
typedef const char *(*translateFunc)(const char *);
|
||||
|
||||
void InitSceneSwitcher(obs_module_t *, translateFunc);
|
||||
void FreeSceneSwitcher();
|
||||
|
||||
bool obs_module_load(void)
|
||||
{
|
||||
obs_frontend_push_ui_translation(obs_module_get_string);
|
||||
InitSceneSwitcher();
|
||||
InitSceneSwitcher(obs_current_module(), obs_module_text);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,16 @@
|
|||
#include "headers/utility.hpp"
|
||||
#include "headers/version.h"
|
||||
|
||||
const char *obs_module_text(const char *text)
|
||||
{
|
||||
return switcher->translate(text);
|
||||
}
|
||||
|
||||
obs_module_t *obs_current_module()
|
||||
{
|
||||
return switcher->modulePtr;
|
||||
}
|
||||
|
||||
SwitcherData *switcher = nullptr;
|
||||
SwitcherData *GetSwitcher()
|
||||
{
|
||||
|
|
@ -673,12 +683,14 @@ void LoadPlugins()
|
|||
}
|
||||
}
|
||||
|
||||
extern "C" void InitSceneSwitcher()
|
||||
extern "C" void InitSceneSwitcher(obs_module_t *m, translateFunc t)
|
||||
{
|
||||
blog(LOG_INFO, "version: %s", g_GIT_TAG);
|
||||
blog(LOG_INFO, "version: %s", g_GIT_SHA1);
|
||||
|
||||
switcher = new SwitcherData;
|
||||
switcher->modulePtr = m;
|
||||
switcher->translate = t;
|
||||
|
||||
if (loadCurl() && f_curl_init) {
|
||||
switcher->curl = f_curl_init();
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ constexpr auto default_priority_10 = exe_func;
|
|||
|
||||
typedef enum { NO_SWITCH = 0, SWITCH = 1, RANDOM_SWITCH = 2 } NoMatch;
|
||||
typedef enum { PERSIST = 0, START = 1, STOP = 2 } StartupBehavior;
|
||||
typedef const char *(*translateFunc)(const char *);
|
||||
|
||||
enum class AutoStartEvent {
|
||||
NEVER,
|
||||
|
|
@ -76,6 +77,8 @@ class SwitcherThread;
|
|||
********************************************************************************/
|
||||
struct SwitcherData {
|
||||
SwitcherThread *th = nullptr;
|
||||
obs_module_t *modulePtr = nullptr;
|
||||
translateFunc translate = nullptr;
|
||||
|
||||
bool settingsWindowOpened = false;
|
||||
int lastOpenedTab = -1;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user