GESTrackObject * obj)
{
guint64 start;
+ GESTrackObjectClass *klass;
+
+ klass = GES_TRACK_OBJECT_GET_CLASS (obj);
+
g_object_get (gnlobject, "start", &start, NULL);
GST_DEBUG ("gnlobject start : %" GST_TIME_FORMAT " current : %"
if (start != obj->start) {
obj->start = start;
+ if (klass->start_changed)
+ klass->start_changed (obj, start);
/* FIXME : emit changed */
}
}
GParamSpec * arg G_GNUC_UNUSED, GESTrackObject * obj)
{
guint64 start;
+ GESTrackObjectClass *klass;
+
+ klass = GES_TRACK_OBJECT_GET_CLASS (obj);
+
g_object_get (gnlobject, "media-start", &start, NULL);
GST_DEBUG ("gnlobject in-point : %" GST_TIME_FORMAT " current : %"
if (start != obj->inpoint) {
obj->inpoint = start;
+ if (klass->media_start_changed)
+ klass->media_start_changed (obj, start);
/* FIXME : emit changed */
}
}
GESTrackObject * obj)
{
guint32 priority;
+ GESTrackObjectClass *klass;
+
+ klass = GES_TRACK_OBJECT_GET_CLASS (obj);
+
g_object_get (gnlobject, "priority", &priority, NULL);
GST_DEBUG ("gnlobject priority : %d current : %d", priority, obj->priority);
if (priority != obj->priority) {
obj->priority = priority;
+ if (klass->priority_changed)
+ klass->priority_changed (obj, priority);
/* FIXME : emit changed */
}
}
GESTrackObject * obj)
{
guint64 duration;
+ GESTrackObjectClass *klass;
+
+ klass = GES_TRACK_OBJECT_GET_CLASS (obj);
+
g_object_get (gnlobject, "duration", &duration, NULL);
GST_DEBUG ("gnlobject duration : %" GST_TIME_FORMAT " current : %"
if (duration != obj->duration) {
obj->duration = duration;
+ if (klass->duration_changed)
+ klass->duration_changed (obj, duration);
/* FIXME : emit changed */
}
}
GESTrackObject * obj)
{
gboolean active;
+ GESTrackObjectClass *klass;
+
+ klass = GES_TRACK_OBJECT_GET_CLASS (obj);
+
g_object_get (gnlobject, "active", &active, NULL);
GST_DEBUG ("gnlobject active : %d current : %d", active, obj->active);
if (active != obj->active) {
obj->active = active;
+ if (klass->active_changed)
+ klass->active_changed (obj, active);
/* FIXME : emit changed */
}
}
* GESTrackObjectClass:
* @parent_class: parent class
* @create_gnl_object: method to create the GNonLin container object.
+ * @start_changed: start property of gnlobject has changed
+ * @media_start_changed: media-start property of gnlobject has changed
+ * @duration_changed: duration property glnobject has changed
+ * @priority_changed: duration property glnobject has changed
+ * @active_changed: active property of gnlobject has changed
*
* Subclasses can override the @create_gnl_object method to override what type
* of GNonLin object will be created.
/*< public >*/
/* virtual methods for subclasses */
gboolean (*create_gnl_object) (GESTrackObject * object);
+
+ void (*start_changed) (GESTrackObject *object, guint64 start);
+ void (*media_start_changed) (GESTrackObject *object, guint64 media_start);
+ void (*priority_changed) (GESTrackObject *object, guint priority);
+ void (*duration_changed) (GESTrackObject *object, guint64 duration);
+ void (*active_changed) (GESTrackObject *object, gboolean active);
};
GType ges_track_object_get_type (void);