gst-plugins-rs/net/webrtc/src/signaller/mod.rs

52 lines
1.2 KiB
Rust
Raw Normal View History

mod iface;
2021-10-05 21:28:05 +00:00
mod imp;
use gst::glib;
2021-10-05 21:28:05 +00:00
/**
* GstRSWebRTCSignallableIface:
* @title: Interface for WebRTC signalling protocols
*
* Interface that WebRTC elements can implement their own protocol with.
*/
use once_cell::sync::Lazy;
// Expose traits and objects from the module itself so it exactly looks like
// generated bindings
pub use imp::WebRTCSignallerRole;
pub mod prelude {
pub use {super::SignallableExt, super::SignallableImpl};
2021-10-05 21:28:05 +00:00
}
pub static CAT: Lazy<gst::DebugCategory> = Lazy::new(|| {
gst::DebugCategory::new(
"webrtcsrc-signaller",
gst::DebugColorFlags::empty(),
Some("WebRTC src signaller"),
)
});
2021-10-05 21:28:05 +00:00
glib::wrapper! {
pub struct Signallable(ObjectInterface<iface::Signallable>);
}
2021-10-05 21:28:05 +00:00
glib::wrapper! {
pub struct Signaller(ObjectSubclass <imp::Signaller>) @implements Signallable;
2021-10-05 21:28:05 +00:00
}
2021-12-26 10:02:09 +00:00
impl Default for Signaller {
fn default() -> Self {
glib::Object::builder().build()
2021-10-05 21:28:05 +00:00
}
}
impl Signaller {
pub fn new(mode: WebRTCSignallerRole) -> Self {
glib::Object::builder().property("role", mode).build()
}
}
pub use iface::SignallableExt;
pub use iface::SignallableImpl;
unsafe impl Send for Signallable {}
unsafe impl Sync for Signallable {}