PROP_DURATION,
PROP_PRIORITY,
PROP_ACTIVE,
+ PROP_LOCKED,
PROP_LAST
};
object, guint64 duration);
static inline gboolean ges_track_object_set_priority_internal (GESTrackObject *
object, guint32 priority);
+static inline void
+ges_track_object_set_locked_internal (GESTrackObject * object, gboolean locked);
static GParamSpec **default_list_children_properties (GESTrackObject * object,
guint * n_properties);
case PROP_ACTIVE:
g_value_set_boolean (value, ges_track_object_is_active (tobj));
break;
+ case PROP_LOCKED:
+ g_value_set_boolean (value, ges_track_object_is_locked (tobj));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
case PROP_ACTIVE:
ges_track_object_set_active (tobj, g_value_get_boolean (value));
break;
+ case PROP_LOCKED:
+ ges_track_object_set_locked_internal (tobj, g_value_get_boolean (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
g_object_class_install_property (object_class, PROP_ACTIVE,
properties[PROP_ACTIVE]);
+ /**
+ * GESTrackObject:locked
+ *
+ * If %TRUE, then moves in sync with its controlling #GESTimelineObject
+ */
+ properties[PROP_LOCKED] =
+ g_param_spec_boolean ("locked", "Locked",
+ "Moves in sync with its controling TimelineObject", TRUE,
+ G_PARAM_READWRITE);
+ g_object_class_install_property (object_class, PROP_LOCKED,
+ properties[PROP_LOCKED]);
+
/**
* GESTrackObject::deep-notify:
* @track_object: a #GESTrackObject
return object->priv->element;
}
+static inline void
+ges_track_object_set_locked_internal (GESTrackObject * object, gboolean locked)
+{
+ object->priv->locked = locked;
+}
+
/**
* ges_track_object_set_locked:
* @object: a #GESTrackObject
GST_DEBUG_OBJECT (object, "%s object", locked ? "Locking" : "Unlocking");
- object->priv->locked = locked;
+ ges_track_object_set_locked_internal (object, locked);
+#if GLIB_CHECK_VERSION(2,26,0)
+ g_object_notify_by_pspec (G_OBJECT (object), properties[PROP_LOCKED]);
+#else
+ g_object_notify (G_OBJECT (object), "locked");
+#endif
+
}
/**