From ee74d39424d5d0eed21769c19408d2a6e836dc96 Mon Sep 17 00:00:00 2001 From: WarmUpTill Date: Fri, 26 Feb 2021 19:21:02 +0100 Subject: [PATCH] Fixes and Minor rework (#132) * Fix warning in scene trigger log functions. * Use GetWeakSourceName() when saving scene trigger sources. * Fix prioFuncsValid(). --- src/scene-trigger.cpp | 18 ++++++------------ src/switch-priority.cpp | 9 ++++++--- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/scene-trigger.cpp b/src/scene-trigger.cpp index 389a2ceb..557e1386 100644 --- a/src/scene-trigger.cpp +++ b/src/scene-trigger.cpp @@ -187,7 +187,7 @@ void frontEndActionThread(sceneTriggerAction action, double delay) break; default: blog(LOG_WARNING, "ignoring unexpected frontend action '%d'", - action); + static_cast(action)); break; } } @@ -255,7 +255,8 @@ void SceneTrigger::performAction() bool stop = triggerAction == sceneTriggerAction::STOP_SWITCHER; t = std::thread(statusThread, duration, stop); } else { - blog(LOG_WARNING, "ignoring unkown action '%d'", triggerAction); + blog(LOG_WARNING, "ignoring unkown action '%d'", + static_cast(triggerAction)); } t.detach(); @@ -439,19 +440,12 @@ void AdvSceneSwitcher::setupTriggerTab() void SceneTrigger::save(obs_data_t *obj) { - obs_source_t *sceneSource = obs_weak_source_get_source(scene); - const char *sceneName = obs_source_get_name(sceneSource); - obs_data_set_string(obj, "scene", sceneName); - obs_source_release(sceneSource); - + obs_data_set_string(obj, "scene", GetWeakSourceName(scene).c_str()); obs_data_set_int(obj, "triggerType", static_cast(triggerType)); obs_data_set_int(obj, "triggerAction", static_cast(triggerAction)); obs_data_set_double(obj, "duration", duration); - - obs_source_t *source = obs_weak_source_get_source(audioSource); - const char *audioSourceName = obs_source_get_name(source); - obs_data_set_string(obj, "audioSource", audioSourceName); - obs_source_release(source); + obs_data_set_string(obj, "audioSource", + GetWeakSourceName(audioSource).c_str()); } void SceneTrigger::load(obs_data_t *obj) diff --git a/src/switch-priority.cpp b/src/switch-priority.cpp index 8fbdd188..de16b63e 100644 --- a/src/switch-priority.cpp +++ b/src/switch-priority.cpp @@ -55,9 +55,12 @@ void AdvSceneSwitcher::on_priorityDown_clicked() bool SwitcherData::prioFuncsValid() { - auto it = std::unique(functionNamesByPriority.begin(), - functionNamesByPriority.end()); - bool wasUnique = (it == functionNamesByPriority.end()); + auto fNBPCopy = functionNamesByPriority; + + std::sort(fNBPCopy.begin(), fNBPCopy.end()); + auto it = std::unique(fNBPCopy.begin(), fNBPCopy.end()); + bool wasUnique = (it == fNBPCopy.end()); + if (!wasUnique) { return false; }