diff --git a/gstreamer/src/event.rs b/gstreamer/src/event.rs index 6cdfdd500..3e5c90c2b 100644 --- a/gstreamer/src/event.rs +++ b/gstreamer/src/event.rs @@ -238,6 +238,15 @@ impl EventRef { self.structure().map_or(false, |s| s.has_name(name)) } + #[doc(alias = "gst_event_type_get_name")] + #[inline] + pub fn type_name(&self) -> &'static str { + unsafe { + let type_ = ffi::gst_event_type_get_name((*self.as_ptr()).type_); + CStr::from_ptr(type_).to_str().unwrap() + } + } + pub fn view(&self) -> EventView { unsafe { let type_ = (*self.as_ptr()).type_; @@ -3068,6 +3077,7 @@ mod tests { let flush_start_evt = FlushStart::builder() .other_fields(&[("extra-field", &true)]) .build(); + assert_eq!(flush_start_evt.type_name(), "flush-start"); match flush_start_evt.view() { EventView::FlushStart(flush_start_evt) => { assert!(flush_start_evt.structure().is_some()); diff --git a/gstreamer/src/message.rs b/gstreamer/src/message.rs index 639f4288b..88490a2fe 100644 --- a/gstreamer/src/message.rs +++ b/gstreamer/src/message.rs @@ -83,6 +83,15 @@ impl MessageRef { self.structure().map_or(false, |s| s.has_name(name)) } + #[doc(alias = "gst_message_type_get_name")] + #[inline] + pub fn type_name(&self) -> &'static str { + unsafe { + let type_ = ffi::gst_message_type_get_name((*self.as_ptr()).type_); + CStr::from_ptr(type_).to_str().unwrap() + } + } + pub fn view(&self) -> MessageView { unsafe { let type_ = (*self.as_ptr()).type_; @@ -3956,6 +3965,7 @@ mod tests { // Message without arguments let seqnum = Seqnum::next(); let eos_msg = Eos::builder().seqnum(seqnum).build(); + assert_eq!(eos_msg.type_name(), "eos"); match eos_msg.view() { MessageView::Eos(eos_msg) => { assert_eq!(eos_msg.seqnum(), seqnum); diff --git a/gstreamer/src/query.rs b/gstreamer/src/query.rs index 7e467ef73..6e4d64923 100644 --- a/gstreamer/src/query.rs +++ b/gstreamer/src/query.rs @@ -34,6 +34,15 @@ impl QueryRef { } } + #[doc(alias = "gst_query_type_get_name")] + #[inline] + pub fn type_name(&self) -> &'static str { + unsafe { + let type_ = ffi::gst_query_type_get_name((*self.as_ptr()).type_); + CStr::from_ptr(type_).to_str().unwrap() + } + } + #[doc(alias = "get_mut_structure")] #[doc(alias = "gst_query_writable_structure")] #[inline]