From a9410a55339dfad0d27c7b83b0a737d04e556540 Mon Sep 17 00:00:00 2001 From: RSWilli Date: Mon, 25 Nov 2024 23:58:18 +0100 Subject: [PATCH] add more control binding functions TODO: move DirectControlBinding into controller package --- gst/control_binding.go | 4 ++-- gst/gst_object.go | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gst/control_binding.go b/gst/control_binding.go index baaba2d..28f60cb 100644 --- a/gst/control_binding.go +++ b/gst/control_binding.go @@ -14,7 +14,7 @@ func (cb *ControlBinding) Instance() *C.GstControlBinding { return C.toGstControlBinding(cb.Unsafe()) } -type DirectControlBinding struct{ ControlBinding } +type DirectControlBinding struct{ *ControlBinding } func NewDirectControlBinding(obj *Object, prop string, csource *InterpolationControlSource) *DirectControlBinding { cprop := C.CString(prop) @@ -23,7 +23,7 @@ func NewDirectControlBinding(obj *Object, prop string, csource *InterpolationCon cbinding := C.gst_direct_control_binding_new(obj.Instance(), cprop, csource.Instance()) return &DirectControlBinding{ - ControlBinding: ControlBinding{ + ControlBinding: &ControlBinding{ Object: wrapObject(glib.TransferNone(unsafe.Pointer(cbinding))), }, } diff --git a/gst/gst_object.go b/gst/gst_object.go index bbf7aae..6c40c52 100644 --- a/gst/gst_object.go +++ b/gst/gst_object.go @@ -98,6 +98,10 @@ func (o *Object) AddControlBinding(binding *ControlBinding) { C.gst_object_add_control_binding(o.Instance(), binding.Instance()) } +func (o *Object) RemoveControlBinding(binding *ControlBinding) { + C.gst_object_remove_control_binding(o.Instance(), binding.Instance()) +} + // TODO: Consider wrapping GstObject GST_OBJECT_LOCK/GST_OBJECT_UNLOCK functionality // due to following flags related functionality is based on a regular uint32 field // and is not considered thread safe