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 94 95 96 97 98 99 100 101 102
// This file was generated by gir (https://github.com/gtk-rs/gir) // from gir-files (https://github.com/gtk-rs/gir-files) // DO NOT EDIT use glib::translate::*; #[cfg(any(feature = "v1_10", feature = "dox"))] use glib::GString; use gst_sys; use Object; #[cfg(any(feature = "v1_10", feature = "dox"))] use Stream; glib_wrapper! { /// A collection of `Stream` that are available. /// /// A `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 `StreamCollection::get_stream`() /// /// Once posted, a `StreamCollection` is immutable. Updates are made by sending /// a new `StreamCollection` message, which may or may not share some of /// the `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`. /// /// Applications can activate streams from a collection by using the /// `EventType::SelectStreams` event on a pipeline, bin or element. /// /// Feature: `v1_10` /// /// # Implements /// /// [`GstObjectExt`](trait.GstObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html) pub struct StreamCollection(Object<gst_sys::GstStreamCollection, gst_sys::GstStreamCollectionClass, StreamCollectionClass>) @extends Object; match fn { get_type => || gst_sys::gst_stream_collection_get_type(), } } impl StreamCollection { /// Get the number of streams this collection contains /// /// Feature: `v1_10` /// /// /// # Returns /// /// The number of streams that `self` contains #[cfg(any(feature = "v1_10", feature = "dox"))] pub fn get_size(&self) -> u32 { unsafe { gst_sys::gst_stream_collection_get_size(self.to_glib_none().0) } } /// Retrieve the `Stream` with index `index` from the collection. /// /// The caller should not modify the returned `Stream` /// /// Feature: `v1_10` /// /// ## `index` /// Index of the stream to retrieve /// /// # Returns /// /// A `Stream` #[cfg(any(feature = "v1_10", feature = "dox"))] pub fn get_stream(&self, index: u32) -> Option<Stream> { unsafe { from_glib_none(gst_sys::gst_stream_collection_get_stream( self.to_glib_none().0, index, )) } } /// Returns the upstream id of the `self`. /// /// Feature: `v1_10` /// /// /// # Returns /// /// The upstream id #[cfg(any(feature = "v1_10", feature = "dox"))] pub fn get_upstream_id(&self) -> Option<GString> { unsafe { from_glib_none(gst_sys::gst_stream_collection_get_upstream_id( self.to_glib_none().0, )) } } //pub fn connect_stream_notify<Unsupported or ignored types>(&self, f: F) -> SignalHandlerId { // Ignored p0: GObject.ParamSpec //} } unsafe impl Send for StreamCollection {} unsafe impl Sync for StreamCollection {}