mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-06-16 05:40:16 -05:00
Add helper functions to save / load list of macro refs
This commit is contained in:
parent
face0f7f3c
commit
6f7bcc34af
|
|
@ -60,31 +60,14 @@ void MacroActionRandom::LogAction()
|
|||
bool MacroActionRandom::Save(obs_data_t *obj)
|
||||
{
|
||||
MacroAction::Save(obj);
|
||||
obs_data_array_t *args = obs_data_array_create();
|
||||
for (auto &m : _macros) {
|
||||
obs_data_t *array_obj = obs_data_create();
|
||||
m.Save(array_obj);
|
||||
obs_data_array_push_back(args, array_obj);
|
||||
obs_data_release(array_obj);
|
||||
}
|
||||
obs_data_set_array(obj, "macros", args);
|
||||
obs_data_array_release(args);
|
||||
SaveMacroList(obj, _macros);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MacroActionRandom::Load(obs_data_t *obj)
|
||||
{
|
||||
MacroAction::Load(obj);
|
||||
obs_data_array_t *args = obs_data_get_array(obj, "macros");
|
||||
size_t count = obs_data_array_count(args);
|
||||
for (size_t i = 0; i < count; i++) {
|
||||
obs_data_t *array_obj = obs_data_array_item(args, i);
|
||||
MacroRef ref;
|
||||
ref.Load(array_obj);
|
||||
_macros.push_back(ref);
|
||||
obs_data_release(array_obj);
|
||||
}
|
||||
obs_data_array_release(args);
|
||||
LoadMacroList(obj, _macros);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -74,15 +74,7 @@ void MacroActionSequence::LogAction()
|
|||
bool MacroActionSequence::Save(obs_data_t *obj)
|
||||
{
|
||||
MacroAction::Save(obj);
|
||||
obs_data_array_t *args = obs_data_array_create();
|
||||
for (auto &m : _macros) {
|
||||
obs_data_t *array_obj = obs_data_create();
|
||||
m.Save(array_obj);
|
||||
obs_data_array_push_back(args, array_obj);
|
||||
obs_data_release(array_obj);
|
||||
}
|
||||
obs_data_set_array(obj, "macros", args);
|
||||
obs_data_array_release(args);
|
||||
SaveMacroList(obj, _macros);
|
||||
obs_data_set_bool(obj, "restart", _restart);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -90,16 +82,7 @@ bool MacroActionSequence::Save(obs_data_t *obj)
|
|||
bool MacroActionSequence::Load(obs_data_t *obj)
|
||||
{
|
||||
MacroAction::Load(obj);
|
||||
obs_data_array_t *args = obs_data_get_array(obj, "macros");
|
||||
size_t count = obs_data_array_count(args);
|
||||
for (size_t i = 0; i < count; i++) {
|
||||
obs_data_t *array_obj = obs_data_array_item(args, i);
|
||||
MacroRef ref;
|
||||
ref.Load(array_obj);
|
||||
_macros.push_back(ref);
|
||||
obs_data_release(array_obj);
|
||||
}
|
||||
obs_data_array_release(args);
|
||||
LoadMacroList(obj, _macros);
|
||||
_restart = obs_data_get_bool(obj, "restart");
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,8 @@ void MacroRef::UpdateRef(QString newName)
|
|||
_name = newName.toStdString();
|
||||
UpdateRef();
|
||||
}
|
||||
void MacroRef::Save(obs_data_t *obj)
|
||||
|
||||
void MacroRef::Save(obs_data_t *obj) const
|
||||
{
|
||||
if (_ref) {
|
||||
obs_data_set_string(obj, "macro", _ref->Name().c_str());
|
||||
|
|
@ -40,3 +41,35 @@ Macro *MacroRef::operator->()
|
|||
{
|
||||
return _ref;
|
||||
}
|
||||
|
||||
void SaveMacroList(obs_data_t *obj, const std::vector<MacroRef> ¯os,
|
||||
const std::string &name)
|
||||
{
|
||||
obs_data_array_t *array = obs_data_array_create();
|
||||
for (auto &m : macros) {
|
||||
if (!m.get()) {
|
||||
continue;
|
||||
}
|
||||
obs_data_t *array_obj = obs_data_create();
|
||||
m.Save(array_obj);
|
||||
obs_data_array_push_back(array, array_obj);
|
||||
obs_data_release(array_obj);
|
||||
}
|
||||
obs_data_set_array(obj, name.c_str(), array);
|
||||
obs_data_array_release(array);
|
||||
}
|
||||
|
||||
void LoadMacroList(obs_data_t *obj, std::vector<MacroRef> ¯os,
|
||||
const std::string &name)
|
||||
{
|
||||
obs_data_array_t *array = obs_data_get_array(obj, name.c_str());
|
||||
size_t count = obs_data_array_count(array);
|
||||
for (size_t i = 0; i < count; i++) {
|
||||
obs_data_t *array_obj = obs_data_array_item(array, i);
|
||||
MacroRef ref;
|
||||
ref.Load(array_obj);
|
||||
macros.push_back(ref);
|
||||
obs_data_release(array_obj);
|
||||
}
|
||||
obs_data_array_release(array);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ public:
|
|||
void UpdateRef();
|
||||
void UpdateRef(std::string name);
|
||||
void UpdateRef(QString name);
|
||||
void Save(obs_data_t *obj);
|
||||
void Save(obs_data_t *obj) const;
|
||||
void Load(obs_data_t *obj);
|
||||
Macro *get();
|
||||
Macro *operator->();
|
||||
|
|
@ -21,3 +21,8 @@ private:
|
|||
std::string _name = "";
|
||||
Macro *_ref = nullptr;
|
||||
};
|
||||
|
||||
void SaveMacroList(obs_data_t *obj, const std::vector<MacroRef> ¯os,
|
||||
const std::string &name = "macros");
|
||||
void LoadMacroList(obs_data_t *obj, std::vector<MacroRef> ¯os,
|
||||
const std::string &name = "macros");
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user