#include "plugin-state-helpers.hpp" #include "switcher-data.hpp" namespace advss { void LoadPluginSettings(obs_data_t *obj) { GetSwitcher()->LoadSettings(obj); } void AddSaveStep(std::function step) { GetSwitcher()->AddSaveStep(step); } void AddLoadStep(std::function step) { GetSwitcher()->AddLoadStep(step); } void AddPostLoadStep(std::function step) { GetSwitcher()->AddPostLoadStep(step); } void AddIntervalResetStep(std::function step, bool lock) { GetSwitcher()->AddIntervalResetStep(step, lock); } void RunPostLoadSteps() { GetSwitcher()->RunPostLoadSteps(); } void AddPluginInitStep(std::function step) { GetSwitcher()->AddPluginInitStep(step); } void AddPluginPostLoadStep(std::function step) { GetSwitcher()->AddPluginPostLoadStep(step); } void AddPluginCleanupStep(std::function step) { GetSwitcher()->AddPluginCleanupStep(step); } void StopPlugin() { GetSwitcher()->Stop(); } void StartPlugin() { GetSwitcher()->Start(); } bool PluginIsRunning() { return GetSwitcher() && GetSwitcher()->th && GetSwitcher()->th->isRunning(); } int GetIntervalValue() { return GetSwitcher()->interval; } void SetPluginNoMatchBehavior(NoMatchBehavior behavior) { GetSwitcher()->switchIfNotMatching = behavior; } NoMatchBehavior GetPluginNoMatchBehavior() { return GetSwitcher()->switchIfNotMatching; } void SetNoMatchScene(const OBSWeakSource &scene) { GetSwitcher()->nonMatchingScene = scene; } std::string ForegroundWindowTitle() { return GetSwitcher()->currentTitle; } std::string PreviousForegroundWindowTitle() { return GetSwitcher()->lastTitle; } bool SettingsWindowIsOpened() { return GetSwitcher()->settingsWindowOpened; } bool HighlightUIElementsEnabled() { return GetSwitcher() && !GetSwitcher()->disableHints; } bool OBSIsShuttingDown() { return GetSwitcher() && GetSwitcher()->obsIsShuttingDown; } bool InitialLoadIsComplete() { return GetSwitcher()->startupLoadDone; } bool IsFirstInterval() { return GetSwitcher()->firstInterval; } bool IsFirstIntervalAfterStop() { return GetSwitcher()->firstIntervalAfterStop; } } // namespace advss