From 793e5edf010c8281f2e3fd51d034c9edee17d896 Mon Sep 17 00:00:00 2001 From: WarmUpTill Date: Sun, 18 Oct 2020 20:05:10 +0200 Subject: [PATCH] add media state 'any' --- src/headers/switch-media.hpp | 2 ++ src/switch-media.cpp | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/headers/switch-media.hpp b/src/headers/switch-media.hpp index be15f755..87f447cb 100644 --- a/src/headers/switch-media.hpp +++ b/src/headers/switch-media.hpp @@ -16,6 +16,7 @@ typedef enum { struct MediaSwitch : SceneSwitcherEntry { OBSWeakSource source = nullptr; obs_media_state state = OBS_MEDIA_STATE_NONE; + bool anyState = false; time_restriction restriction = TIME_RESTRICTION_NONE; int64_t time = 0; @@ -34,6 +35,7 @@ struct MediaSwitch : SceneSwitcherEntry { restriction(restriction_), time(time_) { + anyState = state > 7; } }; diff --git a/src/switch-media.cpp b/src/switch-media.cpp index f7b35bb8..ac4e7b88 100644 --- a/src/switch-media.cpp +++ b/src/switch-media.cpp @@ -88,7 +88,8 @@ void SwitcherData::checkMediaSwitch(bool &match, OBSWeakSource &scene, auto time = obs_source_media_get_time(source); obs_media_state state = obs_source_media_get_state(source); bool matched = - state == mediaSwitch.state && + ((state == mediaSwitch.state) || + mediaSwitch.anyState) && (mediaSwitch.restriction == TIME_RESTRICTION_NONE || (mediaSwitch.restriction == TIME_RESTRICTION_LONGER && time > mediaSwitch.time) || @@ -222,6 +223,7 @@ void populateMediaStates(QComboBox *list) list->addItem("Stopped"); list->addItem("Ended"); list->addItem("Error"); + list->addItem("Any"); } void populateTimeRestrictions(QComboBox *list) @@ -332,6 +334,7 @@ void MediaSwitchWidget::StateChanged(int index) return; std::lock_guard lock(switcher->m); switchData->state = (obs_media_state)index; + switchData->anyState = switchData->state > 7; } void MediaSwitchWidget::TimeRestrictionChanged(int index)