mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-08-13 04:37:14 -05:00
Prevent plugin from being loaded twice
This commit is contained in:
@@ -1,5 +1,16 @@
|
||||
#include <obs-module.h>
|
||||
#include <obs-frontend-api.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
#define ADVSS_SETENV(k, v) _putenv_s(k, v)
|
||||
#define ADVSS_UNSETENV(k) _putenv_s(k, "")
|
||||
#else
|
||||
#define ADVSS_SETENV(k, v) setenv(k, v, 1)
|
||||
#define ADVSS_UNSETENV(k) unsetenv(k)
|
||||
#endif
|
||||
|
||||
#define ADVSS_INSTANCE_ENV "ADVSS_INSTANCE_LOADED"
|
||||
|
||||
OBS_DECLARE_MODULE()
|
||||
OBS_MODULE_USE_DEFAULT_LOCALE("advanced-scene-switcher", "en-US")
|
||||
@@ -17,6 +28,12 @@ void obs_module_post_load(void)
|
||||
|
||||
bool obs_module_load(void)
|
||||
{
|
||||
if (getenv(ADVSS_INSTANCE_ENV)) {
|
||||
blog(LOG_WARNING,
|
||||
"[adv-ss] Another instance is already loaded - skipping.");
|
||||
return false;
|
||||
}
|
||||
ADVSS_SETENV(ADVSS_INSTANCE_ENV, "1");
|
||||
obs_frontend_push_ui_translation(obs_module_get_string);
|
||||
InitSceneSwitcher(obs_current_module(), obs_module_text);
|
||||
return true;
|
||||
@@ -25,4 +42,5 @@ bool obs_module_load(void)
|
||||
void obs_module_unload(void)
|
||||
{
|
||||
FreeSceneSwitcher();
|
||||
ADVSS_UNSETENV(ADVSS_INSTANCE_ENV);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user