libobs: Save/Load source UUID in scene item data

This commit is contained in:
derrod 2023-02-26 09:53:48 +01:00 committed by Rodney
parent 30519768ad
commit 29db52ad27

View file

@ -959,6 +959,7 @@ static void scene_load(void *data, obs_data_t *settings);
static void scene_load_item(struct obs_scene *scene, obs_data_t *item_data)
{
const char *name = obs_data_get_string(item_data, "name");
const char *src_uuid = obs_data_get_string(item_data, "source_uuid");
obs_source_t *source;
const char *scale_filter_str;
const char *blend_method_str;
@ -970,7 +971,11 @@ static void scene_load_item(struct obs_scene *scene, obs_data_t *item_data)
if (obs_data_get_bool(item_data, "group_item_backup"))
return;
source = obs_get_source_by_name(name);
if (src_uuid && strlen(src_uuid) == UUID_STR_LENGTH)
source = obs_get_source_by_uuid(src_uuid);
else
source = obs_get_source_by_name(name);
if (!source) {
blog(LOG_WARNING,
"[scene_load_item] Source %s not "
@ -1124,6 +1129,7 @@ static void scene_save_item(obs_data_array_t *array,
{
obs_data_t *item_data = obs_data_create();
const char *name = obs_source_get_name(item->source);
const char *src_uuid = obs_source_get_uuid(item->source);
const char *scale_filter;
const char *blend_method;
const char *blend_type;
@ -1136,6 +1142,7 @@ static void scene_save_item(obs_data_array_t *array,
}
obs_data_set_string(item_data, "name", name);
obs_data_set_string(item_data, "source_uuid", src_uuid);
obs_data_set_bool(item_data, "visible", item->user_visible);
obs_data_set_bool(item_data, "locked", item->locked);
obs_data_set_double(item_data, "rot", rot);