mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs.git
synced 2025-01-03 05:48:43 +00:00
gstreamer: Add gst::MetaFlags
and accessor on meta
This commit is contained in:
parent
1eba9b64e5
commit
df36a7c57a
4 changed files with 91 additions and 0 deletions
|
@ -2268,3 +2268,13 @@ status = "generate"
|
||||||
[[object.derive]]
|
[[object.derive]]
|
||||||
name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"
|
name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"
|
||||||
|
|
||||||
|
|
||||||
|
[[object]]
|
||||||
|
name = "Gst.MetaFlags"
|
||||||
|
status = "generate"
|
||||||
|
[[object.member]]
|
||||||
|
name = "none"
|
||||||
|
ignore = true
|
||||||
|
[[object.member]]
|
||||||
|
name = "last"
|
||||||
|
ignore = true
|
||||||
|
|
|
@ -799,6 +799,68 @@ impl ToValue for MemoryFlags {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bitflags! {
|
||||||
|
#[doc(alias = "GstMetaFlags")]
|
||||||
|
pub struct MetaFlags: u32 {
|
||||||
|
#[doc(alias = "GST_META_FLAG_READONLY")]
|
||||||
|
const READONLY = ffi::GST_META_FLAG_READONLY as u32;
|
||||||
|
#[doc(alias = "GST_META_FLAG_POOLED")]
|
||||||
|
const POOLED = ffi::GST_META_FLAG_POOLED as u32;
|
||||||
|
#[doc(alias = "GST_META_FLAG_LOCKED")]
|
||||||
|
const LOCKED = ffi::GST_META_FLAG_LOCKED as u32;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[doc(hidden)]
|
||||||
|
impl IntoGlib for MetaFlags {
|
||||||
|
type GlibType = ffi::GstMetaFlags;
|
||||||
|
|
||||||
|
fn into_glib(self) -> ffi::GstMetaFlags {
|
||||||
|
self.bits()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[doc(hidden)]
|
||||||
|
impl FromGlib<ffi::GstMetaFlags> for MetaFlags {
|
||||||
|
unsafe fn from_glib(value: ffi::GstMetaFlags) -> Self {
|
||||||
|
skip_assert_initialized!();
|
||||||
|
Self::from_bits_truncate(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl StaticType for MetaFlags {
|
||||||
|
fn static_type() -> Type {
|
||||||
|
unsafe { from_glib(ffi::gst_meta_flags_get_type()) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl glib::value::ValueType for MetaFlags {
|
||||||
|
type Type = Self;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsafe impl<'a> FromValue<'a> for MetaFlags {
|
||||||
|
type Checker = glib::value::GenericValueTypeChecker<Self>;
|
||||||
|
|
||||||
|
unsafe fn from_value(value: &'a glib::Value) -> Self {
|
||||||
|
skip_assert_initialized!();
|
||||||
|
from_glib(glib::gobject_ffi::g_value_get_flags(value.to_glib_none().0))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ToValue for MetaFlags {
|
||||||
|
fn to_value(&self) -> glib::Value {
|
||||||
|
let mut value = glib::Value::for_value_type::<Self>();
|
||||||
|
unsafe {
|
||||||
|
glib::gobject_ffi::g_value_set_flags(value.to_glib_none_mut().0, self.into_glib());
|
||||||
|
}
|
||||||
|
value
|
||||||
|
}
|
||||||
|
|
||||||
|
fn value_type(&self) -> glib::Type {
|
||||||
|
Self::static_type()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bitflags! {
|
bitflags! {
|
||||||
#[doc(alias = "GstObjectFlags")]
|
#[doc(alias = "GstObjectFlags")]
|
||||||
pub struct ObjectFlags: u32 {
|
pub struct ObjectFlags: u32 {
|
||||||
|
|
|
@ -172,6 +172,7 @@ pub use self::flags::EventTypeFlags;
|
||||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_20")))]
|
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_20")))]
|
||||||
pub use self::flags::GapFlags;
|
pub use self::flags::GapFlags;
|
||||||
pub use self::flags::MemoryFlags;
|
pub use self::flags::MemoryFlags;
|
||||||
|
pub use self::flags::MetaFlags;
|
||||||
pub use self::flags::ObjectFlags;
|
pub use self::flags::ObjectFlags;
|
||||||
pub use self::flags::PadFlags;
|
pub use self::flags::PadFlags;
|
||||||
pub use self::flags::PadLinkCheck;
|
pub use self::flags::PadLinkCheck;
|
||||||
|
|
|
@ -145,6 +145,13 @@ impl<'a, T> MetaRef<'a, T> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn flags(&self) -> crate::MetaFlags {
|
||||||
|
unsafe {
|
||||||
|
let meta = self.meta as *const _ as *const ffi::GstMeta;
|
||||||
|
from_glib((*meta).flags)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn type_(&self) -> glib::Type {
|
pub fn type_(&self) -> glib::Type {
|
||||||
unsafe {
|
unsafe {
|
||||||
let meta = self.meta as *const _ as *const ffi::GstMeta;
|
let meta = self.meta as *const _ as *const ffi::GstMeta;
|
||||||
|
@ -207,6 +214,13 @@ impl<'a, T, U> MetaRefMut<'a, T, U> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn flags(&self) -> crate::MetaFlags {
|
||||||
|
unsafe {
|
||||||
|
let meta = self.meta as *const _ as *const ffi::GstMeta;
|
||||||
|
from_glib((*meta).flags)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn type_(&self) -> glib::Type {
|
pub fn type_(&self) -> glib::Type {
|
||||||
unsafe {
|
unsafe {
|
||||||
let meta = self.meta as *const _ as *const ffi::GstMeta;
|
let meta = self.meta as *const _ as *const ffi::GstMeta;
|
||||||
|
@ -316,6 +330,10 @@ impl Meta {
|
||||||
fn api(&self) -> glib::Type {
|
fn api(&self) -> glib::Type {
|
||||||
unsafe { glib::Type::from_glib((*self.0.info).api) }
|
unsafe { glib::Type::from_glib((*self.0.info).api) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn flags(&self) -> crate::MetaFlags {
|
||||||
|
unsafe { from_glib(self.0.flags) }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe impl MetaAPI for Meta {
|
unsafe impl MetaAPI for Meta {
|
||||||
|
|
Loading…
Reference in a new issue