MCPcopy Create free account
hub / github.com/WarmUpTill/SceneSwitcher / SetNextTransition

Function SetNextTransition

lib/utils/scene-switch-helpers.cpp:60–107  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

58}
59
60void SetNextTransition(const SceneSwitchInfo &sceneSwitch,
61 obs_source_t *currentSource, TransitionData &td)
62{
63 // Priority:
64 // 1. Transition tab
65 // 2. Individual switcher entry
66 // 3. Current transition settings
67
68 // Transition Tab
69 OBSWeakSourceAutoRelease currentScene =
70 obs_source_get_weak_source(currentSource);
71 auto tinfo = getNextTransition(currentScene, sceneSwitch.scene);
72
73 OBSWeakSource nextTransition = tinfo.first;
74 int nextTransitionDuration = tinfo.second;
75
76 // Individual switcher entry
77 if (!nextTransition) {
78 nextTransition = sceneSwitch.transition;
79 }
80 if (!nextTransitionDuration) {
81 nextTransitionDuration = sceneSwitch.duration;
82 }
83
84 // Current transition settings
85 if (!nextTransition) {
86 OBSSourceAutoRelease currentTransition =
87 obs_frontend_get_current_transition();
88 nextTransition = obs_source_get_weak_source(currentTransition);
89 obs_weak_source_release(nextTransition);
90 }
91 if (!nextTransitionDuration) {
92 nextTransitionDuration = obs_frontend_get_transition_duration();
93 }
94
95 if (ShouldModifyActiveTransition()) {
96 obs_frontend_set_transition_duration(nextTransitionDuration);
97 OBSSourceAutoRelease transition =
98 obs_weak_source_get_source(nextTransition);
99 obs_frontend_set_current_transition(transition);
100 }
101
102 if (ShouldModifyTransitionOverrides()) {
103 OverwriteTransitionOverride({sceneSwitch.scene, nextTransition,
104 nextTransitionDuration},
105 td);
106 }
107}
108
109void OverwriteTransitionOverride(const SceneSwitchInfo &ssi, TransitionData &td)
110{

Callers 1

SwitchSceneFunction · 0.85

Calls 4

getNextTransitionFunction · 0.85

Tested by

no test coverage detected