diff --git a/libobs/obs-source.c b/libobs/obs-source.c index 8f846091b..29dab34a3 100644 --- a/libobs/obs-source.c +++ b/libobs/obs-source.c @@ -586,6 +586,18 @@ obs_properties_t *obs_get_source_properties(const char *id) return NULL; } +bool obs_is_source_configurable(const char *id) +{ + const struct obs_source_info *info = get_source_info(id); + return info && info->get_properties; +} + +bool obs_source_configurable(const obs_source_t *source) +{ + return data_valid(source, "obs_source_configurable") && + source->info.get_properties; +} + obs_properties_t *obs_source_properties(const obs_source_t *source) { if (!data_valid(source, "obs_source_properties")) diff --git a/libobs/obs.h b/libobs/obs.h index 62d62324a..d05c745bd 100644 --- a/libobs/obs.h +++ b/libobs/obs.h @@ -685,6 +685,11 @@ EXPORT obs_data_t *obs_get_source_defaults(const char *id); /** Returns the property list, if any. Free with obs_properties_destroy */ EXPORT obs_properties_t *obs_get_source_properties(const char *id); +/** Returns whether the source has custom properties or not */ +EXPORT bool obs_is_source_configurable(const char *id); + +EXPORT bool obs_source_configurable(const obs_source_t *source); + /** * Returns the properties list for a specific existing source. Free with * obs_properties_destroy