diff --git a/plugins/src/webrtcsink/imp.rs b/plugins/src/webrtcsink/imp.rs index 8d79698e..77ad2da0 100644 --- a/plugins/src/webrtcsink/imp.rs +++ b/plugins/src/webrtcsink/imp.rs @@ -2502,6 +2502,35 @@ impl ObjectImpl for WebRTCSink { glib::types::Type::UNIT.into(), ) .build(), + + /* + * RsWebRTCSink::get_consumers: + * + * List all consumers (by ID). + */ + glib::subclass::Signal::builder( + "get-consumers", + &[], + >::static_type().into(), + ) + .action() + .class_handler(|_, args| { + let element = args[0].get::().expect("signal arg"); + let this = element.imp(); + + let res = Some( + this.state + .lock() + .unwrap() + .consumers + .keys() + .cloned() + .collect::>() + .to_value(), + ); + res + }) + .build(), ] });