mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-07-02 00:22:10 -05:00
* rework general tab UI * rework audio tab UI * rework media tab UI * rework time tab UI * rework random tab UI * rework window tab UI * rework sreen region tab UI * rework sequence tab UI * rework transition tab UI * adjust log messages to new format * fix include path and warning * highlight widgets to guide users (can be disabled) * add helper frame for screen region tab * rename main SceneSwitcher widget to AdvSceneSwitcher to resolve naming conflicts with the frontend tools on certain platforms (e.g. Debian 10) * add media state 'any' * adjust media switch handling to support vlc source
97 lines
2.6 KiB
C++
97 lines
2.6 KiB
C++
#include "headers/switcher-data-structs.hpp"
|
|
#include "headers/utility.hpp"
|
|
|
|
void SwitcherData::Prune()
|
|
{
|
|
for (size_t i = 0; i < windowSwitches.size(); i++) {
|
|
WindowSwitch &s = windowSwitches[i];
|
|
if (!s.valid())
|
|
windowSwitches.erase(windowSwitches.begin() + i--);
|
|
}
|
|
|
|
if (nonMatchingScene && !WeakSourceValid(nonMatchingScene)) {
|
|
switchIfNotMatching = NO_SWITCH;
|
|
nonMatchingScene = nullptr;
|
|
}
|
|
|
|
for (size_t i = 0; i < randomSwitches.size(); i++) {
|
|
RandomSwitch &s = randomSwitches[i];
|
|
if (!s.valid())
|
|
randomSwitches.erase(randomSwitches.begin() + i--);
|
|
}
|
|
|
|
for (size_t i = 0; i < screenRegionSwitches.size(); i++) {
|
|
ScreenRegionSwitch &s = screenRegionSwitches[i];
|
|
if (!s.valid())
|
|
screenRegionSwitches.erase(
|
|
screenRegionSwitches.begin() + i--);
|
|
}
|
|
|
|
for (size_t i = 0; i < pauseScenesSwitches.size(); i++) {
|
|
OBSWeakSource &scene = pauseScenesSwitches[i];
|
|
if (!WeakSourceValid(scene))
|
|
pauseScenesSwitches.erase(pauseScenesSwitches.begin() +
|
|
i--);
|
|
}
|
|
|
|
for (size_t i = 0; i < sceneSequenceSwitches.size(); i++) {
|
|
SceneSequenceSwitch &s = sceneSequenceSwitches[i];
|
|
if (!s.valid())
|
|
sceneSequenceSwitches.erase(
|
|
sceneSequenceSwitches.begin() + i--);
|
|
}
|
|
|
|
if (!WeakSourceValid(autoStopScene)) {
|
|
autoStopScene = nullptr;
|
|
autoStopEnable = false;
|
|
}
|
|
|
|
for (size_t i = 0; i < sceneTransitions.size(); i++) {
|
|
SceneTransition &s = sceneTransitions[i];
|
|
if (!s.valid())
|
|
sceneTransitions.erase(sceneTransitions.begin() + i--);
|
|
}
|
|
|
|
for (size_t i = 0; i < defaultSceneTransitions.size(); i++) {
|
|
DefaultSceneTransition &s = defaultSceneTransitions[i];
|
|
if (!s.valid())
|
|
defaultSceneTransitions.erase(
|
|
defaultSceneTransitions.begin() + i--);
|
|
}
|
|
|
|
for (size_t i = 0; i < executableSwitches.size(); i++) {
|
|
ExecutableSwitch &s = executableSwitches[i];
|
|
if (!s.valid())
|
|
executableSwitches.erase(executableSwitches.begin() +
|
|
i--);
|
|
}
|
|
|
|
for (size_t i = 0; i < fileSwitches.size(); i++) {
|
|
FileSwitch &s = fileSwitches[i];
|
|
if (!s.valid())
|
|
fileSwitches.erase(fileSwitches.begin() + i--);
|
|
}
|
|
|
|
for (size_t i = 0; i < timeSwitches.size(); i++) {
|
|
TimeSwitch &s = timeSwitches[i];
|
|
if (!s.valid())
|
|
timeSwitches.erase(timeSwitches.begin() + i--);
|
|
}
|
|
|
|
if (!idleData.valid()) {
|
|
idleData.idleEnable = false;
|
|
}
|
|
|
|
for (size_t i = 0; i < mediaSwitches.size(); i++) {
|
|
MediaSwitch &s = mediaSwitches[i];
|
|
if (!s.valid())
|
|
mediaSwitches.erase(mediaSwitches.begin() + i--);
|
|
}
|
|
|
|
for (size_t i = 0; i < audioSwitches.size(); i++) {
|
|
AudioSwitch &s = audioSwitches[i];
|
|
if (!s.valid())
|
|
audioSwitches.erase(audioSwitches.begin() + i--);
|
|
}
|
|
}
|