libobs: Add function to load private sources

If a private source is loaded with the obs_load_source function,
it is loaded as a normal source, so add a new function
to load private sources.
This commit is contained in:
Clayton Groeneveld
2022-02-12 15:39:31 -06:00
committed by Jim
parent 61cbfb3b9a
commit 3df2f3e069
4 changed files with 20 additions and 11 deletions

View File

@@ -1780,7 +1780,8 @@ float obs_get_master_volume(void)
return obs->audio.user_volume;
}
static obs_source_t *obs_load_source_type(obs_data_t *source_data)
static obs_source_t *obs_load_source_type(obs_data_t *source_data,
bool is_private)
{
obs_data_array_t *filters = obs_data_get_array(source_data, "filters");
obs_source_t *source;
@@ -1806,7 +1807,7 @@ static obs_source_t *obs_load_source_type(obs_data_t *source_data)
v_id = id;
source = obs_source_create_set_last_ver(v_id, name, settings, hotkeys,
prev_ver);
prev_ver, is_private);
if (source->owns_info_id) {
bfree((void *)source->info.unversioned_id);
source->info.unversioned_id = bstrdup(id);
@@ -1894,7 +1895,7 @@ static obs_source_t *obs_load_source_type(obs_data_t *source_data)
obs_data_array_item(filters, i);
obs_source_t *filter =
obs_load_source_type(filter_data);
obs_load_source_type(filter_data, true);
if (filter) {
obs_source_filter_add(source, filter);
obs_source_release(filter);
@@ -1913,7 +1914,12 @@ static obs_source_t *obs_load_source_type(obs_data_t *source_data)
obs_source_t *obs_load_source(obs_data_t *source_data)
{
return obs_load_source_type(source_data);
return obs_load_source_type(source_data, false);
}
obs_source_t *obs_load_private_source(obs_data_t *source_data)
{
return obs_load_source_type(source_data, true);
}
void obs_load_sources(obs_data_array_t *array, obs_load_source_cb cb,