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

Function SwitchScene

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

Source from the content-addressed store, hash-verified

133}
134
135void SwitchScene(const SceneSwitchInfo &sceneSwitch, bool force,
136 obs_weak_canvas_t *canvas)
137{
138 if (!sceneSwitch.scene) {
139 vblog(LOG_INFO, "nothing to switch to");
140 return;
141 }
142
143 OBSSourceAutoRelease source =
144 obs_weak_source_get_source(sceneSwitch.scene);
145 OBSSourceAutoRelease currentSource = obs_frontend_get_current_scene();
146
147 if (!source || (source == currentSource && !force)) {
148 return;
149 }
150
151 TransitionData currentTransitionData;
152 const bool modifiesTransition = modifiesTransitionSettings(sceneSwitch);
153
154 if (!canvas || IsMainCanvas(canvas)) { // Assume main canvas by default
155 if (modifiesTransition) {
156 SetNextTransition(sceneSwitch, currentSource,
157 currentTransitionData);
158 }
159 obs_frontend_set_current_scene(source);
160 if (modifiesTransition && ShouldModifyTransitionOverrides()) {
161 RestoreTransitionOverride(source,
162 currentTransitionData);
163 }
164 vblog(LOG_INFO, "switched main canvas scene");
165 return;
166 }
167
168 if (GetWeakCanvasName(canvas) == "Aitum Vertical") {
169 // Can't set transitions so we ignore these options
170 OBSDataAutoRelease data = obs_data_create();
171 obs_data_set_string(data, "vendorName",
172 "aitum-vertical-canvas");
173 obs_data_set_string(data, "requestType", "switch_scene");
174 OBSDataAutoRelease requestData = obs_data_create();
175 obs_data_set_string(requestData, "scene",
176 obs_source_get_name(source));
177 obs_data_set_obj(data, "requestData", requestData);
178 obs_websocket_request_response_free(
179 obs_websocket_call_request("CallVendorRequest", data));
180 vblog(LOG_INFO, "switched Aitum Vertical canvas scene");
181 }
182}
183
184void SwitchPreviewScene(const OBSWeakSource &ws)
185{

Callers 2

ThreadMethod · 0.85
PerformActionMethod · 0.85

Calls 8

IsMainCanvasFunction · 0.85
SetNextTransitionFunction · 0.85
GetWeakCanvasNameFunction · 0.85

Tested by

no test coverage detected