(API Change) libobs: Don't use signal for obs_load_sources

(Note: This commit also changes the UI)

Changed:
-------------------
void obs_load_sources(obs_data_array_t *sources_list);

To:
-------------------
void obs_load_sources(obs_data_array_t *sources_list,
		obs_source_load_cb callback, void *private_data);

Signals should really never be required to use to make some function
work properly.  The "source_load" signal was required for the
obs_load_sources function, but it's meant more for loading private data
in the settings, not for general loading of sources.

This changes it so that a callback is explicitly required to load the
sources.
This commit is contained in:
jp9000
2016-03-04 12:56:09 -08:00
parent d497c63f1b
commit aa2bea3749
4 changed files with 10 additions and 8 deletions

View File

@@ -1474,7 +1474,8 @@ obs_source_t *obs_load_source(obs_data_t *source_data)
return obs_load_source_type(source_data);
}
void obs_load_sources(obs_data_array_t *array)
void obs_load_sources(obs_data_array_t *array, obs_load_source_cb cb,
void *private_data)
{
if (!obs) return;
@@ -1507,6 +1508,7 @@ void obs_load_sources(obs_data_array_t *array)
if (source->info.type == OBS_SOURCE_TYPE_TRANSITION)
obs_transition_load(source, source_data);
obs_source_load(source);
cb(private_data, source);
}
obs_data_release(source_data);
}

View File

@@ -550,8 +550,11 @@ EXPORT obs_data_t *obs_save_source(obs_source_t *source);
/** Loads a source from settings data */
EXPORT obs_source_t *obs_load_source(obs_data_t *data);
typedef void (*obs_load_source_cb)(void *private_data, obs_source_t *source);
/** Loads sources from a data array */
EXPORT void obs_load_sources(obs_data_array_t *array);
EXPORT void obs_load_sources(obs_data_array_t *array, obs_load_source_cb cb,
void *private_data);
/** Saves sources to a data array */
EXPORT obs_data_array_t *obs_save_sources(void);