mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs.git
synced 2024-11-22 01:21:05 +00:00
validate: Bind the gst_validate_get_action_type() function
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1265>
This commit is contained in:
parent
682e1ade07
commit
3c8eeb6482
2 changed files with 23 additions and 0 deletions
|
@ -365,6 +365,25 @@ impl<'a> ActionTypeBuilder<'a> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub trait ActionTypeExtManual: 'static {
|
||||||
|
fn find(name: &str) -> Option<crate::ActionType>;
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ActionTypeExtManual for crate::ActionType {
|
||||||
|
fn find(name: &str) -> Option<crate::ActionType> {
|
||||||
|
assert_initialized_main_thread!();
|
||||||
|
unsafe {
|
||||||
|
let action_type = ffi::gst_validate_get_action_type(name.to_glib_none().0);
|
||||||
|
|
||||||
|
if action_type.is_null() {
|
||||||
|
None
|
||||||
|
} else {
|
||||||
|
Some(from_glib_full(action_type))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use std::{
|
use std::{
|
||||||
|
@ -375,6 +394,7 @@ mod tests {
|
||||||
#[test]
|
#[test]
|
||||||
fn test_action_types() {
|
fn test_action_types() {
|
||||||
gst::init().unwrap();
|
gst::init().unwrap();
|
||||||
|
use crate::prelude::*;
|
||||||
crate::init();
|
crate::init();
|
||||||
|
|
||||||
let failling_action_type = crate::ActionTypeBuilder::new("fails", |_, action| {
|
let failling_action_type = crate::ActionTypeBuilder::new("fails", |_, action| {
|
||||||
|
@ -441,5 +461,7 @@ mod tests {
|
||||||
.default_value("true")
|
.default_value("true")
|
||||||
.add_possible_variable("position")
|
.add_possible_variable("position")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
crate::ActionType::find("succeeds").expect("Failed to find action type");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,5 +60,6 @@ pub mod prelude {
|
||||||
#[doc(hidden)]
|
#[doc(hidden)]
|
||||||
pub use gst::prelude::*;
|
pub use gst::prelude::*;
|
||||||
|
|
||||||
|
pub use crate::action_type::ActionTypeExtManual;
|
||||||
pub use crate::auto::traits::*;
|
pub use crate::auto::traits::*;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue