From b99c378e33d0006ab9f0de6f82af862a89a9107b Mon Sep 17 00:00:00 2001 From: Palana Date: Tue, 30 Sep 2014 15:40:46 +0200 Subject: [PATCH] Add 'update_properties' signal and obs_source_update_properties call obs_source_update_properties should be called by sources when property values change, e.g. a capture device source would use this when it detects a new capture device (in case its properties contain a list of available capture devices or similar) --- libobs/obs-source.c | 16 ++++++++++++++++ libobs/obs.h | 3 +++ 2 files changed, 19 insertions(+) diff --git a/libobs/obs-source.c b/libobs/obs-source.c index 3c2ec1fbb..4e0b89f0a 100644 --- a/libobs/obs-source.c +++ b/libobs/obs-source.c @@ -82,6 +82,7 @@ static const char *source_signals[] = { "void volume(ptr source, in out float volume)", "void volume_level(ptr source, float level, float magnitude, " "float peak)", + "void update_properties(ptr source)", NULL }; @@ -389,6 +390,21 @@ void obs_source_update(obs_source_t *source, obs_data_t *settings) } } +void obs_source_update_properties(obs_source_t *source) +{ + calldata_t calldata; + + if (!source) return; + + calldata_init(&calldata); + calldata_set_ptr(&calldata, "source", source); + + signal_handler_signal(obs_source_get_signal_handler(source), + "update_properties", &calldata); + + calldata_free(&calldata); +} + void obs_source_send_mouse_click(obs_source_t *source, const struct obs_mouse_event *event, int32_t type, bool mouse_up, diff --git a/libobs/obs.h b/libobs/obs.h index e7224ea15..f40646841 100644 --- a/libobs/obs.h +++ b/libobs/obs.h @@ -730,6 +730,9 @@ EXPORT void obs_source_output_video(obs_source_t *source, EXPORT void obs_source_output_audio(obs_source_t *source, const struct obs_source_audio *audio); +/** Signal an update to any currently used properties via 'update_properties' */ +EXPORT void obs_source_update_properties(obs_source_t *source); + /** Gets the current async video frame */ EXPORT struct obs_source_frame *obs_source_get_frame(obs_source_t *source);