mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-07-19 01:15:14 -05:00
Clean up transition tab save and load
This commit is contained in:
parent
484e1aa191
commit
5d720219bf
|
|
@ -10,6 +10,8 @@ struct SceneTransition : SceneSwitcherEntry {
|
|||
const char *getType() { return "transition"; }
|
||||
bool initialized();
|
||||
bool valid();
|
||||
void save(obs_data_t *obj);
|
||||
void load(obs_data_t *obj);
|
||||
|
||||
inline SceneTransition(){};
|
||||
inline SceneTransition(OBSWeakSource scene_, OBSWeakSource scene2_,
|
||||
|
|
@ -26,6 +28,8 @@ struct DefaultSceneTransition : SceneSwitcherEntry {
|
|||
static unsigned int delay;
|
||||
|
||||
const char *getType() { return "def_transition"; }
|
||||
void save(obs_data_t *obj);
|
||||
void load(obs_data_t *obj);
|
||||
bool checkMatch(OBSWeakSource currentScene);
|
||||
void setTransition();
|
||||
|
||||
|
|
|
|||
|
|
@ -310,26 +310,9 @@ void SwitcherData::saveSceneTransitions(obs_data_t *obj)
|
|||
for (SceneTransition &s : sceneTransitions) {
|
||||
obs_data_t *array_obj = obs_data_create();
|
||||
|
||||
obs_source_t *source1 = obs_weak_source_get_source(s.scene);
|
||||
obs_source_t *source2 = obs_weak_source_get_source(s.scene2);
|
||||
obs_source_t *transition =
|
||||
obs_weak_source_get_source(s.transition);
|
||||
if (source1 && source2 && transition) {
|
||||
const char *sceneName1 = obs_source_get_name(source1);
|
||||
const char *sceneName2 = obs_source_get_name(source2);
|
||||
const char *transitionName =
|
||||
obs_source_get_name(transition);
|
||||
obs_data_set_string(array_obj, "Scene1", sceneName1);
|
||||
obs_data_set_string(array_obj, "Scene2", sceneName2);
|
||||
obs_data_set_string(array_obj, "transition",
|
||||
transitionName);
|
||||
obs_data_set_double(array_obj, "duration", s.duration);
|
||||
obs_data_array_push_back(sceneTransitionsArray,
|
||||
array_obj);
|
||||
}
|
||||
obs_source_release(source1);
|
||||
obs_source_release(source2);
|
||||
obs_source_release(transition);
|
||||
s.save(array_obj);
|
||||
obs_data_array_push_back(sceneTransitionsArray, array_obj);
|
||||
|
||||
obs_data_release(array_obj);
|
||||
}
|
||||
obs_data_set_array(obj, "sceneTransitions", sceneTransitionsArray);
|
||||
|
|
@ -339,21 +322,9 @@ void SwitcherData::saveSceneTransitions(obs_data_t *obj)
|
|||
for (DefaultSceneTransition &s : defaultSceneTransitions) {
|
||||
obs_data_t *array_obj = obs_data_create();
|
||||
|
||||
obs_source_t *source = obs_weak_source_get_source(s.scene);
|
||||
obs_source_t *transition =
|
||||
obs_weak_source_get_source(s.transition);
|
||||
if (source && transition) {
|
||||
const char *sceneName = obs_source_get_name(source);
|
||||
const char *transitionName =
|
||||
obs_source_get_name(transition);
|
||||
obs_data_set_string(array_obj, "Scene", sceneName);
|
||||
obs_data_set_string(array_obj, "transition",
|
||||
transitionName);
|
||||
obs_data_array_push_back(defaultTransitionsArray,
|
||||
array_obj);
|
||||
}
|
||||
obs_source_release(source);
|
||||
obs_source_release(transition);
|
||||
s.save(array_obj);
|
||||
obs_data_array_push_back(defaultTransitionsArray, array_obj);
|
||||
|
||||
obs_data_release(array_obj);
|
||||
}
|
||||
obs_data_set_array(obj, "defaultTransitions", defaultTransitionsArray);
|
||||
|
|
@ -495,6 +466,21 @@ bool SceneTransition::valid()
|
|||
(SceneSwitcherEntry::valid() && WeakSourceValid(scene2));
|
||||
}
|
||||
|
||||
void SceneTransition::save(obs_data_t *obj)
|
||||
{
|
||||
SceneSwitcherEntry::save(obj, "targetType", "Scene1");
|
||||
obs_data_set_string(obj, "Scene2", GetWeakSourceName(scene2).c_str());
|
||||
obs_data_set_double(obj, "duration", duration);
|
||||
}
|
||||
|
||||
void SceneTransition::load(obs_data_t *obj)
|
||||
{
|
||||
SceneSwitcherEntry::load(obj, "targetType", "Scene1");
|
||||
const char *sourceName = obs_data_get_string(obj, "Scene2");
|
||||
scene2 = GetWeakSourceByName(sourceName);
|
||||
duration = obs_data_get_double(obj, "duration");
|
||||
}
|
||||
|
||||
TransitionSwitchWidget::TransitionSwitchWidget(QWidget *parent,
|
||||
SceneTransition *s)
|
||||
: SwitchWidget(parent, s, false, false, false)
|
||||
|
|
@ -611,6 +597,16 @@ void DefTransitionSwitchWidget::swapSwitchData(DefTransitionSwitchWidget *s1,
|
|||
s2->setSwitchData(t);
|
||||
}
|
||||
|
||||
void DefaultSceneTransition::save(obs_data_t *obj)
|
||||
{
|
||||
SceneSwitcherEntry::save(obj, "targetType", "Scene");
|
||||
}
|
||||
|
||||
void DefaultSceneTransition::load(obs_data_t *obj)
|
||||
{
|
||||
SceneSwitcherEntry::load(obj, "targetType", "Scene");
|
||||
}
|
||||
|
||||
bool DefaultSceneTransition::checkMatch(OBSWeakSource currentScene)
|
||||
{
|
||||
return scene == currentScene;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user