0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00

UI: Fix main transition being set to the quick one

This fixes an issue where using a quick transition, it would change
the main transition as well.
This commit is contained in:
Clayton Groeneveld 2019-10-24 19:52:26 -05:00
parent f41d0d9d77
commit 0676c385ba
2 changed files with 14 additions and 7 deletions

View File

@ -126,11 +126,13 @@ void OBSBasic::TriggerQuickTransition(int id)
OBSScene scene = GetCurrentScene(); OBSScene scene = GetCurrentScene();
obs_source_t *source = obs_scene_get_source(scene); obs_source_t *source = obs_scene_get_source(scene);
ui->transitionDuration->setValue(qt->duration); if (GetCurrentTransition() != qt->source) {
if (GetCurrentTransition() != qt->source) OverrideTransition(qt->source);
SetTransition(qt->source); overridingTransition = true;
}
TransitionToScene(source, false, false, true, qt->fadeToBlack); TransitionToScene(source, false, false, true, qt->duration,
qt->fadeToBlack);
} }
} }
@ -281,7 +283,7 @@ void OBSBasic::TransitionStopped()
swapScene = nullptr; swapScene = nullptr;
} }
static void OverrideTransition(OBSSource transition) void OBSBasic::OverrideTransition(OBSSource transition)
{ {
obs_source_t *oldTransition = obs_get_output_source(0); obs_source_t *oldTransition = obs_get_output_source(0);
@ -303,7 +305,8 @@ void OBSBasic::TransitionFullyStopped()
} }
void OBSBasic::TransitionToScene(OBSSource source, bool force, bool direct, void OBSBasic::TransitionToScene(OBSSource source, bool force, bool direct,
bool quickTransition, bool black) bool quickTransition, int quickDuration,
bool black)
{ {
obs_scene_t *scene = obs_scene_from_source(source); obs_scene_t *scene = obs_scene_from_source(source);
bool usingPreviewProgram = IsPreviewProgramMode(); bool usingPreviewProgram = IsPreviewProgramMode();
@ -384,6 +387,9 @@ void OBSBasic::TransitionToScene(OBSSource source, bool force, bool direct,
prevFTBSource = nullptr; prevFTBSource = nullptr;
} }
if (quickTransition)
duration = quickDuration;
bool success = obs_transition_start( bool success = obs_transition_start(
transition, OBS_TRANSITION_MODE_AUTO, duration, source); transition, OBS_TRANSITION_MODE_AUTO, duration, source);
if (!success) if (!success)

View File

@ -476,12 +476,13 @@ public slots:
void SaveProject(); void SaveProject();
void SetTransition(OBSSource transition); void SetTransition(OBSSource transition);
void OverrideTransition(OBSSource transition);
void TransitionToScene(OBSScene scene, bool force = false, void TransitionToScene(OBSScene scene, bool force = false,
bool direct = false); bool direct = false);
void TransitionToScene(OBSSource scene, bool force = false, void TransitionToScene(OBSSource scene, bool force = false,
bool direct = false, bool direct = false,
bool quickTransition = false, bool quickTransition = false,
bool black = false); int quickDuration = 0, bool black = false);
void SetCurrentScene(OBSSource scene, bool force = false, void SetCurrentScene(OBSSource scene, bool force = false,
bool direct = false); bool direct = false);