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:
14
libobs/obs.c
14
libobs/obs.c
@@ -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,
|
||||
|
Reference in New Issue
Block a user