Fix function priorities not being saved

This commit is contained in:
WarmUpTill 2023-05-20 11:13:09 +02:00 committed by WarmUpTill
parent 686b00ffd1
commit e0917a35fd
3 changed files with 34 additions and 11 deletions

View File

@ -577,17 +577,7 @@ void SwitcherData::SaveGeneralSettings(obs_data_t *obj)
obs_data_set_bool(obj, "warnPluginLoadFailure", warnPluginLoadFailure);
obs_data_set_bool(obj, "hideLegacyTabs", hideLegacyTabs);
obs_data_set_int(obj, "priority0", functionNamesByPriority[0]);
obs_data_set_int(obj, "priority1", functionNamesByPriority[1]);
obs_data_set_int(obj, "priority2", functionNamesByPriority[2]);
obs_data_set_int(obj, "priority3", functionNamesByPriority[3]);
obs_data_set_int(obj, "priority4", functionNamesByPriority[4]);
obs_data_set_int(obj, "priority5", functionNamesByPriority[5]);
obs_data_set_int(obj, "priority6", functionNamesByPriority[6]);
obs_data_set_int(obj, "priority7", functionNamesByPriority[7]);
obs_data_set_int(obj, "priority8", functionNamesByPriority[8]);
obs_data_set_int(obj, "priority9", functionNamesByPriority[9]);
obs_data_set_int(obj, "priority10", functionNamesByPriority[10]);
SaveFunctionPriorities(obj, functionNamesByPriority);
obs_data_set_int(obj, "threadPriority", threadPriority);
@ -638,6 +628,7 @@ void SwitcherData::LoadGeneralSettings(obs_data_t *obj)
hideLegacyTabs = obs_data_get_bool(obj, "hideLegacyTabs");
SetDefaultFunctionPriorities(obj);
LoadFunctionPriorities(obj, functionNamesByPriority);
if (!PrioFuncsValid()) {
functionNamesByPriority = GetDefaultFunctionPriorityList();
}

View File

@ -51,6 +51,36 @@ void SetDefaultFunctionPriorities(obs_data_t *obj)
obs_data_set_default_int(obj, "priority10", default_priority_10);
}
void SaveFunctionPriorities(obs_data_t *obj, std::vector<int> &funcs)
{
obs_data_set_int(obj, "priority0", funcs[0]);
obs_data_set_int(obj, "priority1", funcs[1]);
obs_data_set_int(obj, "priority2", funcs[2]);
obs_data_set_int(obj, "priority3", funcs[3]);
obs_data_set_int(obj, "priority4", funcs[4]);
obs_data_set_int(obj, "priority5", funcs[5]);
obs_data_set_int(obj, "priority6", funcs[6]);
obs_data_set_int(obj, "priority7", funcs[7]);
obs_data_set_int(obj, "priority8", funcs[8]);
obs_data_set_int(obj, "priority9", funcs[9]);
obs_data_set_int(obj, "priority10", funcs[10]);
}
void LoadFunctionPriorities(obs_data_t *obj, std::vector<int> &funcs)
{
funcs[0] = (obs_data_get_int(obj, "priority0"));
funcs[1] = (obs_data_get_int(obj, "priority1"));
funcs[2] = (obs_data_get_int(obj, "priority2"));
funcs[3] = (obs_data_get_int(obj, "priority3"));
funcs[4] = (obs_data_get_int(obj, "priority4"));
funcs[5] = (obs_data_get_int(obj, "priority5"));
funcs[6] = (obs_data_get_int(obj, "priority6"));
funcs[7] = (obs_data_get_int(obj, "priority7"));
funcs[8] = (obs_data_get_int(obj, "priority8"));
funcs[9] = (obs_data_get_int(obj, "priority9"));
funcs[10] = (obs_data_get_int(obj, "priority10"));
}
std::vector<int> GetDefaultFunctionPriorityList()
{
return {default_priority_0, default_priority_1, default_priority_2,

View File

@ -14,6 +14,8 @@ struct ThreadPrio {
std::vector<int> GetDefaultFunctionPriorityList();
void SetDefaultFunctionPriorities(obs_data_t *);
void SaveFunctionPriorities(obs_data_t *, std::vector<int> &);
void LoadFunctionPriorities(obs_data_t *, std::vector<int> &);
std::vector<ThreadPrio> GetThreadPrioMapping();
} // namespace advss