libobs: Add obs_source_info::get_defaults2

Uses type_data to get the type-specific data of a source type
This commit is contained in:
jp9000
2018-01-02 13:51:03 -08:00
parent 7f6cf97bd7
commit 5d7c899ebe
2 changed files with 19 additions and 3 deletions
+10 -3
View File
@@ -323,8 +323,13 @@ static obs_source_t *obs_source_create_internal(const char *id,
private))
goto fail;
if (info && info->get_defaults)
info->get_defaults(source->context.settings);
if (info) {
if (info->get_defaults2)
info->get_defaults2(info->type_data,
source->context.settings);
else if (info->get_defaults)
info->get_defaults(source->context.settings);
}
if (!obs_source_init(source))
goto fail;
@@ -695,7 +700,9 @@ bool obs_source_removed(const obs_source_t *source)
static inline obs_data_t *get_defaults(const struct obs_source_info *info)
{
obs_data_t *settings = obs_data_create();
if (info->get_defaults)
if (info->get_defaults2)
info->get_defaults2(info->type_data, settings);
else if (info->get_defaults)
info->get_defaults(settings);
return settings;
}