From 172e22c4b3eee06305c6a197a0709777b9eef1b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 6 Feb 2023 15:21:02 +0200 Subject: [PATCH] gstreamer: Implement `glib::HasParamSpec` for our custom pspecs This allows using `gst::Fraction` / `gst::Array` properties via the new properties macro. Part-of: --- gstreamer/src/param_spec.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gstreamer/src/param_spec.rs b/gstreamer/src/param_spec.rs index ce99fcaea..72ef6c51b 100644 --- a/gstreamer/src/param_spec.rs +++ b/gstreamer/src/param_spec.rs @@ -28,6 +28,17 @@ impl std::ops::Deref for ParamSpecFraction { unsafe impl glib::ParamSpecType for ParamSpecFraction {} +impl glib::HasParamSpec for crate::Fraction { + type ParamSpec = ParamSpecFraction; + + type SetValue = crate::Fraction; + type BuilderFn = for<'a> fn(&'a str) -> ParamSpecFractionBuilder; + + fn param_spec_builder() -> Self::BuilderFn { + ParamSpecFraction::builder + } +} + #[doc(hidden)] impl FromGlibPtrFull<*mut gobject_ffi::GParamSpec> for ParamSpecFraction { #[inline] @@ -228,6 +239,17 @@ impl std::ops::Deref for ParamSpecArray { unsafe impl glib::ParamSpecType for ParamSpecArray {} +impl glib::HasParamSpec for crate::Array { + type ParamSpec = ParamSpecArray; + + type SetValue = crate::Array; + type BuilderFn = for<'a> fn(&'a str) -> ParamSpecArrayBuilder; + + fn param_spec_builder() -> Self::BuilderFn { + ParamSpecArray::builder + } +} + #[doc(hidden)] impl FromGlibPtrFull<*mut gobject_ffi::GParamSpec> for ParamSpecArray { #[inline]