1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
// This file was generated by gir (https://github.com/gtk-rs/gir) // from gir-files (https://github.com/gtk-rs/gir-files) // from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git) // DO NOT EDIT use crate::Object; use crate::Stream; use glib::translate::*; glib::wrapper! { /// A collection of [`Stream`][crate::Stream] that are available. /// /// A [`StreamCollection`][crate::StreamCollection] will be provided by elements that can make those /// streams available. Applications can use the collection to show the user /// what streams are available by using [`stream()`][Self::stream()] /// /// Once posted, a [`StreamCollection`][crate::StreamCollection] is immutable. Updates are made by sending /// a new [`StreamCollection`][crate::StreamCollection] message, which may or may not share some of /// the [`Stream`][crate::Stream] objects from the collection it replaces. The receiver can check /// the sender of a stream collection message to know which collection is /// obsoleted. /// /// Several elements in a pipeline can provide [`StreamCollection`][crate::StreamCollection]. /// /// Applications can activate streams from a collection by using the /// [`EventType::SelectStreams`][crate::EventType::SelectStreams] event on a pipeline, bin or element. /// /// # Implements /// /// [`GstObjectExt`][trait@crate::prelude::GstObjectExt], [`trait@glib::ObjectExt`] #[doc(alias = "GstStreamCollection")] pub struct StreamCollection(Object<ffi::GstStreamCollection, ffi::GstStreamCollectionClass>) @extends Object; match fn { type_ => || ffi::gst_stream_collection_get_type(), } } impl StreamCollection { /// Get the number of streams this collection contains /// /// # Returns /// /// The number of streams that `self` contains #[doc(alias = "gst_stream_collection_get_size")] #[doc(alias = "get_size")] pub fn size(&self) -> u32 { unsafe { ffi::gst_stream_collection_get_size(self.to_glib_none().0) } } /// Retrieve the [`Stream`][crate::Stream] with index `index` from the collection. /// /// The caller should not modify the returned [`Stream`][crate::Stream] /// ## `index` /// Index of the stream to retrieve /// /// # Returns /// /// A [`Stream`][crate::Stream] #[doc(alias = "gst_stream_collection_get_stream")] #[doc(alias = "get_stream")] pub fn stream(&self, index: u32) -> Option<Stream> { unsafe { from_glib_none(ffi::gst_stream_collection_get_stream( self.to_glib_none().0, index, )) } } /// Returns the upstream id of the `self`. /// /// # Returns /// /// The upstream id #[doc(alias = "gst_stream_collection_get_upstream_id")] #[doc(alias = "get_upstream_id")] pub fn upstream_id(&self) -> Option<glib::GString> { unsafe { from_glib_none(ffi::gst_stream_collection_get_upstream_id( self.to_glib_none().0, )) } } //#[doc(alias = "stream-notify")] //pub fn connect_stream_notify<Unsupported or ignored types>(&self, detail: Option<&str>, f: F) -> SignalHandlerId { // Ignored p0: GObject.ParamSpec //} } unsafe impl Send for StreamCollection {} unsafe impl Sync for StreamCollection {}