add more control binding functions

TODO: move DirectControlBinding into controller package
This commit is contained in:
RSWilli
2024-11-25 23:58:18 +01:00
parent d1b85c0cc8
commit a9410a5533
2 changed files with 6 additions and 2 deletions

View File

@@ -14,7 +14,7 @@ func (cb *ControlBinding) Instance() *C.GstControlBinding {
return C.toGstControlBinding(cb.Unsafe()) return C.toGstControlBinding(cb.Unsafe())
} }
type DirectControlBinding struct{ ControlBinding } type DirectControlBinding struct{ *ControlBinding }
func NewDirectControlBinding(obj *Object, prop string, csource *InterpolationControlSource) *DirectControlBinding { func NewDirectControlBinding(obj *Object, prop string, csource *InterpolationControlSource) *DirectControlBinding {
cprop := C.CString(prop) 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()) cbinding := C.gst_direct_control_binding_new(obj.Instance(), cprop, csource.Instance())
return &DirectControlBinding{ return &DirectControlBinding{
ControlBinding: ControlBinding{ ControlBinding: &ControlBinding{
Object: wrapObject(glib.TransferNone(unsafe.Pointer(cbinding))), Object: wrapObject(glib.TransferNone(unsafe.Pointer(cbinding))),
}, },
} }

View File

@@ -98,6 +98,10 @@ func (o *Object) AddControlBinding(binding *ControlBinding) {
C.gst_object_add_control_binding(o.Instance(), binding.Instance()) 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 // TODO: Consider wrapping GstObject GST_OBJECT_LOCK/GST_OBJECT_UNLOCK functionality
// due to following flags related functionality is based on a regular uint32 field // due to following flags related functionality is based on a regular uint32 field
// and is not considered thread safe // and is not considered thread safe