From 794df19122305ce55d8a9ce97a289c8ad0480f00 Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Mon, 7 Feb 2022 17:33:22 +0000 Subject: [PATCH] Add a new 'get-consumers' action signal So user can get the list of currently avalaible consumers (by ID). --- plugins/src/webrtcsink/imp.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) 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(), ] });