Merge pull request #2144 from cg2121/quick-tr-fix

UI: Fix main transition being set to the quick one
This commit is contained in:
Jim 2019-11-07 05:37:33 -08:00 committed by GitHub
commit 647e7e24a1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 7 deletions

View File

@ -126,11 +126,13 @@ void OBSBasic::TriggerQuickTransition(int id)
OBSScene scene = GetCurrentScene();
obs_source_t *source = obs_scene_get_source(scene);
ui->transitionDuration->setValue(qt->duration);
if (GetCurrentTransition() != qt->source)
SetTransition(qt->source);
if (GetCurrentTransition() != qt->source) {
OverrideTransition(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;
}
static void OverrideTransition(OBSSource transition)
void OBSBasic::OverrideTransition(OBSSource transition)
{
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,
bool quickTransition, bool black)
bool quickTransition, int quickDuration,
bool black)
{
obs_scene_t *scene = obs_scene_from_source(source);
bool usingPreviewProgram = IsPreviewProgramMode();
@ -384,6 +387,9 @@ void OBSBasic::TransitionToScene(OBSSource source, bool force, bool direct,
prevFTBSource = nullptr;
}
if (quickTransition)
duration = quickDuration;
bool success = obs_transition_start(
transition, OBS_TRANSITION_MODE_AUTO, duration, source);
if (!success)

View File

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