mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs.git
synced 2024-12-23 08:36:31 +00:00
Add GstElementFlags and suppressed_flags API of GstBin
This commit is contained in:
parent
56847216a0
commit
474749598e
4 changed files with 80 additions and 12 deletions
|
@ -67,6 +67,7 @@ generate = [
|
||||||
"Gst.TocSetter",
|
"Gst.TocSetter",
|
||||||
"Gst.ClockType",
|
"Gst.ClockType",
|
||||||
"Gst.ClockReturn",
|
"Gst.ClockReturn",
|
||||||
|
"Gst.ElementFlags",
|
||||||
]
|
]
|
||||||
|
|
||||||
manual = [
|
manual = [
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
use ChildProxy;
|
use ChildProxy;
|
||||||
use Element;
|
use Element;
|
||||||
|
#[cfg(feature = "v1_10")]
|
||||||
|
use ElementFlags;
|
||||||
use Iterator;
|
use Iterator;
|
||||||
use Object;
|
use Object;
|
||||||
use Pad;
|
use Pad;
|
||||||
|
@ -56,8 +58,8 @@ pub trait BinExt {
|
||||||
|
|
||||||
fn get_by_name_recurse_up(&self, name: &str) -> Option<Element>;
|
fn get_by_name_recurse_up(&self, name: &str) -> Option<Element>;
|
||||||
|
|
||||||
//#[cfg(feature = "v1_10")]
|
#[cfg(feature = "v1_10")]
|
||||||
//fn get_suppressed_flags(&self) -> /*Ignored*/ElementFlags;
|
fn get_suppressed_flags(&self) -> ElementFlags;
|
||||||
|
|
||||||
fn iterate_all_by_interface(&self, iface: glib::types::Type) -> Option<Iterator>;
|
fn iterate_all_by_interface(&self, iface: glib::types::Type) -> Option<Iterator>;
|
||||||
|
|
||||||
|
@ -77,8 +79,8 @@ pub trait BinExt {
|
||||||
|
|
||||||
//fn remove_many<P: IsA<Element>>(&self, element_1: &P, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs);
|
//fn remove_many<P: IsA<Element>>(&self, element_1: &P, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs);
|
||||||
|
|
||||||
//#[cfg(feature = "v1_10")]
|
#[cfg(feature = "v1_10")]
|
||||||
//fn set_suppressed_flags(&self, flags: /*Ignored*/ElementFlags);
|
fn set_suppressed_flags(&self, flags: ElementFlags);
|
||||||
|
|
||||||
fn sync_children_states(&self) -> Result<(), glib::error::BoolError>;
|
fn sync_children_states(&self) -> Result<(), glib::error::BoolError>;
|
||||||
|
|
||||||
|
@ -138,10 +140,12 @@ impl<O: IsA<Bin> + IsA<glib::object::Object>> BinExt for O {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//#[cfg(feature = "v1_10")]
|
#[cfg(feature = "v1_10")]
|
||||||
//fn get_suppressed_flags(&self) -> /*Ignored*/ElementFlags {
|
fn get_suppressed_flags(&self) -> ElementFlags {
|
||||||
// unsafe { TODO: call ffi::gst_bin_get_suppressed_flags() }
|
unsafe {
|
||||||
//}
|
from_glib(ffi::gst_bin_get_suppressed_flags(self.to_glib_none().0))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn iterate_all_by_interface(&self, iface: glib::types::Type) -> Option<Iterator> {
|
fn iterate_all_by_interface(&self, iface: glib::types::Type) -> Option<Iterator> {
|
||||||
unsafe {
|
unsafe {
|
||||||
|
@ -195,10 +199,12 @@ impl<O: IsA<Bin> + IsA<glib::object::Object>> BinExt for O {
|
||||||
// unsafe { TODO: call ffi::gst_bin_remove_many() }
|
// unsafe { TODO: call ffi::gst_bin_remove_many() }
|
||||||
//}
|
//}
|
||||||
|
|
||||||
//#[cfg(feature = "v1_10")]
|
#[cfg(feature = "v1_10")]
|
||||||
//fn set_suppressed_flags(&self, flags: /*Ignored*/ElementFlags) {
|
fn set_suppressed_flags(&self, flags: ElementFlags) {
|
||||||
// unsafe { TODO: call ffi::gst_bin_set_suppressed_flags() }
|
unsafe {
|
||||||
//}
|
ffi::gst_bin_set_suppressed_flags(self.to_glib_none().0, flags.to_glib());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn sync_children_states(&self) -> Result<(), glib::error::BoolError> {
|
fn sync_children_states(&self) -> Result<(), glib::error::BoolError> {
|
||||||
unsafe {
|
unsafe {
|
||||||
|
|
|
@ -67,6 +67,59 @@ impl SetValue for BufferFlags {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bitflags! {
|
||||||
|
pub struct ElementFlags: u32 {
|
||||||
|
const ELEMENT_FLAG_LOCKED_STATE = 16;
|
||||||
|
const ELEMENT_FLAG_SINK = 32;
|
||||||
|
const ELEMENT_FLAG_SOURCE = 64;
|
||||||
|
const ELEMENT_FLAG_PROVIDE_CLOCK = 128;
|
||||||
|
const ELEMENT_FLAG_REQUIRE_CLOCK = 256;
|
||||||
|
const ELEMENT_FLAG_INDEXABLE = 512;
|
||||||
|
const ELEMENT_FLAG_LAST = 16384;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[doc(hidden)]
|
||||||
|
impl ToGlib for ElementFlags {
|
||||||
|
type GlibType = ffi::GstElementFlags;
|
||||||
|
|
||||||
|
fn to_glib(&self) -> ffi::GstElementFlags {
|
||||||
|
ffi::GstElementFlags::from_bits_truncate(self.bits())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[doc(hidden)]
|
||||||
|
impl FromGlib<ffi::GstElementFlags> for ElementFlags {
|
||||||
|
fn from_glib(value: ffi::GstElementFlags) -> ElementFlags {
|
||||||
|
skip_assert_initialized!();
|
||||||
|
ElementFlags::from_bits_truncate(value.bits())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl StaticType for ElementFlags {
|
||||||
|
fn static_type() -> Type {
|
||||||
|
unsafe { from_glib(ffi::gst_element_flags_get_type()) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> FromValueOptional<'a> for ElementFlags {
|
||||||
|
unsafe fn from_value_optional(value: &Value) -> Option<Self> {
|
||||||
|
Some(FromValue::from_value(value))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> FromValue<'a> for ElementFlags {
|
||||||
|
unsafe fn from_value(value: &Value) -> Self {
|
||||||
|
from_glib(ffi::GstElementFlags::from_bits_truncate(gobject_ffi::g_value_get_flags(value.to_glib_none().0)))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl SetValue for ElementFlags {
|
||||||
|
unsafe fn set_value(value: &mut Value, this: &Self) {
|
||||||
|
gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, this.to_glib().bits())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bitflags! {
|
bitflags! {
|
||||||
pub struct PadProbeType: u32 {
|
pub struct PadProbeType: u32 {
|
||||||
const PAD_PROBE_TYPE_INVALID = 0;
|
const PAD_PROBE_TYPE_INVALID = 0;
|
||||||
|
|
|
@ -154,6 +154,14 @@ pub use self::flags::BUFFER_FLAG_DELTA_UNIT;
|
||||||
pub use self::flags::BUFFER_FLAG_TAG_MEMORY;
|
pub use self::flags::BUFFER_FLAG_TAG_MEMORY;
|
||||||
pub use self::flags::BUFFER_FLAG_SYNC_AFTER;
|
pub use self::flags::BUFFER_FLAG_SYNC_AFTER;
|
||||||
pub use self::flags::BUFFER_FLAG_LAST;
|
pub use self::flags::BUFFER_FLAG_LAST;
|
||||||
|
pub use self::flags::ElementFlags;
|
||||||
|
pub use self::flags::ELEMENT_FLAG_LOCKED_STATE;
|
||||||
|
pub use self::flags::ELEMENT_FLAG_SINK;
|
||||||
|
pub use self::flags::ELEMENT_FLAG_SOURCE;
|
||||||
|
pub use self::flags::ELEMENT_FLAG_PROVIDE_CLOCK;
|
||||||
|
pub use self::flags::ELEMENT_FLAG_REQUIRE_CLOCK;
|
||||||
|
pub use self::flags::ELEMENT_FLAG_INDEXABLE;
|
||||||
|
pub use self::flags::ELEMENT_FLAG_LAST;
|
||||||
pub use self::flags::PadProbeType;
|
pub use self::flags::PadProbeType;
|
||||||
pub use self::flags::PAD_PROBE_TYPE_INVALID;
|
pub use self::flags::PAD_PROBE_TYPE_INVALID;
|
||||||
pub use self::flags::PAD_PROBE_TYPE_IDLE;
|
pub use self::flags::PAD_PROBE_TYPE_IDLE;
|
||||||
|
|
Loading…
Reference in a new issue