mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2024-09-29 07:12:24 +00:00
Update for gobject-subclass API changes
This commit is contained in:
parent
88596f933f
commit
2c0e7a9192
7 changed files with 19 additions and 39 deletions
|
@ -206,6 +206,7 @@ pub type BaseSinkClass = ClassStruct<BaseSink>;
|
||||||
// FIXME: Boilerplate
|
// FIXME: Boilerplate
|
||||||
unsafe impl BaseSinkClassExt<BaseSink> for BaseSinkClass {}
|
unsafe impl BaseSinkClassExt<BaseSink> for BaseSinkClass {}
|
||||||
unsafe impl ElementClassExt<BaseSink> for BaseSinkClass {}
|
unsafe impl ElementClassExt<BaseSink> for BaseSinkClass {}
|
||||||
|
unsafe impl ObjectClassExt<BaseSink> for BaseSinkClass {}
|
||||||
|
|
||||||
unsafe impl Send for BaseSink {}
|
unsafe impl Send for BaseSink {}
|
||||||
unsafe impl Sync for BaseSink {}
|
unsafe impl Sync for BaseSink {}
|
||||||
|
@ -291,15 +292,10 @@ box_base_sink_impl!(BaseSinkImpl);
|
||||||
|
|
||||||
impl ObjectType for BaseSink {
|
impl ObjectType for BaseSink {
|
||||||
const NAME: &'static str = "RsBaseSink";
|
const NAME: &'static str = "RsBaseSink";
|
||||||
type GlibType = gst_base_ffi::GstBaseSink;
|
type ParentType = gst_base::BaseSink;
|
||||||
type GlibClassType = gst_base_ffi::GstBaseSinkClass;
|
|
||||||
type ImplType = Box<BaseSinkImpl<Self>>;
|
type ImplType = Box<BaseSinkImpl<Self>>;
|
||||||
type InstanceStructType = ElementInstanceStruct<Self>;
|
type InstanceStructType = ElementInstanceStruct<Self>;
|
||||||
|
|
||||||
fn glib_type() -> glib::Type {
|
|
||||||
unsafe { from_glib(gst_base_ffi::gst_base_sink_get_type()) }
|
|
||||||
}
|
|
||||||
|
|
||||||
fn class_init(token: &ClassInitToken, klass: &mut BaseSinkClass) {
|
fn class_init(token: &ClassInitToken, klass: &mut BaseSinkClass) {
|
||||||
ElementClassExt::override_vfuncs(klass, token);
|
ElementClassExt::override_vfuncs(klass, token);
|
||||||
BaseSinkClassExt::override_vfuncs(klass, token);
|
BaseSinkClassExt::override_vfuncs(klass, token);
|
||||||
|
|
|
@ -257,6 +257,7 @@ pub type BaseSrcClass = ClassStruct<BaseSrc>;
|
||||||
// FIXME: Boilerplate
|
// FIXME: Boilerplate
|
||||||
unsafe impl BaseSrcClassExt<BaseSrc> for BaseSrcClass {}
|
unsafe impl BaseSrcClassExt<BaseSrc> for BaseSrcClass {}
|
||||||
unsafe impl ElementClassExt<BaseSrc> for BaseSrcClass {}
|
unsafe impl ElementClassExt<BaseSrc> for BaseSrcClass {}
|
||||||
|
unsafe impl ObjectClassExt<BaseSrc> for BaseSrcClass {}
|
||||||
|
|
||||||
unsafe impl Send for BaseSrc {}
|
unsafe impl Send for BaseSrc {}
|
||||||
unsafe impl Sync for BaseSrc {}
|
unsafe impl Sync for BaseSrc {}
|
||||||
|
@ -362,16 +363,12 @@ box_base_src_impl!(BaseSrcImpl);
|
||||||
|
|
||||||
impl ObjectType for BaseSrc {
|
impl ObjectType for BaseSrc {
|
||||||
const NAME: &'static str = "RsBaseSrc";
|
const NAME: &'static str = "RsBaseSrc";
|
||||||
type GlibType = gst_base_ffi::GstBaseSrc;
|
type ParentType = gst_base::BaseSrc;
|
||||||
type GlibClassType = gst_base_ffi::GstBaseSrcClass;
|
|
||||||
type ImplType = Box<BaseSrcImpl<Self>>;
|
type ImplType = Box<BaseSrcImpl<Self>>;
|
||||||
type InstanceStructType = ElementInstanceStruct<Self>;
|
type InstanceStructType = ElementInstanceStruct<Self>;
|
||||||
|
|
||||||
fn glib_type() -> glib::Type {
|
|
||||||
unsafe { from_glib(gst_base_ffi::gst_base_src_get_type()) }
|
|
||||||
}
|
|
||||||
|
|
||||||
fn class_init(token: &ClassInitToken, klass: &mut BaseSrcClass) {
|
fn class_init(token: &ClassInitToken, klass: &mut BaseSrcClass) {
|
||||||
|
ObjectClassExt::override_vfuncs(klass, token);
|
||||||
ElementClassExt::override_vfuncs(klass, token);
|
ElementClassExt::override_vfuncs(klass, token);
|
||||||
BaseSrcClassExt::override_vfuncs(klass, token);
|
BaseSrcClassExt::override_vfuncs(klass, token);
|
||||||
}
|
}
|
||||||
|
|
|
@ -335,6 +335,7 @@ pub type BaseTransformClass = ClassStruct<BaseTransform>;
|
||||||
// FIXME: Boilerplate
|
// FIXME: Boilerplate
|
||||||
unsafe impl BaseTransformClassExt<BaseTransform> for BaseTransformClass {}
|
unsafe impl BaseTransformClassExt<BaseTransform> for BaseTransformClass {}
|
||||||
unsafe impl ElementClassExt<BaseTransform> for BaseTransformClass {}
|
unsafe impl ElementClassExt<BaseTransform> for BaseTransformClass {}
|
||||||
|
unsafe impl ObjectClassExt<BaseTransform> for BaseTransformClass {}
|
||||||
|
|
||||||
unsafe impl Send for BaseTransform {}
|
unsafe impl Send for BaseTransform {}
|
||||||
unsafe impl Sync for BaseTransform {}
|
unsafe impl Sync for BaseTransform {}
|
||||||
|
@ -424,15 +425,10 @@ box_base_transform_impl!(BaseTransformImpl);
|
||||||
|
|
||||||
impl ObjectType for BaseTransform {
|
impl ObjectType for BaseTransform {
|
||||||
const NAME: &'static str = "RsBaseTransform";
|
const NAME: &'static str = "RsBaseTransform";
|
||||||
type GlibType = gst_base_ffi::GstBaseTransform;
|
type ParentType = gst_base::BaseTransform;
|
||||||
type GlibClassType = gst_base_ffi::GstBaseTransformClass;
|
|
||||||
type ImplType = Box<BaseTransformImpl<Self>>;
|
type ImplType = Box<BaseTransformImpl<Self>>;
|
||||||
type InstanceStructType = ElementInstanceStruct<Self>;
|
type InstanceStructType = ElementInstanceStruct<Self>;
|
||||||
|
|
||||||
fn glib_type() -> glib::Type {
|
|
||||||
unsafe { from_glib(gst_base_ffi::gst_base_transform_get_type()) }
|
|
||||||
}
|
|
||||||
|
|
||||||
fn class_init(token: &ClassInitToken, klass: &mut BaseTransformClass) {
|
fn class_init(token: &ClassInitToken, klass: &mut BaseTransformClass) {
|
||||||
ElementClassExt::override_vfuncs(klass, token);
|
ElementClassExt::override_vfuncs(klass, token);
|
||||||
BaseTransformClassExt::override_vfuncs(klass, token);
|
BaseTransformClassExt::override_vfuncs(klass, token);
|
||||||
|
|
|
@ -111,6 +111,7 @@ pub type BinClass = ClassStruct<Bin>;
|
||||||
// FIXME: Boilerplate
|
// FIXME: Boilerplate
|
||||||
unsafe impl BinClassExt<Bin> for BinClass {}
|
unsafe impl BinClassExt<Bin> for BinClass {}
|
||||||
unsafe impl ElementClassExt<Bin> for BinClass {}
|
unsafe impl ElementClassExt<Bin> for BinClass {}
|
||||||
|
unsafe impl ObjectClassExt<Bin> for BinClass {}
|
||||||
|
|
||||||
unsafe impl Send for Bin {}
|
unsafe impl Send for Bin {}
|
||||||
unsafe impl Sync for Bin {}
|
unsafe impl Sync for Bin {}
|
||||||
|
@ -145,15 +146,10 @@ box_bin_impl!(BinImpl);
|
||||||
|
|
||||||
impl ObjectType for Bin {
|
impl ObjectType for Bin {
|
||||||
const NAME: &'static str = "RsBin";
|
const NAME: &'static str = "RsBin";
|
||||||
type GlibType = gst_ffi::GstBin;
|
type ParentType = gst::Bin;
|
||||||
type GlibClassType = gst_ffi::GstBinClass;
|
|
||||||
type ImplType = Box<BinImpl<Self>>;
|
type ImplType = Box<BinImpl<Self>>;
|
||||||
type InstanceStructType = ElementInstanceStruct<Self>;
|
type InstanceStructType = ElementInstanceStruct<Self>;
|
||||||
|
|
||||||
fn glib_type() -> glib::Type {
|
|
||||||
unsafe { from_glib(gst_ffi::gst_bin_get_type()) }
|
|
||||||
}
|
|
||||||
|
|
||||||
fn class_init(token: &ClassInitToken, klass: &mut BinClass) {
|
fn class_init(token: &ClassInitToken, klass: &mut BinClass) {
|
||||||
ElementClassExt::override_vfuncs(klass, token);
|
ElementClassExt::override_vfuncs(klass, token);
|
||||||
BinClassExt::override_vfuncs(klass, token);
|
BinClassExt::override_vfuncs(klass, token);
|
||||||
|
|
|
@ -207,6 +207,7 @@ pub type ElementClass = ClassStruct<Element>;
|
||||||
|
|
||||||
// FIXME: Boilerplate
|
// FIXME: Boilerplate
|
||||||
unsafe impl ElementClassExt<Element> for ElementClass {}
|
unsafe impl ElementClassExt<Element> for ElementClass {}
|
||||||
|
unsafe impl ObjectClassExt<Element> for ElementClass {}
|
||||||
|
|
||||||
unsafe impl Send for Element {}
|
unsafe impl Send for Element {}
|
||||||
unsafe impl Sync for Element {}
|
unsafe impl Sync for Element {}
|
||||||
|
@ -261,17 +262,13 @@ box_element_impl!(ElementImpl);
|
||||||
|
|
||||||
impl ObjectType for Element {
|
impl ObjectType for Element {
|
||||||
const NAME: &'static str = "RsElement";
|
const NAME: &'static str = "RsElement";
|
||||||
type GlibType = gst_ffi::GstElement;
|
type ParentType = gst::Element;
|
||||||
type GlibClassType = gst_ffi::GstElementClass;
|
|
||||||
type ImplType = Box<ElementImpl<Self>>;
|
type ImplType = Box<ElementImpl<Self>>;
|
||||||
type InstanceStructType = ElementInstanceStruct<Self>;
|
type InstanceStructType = ElementInstanceStruct<Self>;
|
||||||
|
|
||||||
fn glib_type() -> glib::Type {
|
|
||||||
unsafe { from_glib(gst_ffi::gst_element_get_type()) }
|
|
||||||
}
|
|
||||||
|
|
||||||
fn class_init(token: &ClassInitToken, klass: &mut ElementClass) {
|
fn class_init(token: &ClassInitToken, klass: &mut ElementClass) {
|
||||||
klass.override_vfuncs(token);
|
ObjectClassExt::override_vfuncs(klass, token);
|
||||||
|
ElementClassExt::override_vfuncs(klass, token);
|
||||||
}
|
}
|
||||||
|
|
||||||
object_type_fns!();
|
object_type_fns!();
|
||||||
|
|
|
@ -2,10 +2,11 @@ use std::ptr;
|
||||||
use std::sync::atomic::AtomicBool;
|
use std::sync::atomic::AtomicBool;
|
||||||
|
|
||||||
use gobject_subclass::object::*;
|
use gobject_subclass::object::*;
|
||||||
|
use glib::wrapper::Wrapper;
|
||||||
|
|
||||||
#[repr(C)]
|
#[repr(C)]
|
||||||
pub struct ElementInstanceStruct<T: ObjectType> {
|
pub struct ElementInstanceStruct<T: ObjectType> {
|
||||||
_parent: T::GlibType,
|
_parent: <T::ParentType as Wrapper>::GlibType,
|
||||||
_imp: ptr::NonNull<T::ImplType>,
|
_imp: ptr::NonNull<T::ImplType>,
|
||||||
|
|
||||||
_panicked: AtomicBool,
|
_panicked: AtomicBool,
|
||||||
|
@ -16,7 +17,7 @@ pub trait PanicPoison {
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe impl<T: ObjectType> Instance<T> for ElementInstanceStruct<T> {
|
unsafe impl<T: ObjectType> Instance<T> for ElementInstanceStruct<T> {
|
||||||
fn parent(&self) -> &T::GlibType {
|
fn parent(&self) -> &<T::ParentType as Wrapper>::GlibType {
|
||||||
&self._parent
|
&self._parent
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -70,6 +70,7 @@ pub type PipelineClass = ClassStruct<Pipeline>;
|
||||||
unsafe impl PipelineClassExt<Pipeline> for PipelineClass {}
|
unsafe impl PipelineClassExt<Pipeline> for PipelineClass {}
|
||||||
unsafe impl BinClassExt<Pipeline> for PipelineClass {}
|
unsafe impl BinClassExt<Pipeline> for PipelineClass {}
|
||||||
unsafe impl ElementClassExt<Pipeline> for PipelineClass {}
|
unsafe impl ElementClassExt<Pipeline> for PipelineClass {}
|
||||||
|
unsafe impl ObjectClassExt<Pipeline> for PipelineClass {}
|
||||||
|
|
||||||
unsafe impl Send for Pipeline {}
|
unsafe impl Send for Pipeline {}
|
||||||
unsafe impl Sync for Pipeline {}
|
unsafe impl Sync for Pipeline {}
|
||||||
|
@ -90,16 +91,12 @@ box_pipeline_impl!(PipelineImpl);
|
||||||
|
|
||||||
impl ObjectType for Pipeline {
|
impl ObjectType for Pipeline {
|
||||||
const NAME: &'static str = "RsPipeline";
|
const NAME: &'static str = "RsPipeline";
|
||||||
type GlibType = gst_ffi::GstPipeline;
|
type ParentType = gst::Pipeline;
|
||||||
type GlibClassType = gst_ffi::GstPipelineClass;
|
|
||||||
type ImplType = Box<PipelineImpl<Self>>;
|
type ImplType = Box<PipelineImpl<Self>>;
|
||||||
type InstanceStructType = ElementInstanceStruct<Self>;
|
type InstanceStructType = ElementInstanceStruct<Self>;
|
||||||
|
|
||||||
fn glib_type() -> glib::Type {
|
|
||||||
unsafe { from_glib(gst_ffi::gst_pipeline_get_type()) }
|
|
||||||
}
|
|
||||||
|
|
||||||
fn class_init(token: &ClassInitToken, klass: &mut PipelineClass) {
|
fn class_init(token: &ClassInitToken, klass: &mut PipelineClass) {
|
||||||
|
ObjectClassExt::override_vfuncs(klass, token);
|
||||||
ElementClassExt::override_vfuncs(klass, token);
|
ElementClassExt::override_vfuncs(klass, token);
|
||||||
BinClassExt::override_vfuncs(klass, token);
|
BinClassExt::override_vfuncs(klass, token);
|
||||||
PipelineClassExt::override_vfuncs(klass, token);
|
PipelineClassExt::override_vfuncs(klass, token);
|
||||||
|
|
Loading…
Reference in a new issue