diff --git a/ges/Makefile.am b/ges/Makefile.am index 34472350b4..6368461082 100644 --- a/ges/Makefile.am +++ b/ges/Makefile.am @@ -20,6 +20,7 @@ libges_@GST_MAJORMINOR@_la_SOURCES = \ ges-timeline-transition.c \ ges-timeline-test-source.c \ ges-timeline-title-source.c \ + ges-timeline-overlay.c \ ges-timeline-text-overlay.c \ ges-track.c \ ges-track-object.c \ diff --git a/ges/ges-timeline-overlay.c b/ges/ges-timeline-overlay.c new file mode 100644 index 0000000000..541cd4561c --- /dev/null +++ b/ges/ges-timeline-overlay.c @@ -0,0 +1,90 @@ +/* GStreamer Editing Services + * Copyright (C) 2010 Brandon Lewis + * 2009 Nokia Corporation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:ges-timeline-overlay + * @short_description: Base Class for overlays of a #GESTimelineLayer + * + * Overlays are objects which modify the underlying layer(s). Examples of + * overlays include text, image watermarks, or audio dubbing. Transitions, + * which change from one source to another over time, are not considered + * overlays. + */ + +#include "ges-internal.h" +#include "ges-timeline-object.h" +#include "ges-timeline-overlay.h" + +G_DEFINE_TYPE (GESTimelineOverlay, ges_timeline_overlay, + GES_TYPE_TIMELINE_OBJECT); + +static void +ges_timeline_overlay_get_property (GObject * object, guint property_id, + GValue * value, GParamSpec * pspec) +{ + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +ges_timeline_overlay_set_property (GObject * object, guint property_id, + const GValue * value, GParamSpec * pspec) +{ + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +ges_timeline_overlay_dispose (GObject * object) +{ + G_OBJECT_CLASS (ges_timeline_overlay_parent_class)->dispose (object); +} + +static void +ges_timeline_overlay_finalize (GObject * object) +{ + G_OBJECT_CLASS (ges_timeline_overlay_parent_class)->finalize (object); +} + +static void +ges_timeline_overlay_class_init (GESTimelineOverlayClass * klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->get_property = ges_timeline_overlay_get_property; + object_class->set_property = ges_timeline_overlay_set_property; + object_class->dispose = ges_timeline_overlay_dispose; + object_class->finalize = ges_timeline_overlay_finalize; +} + +static void +ges_timeline_overlay_init (GESTimelineOverlay * self) +{ +} + +GESTimelineOverlay * +ges_timeline_overlay_new (void) +{ + return g_object_new (GES_TYPE_TIMELINE_OVERLAY, NULL); +} diff --git a/ges/ges-timeline-overlay.h b/ges/ges-timeline-overlay.h new file mode 100644 index 0000000000..ddb225747c --- /dev/null +++ b/ges/ges-timeline-overlay.h @@ -0,0 +1,74 @@ +/* GStreamer Editing Services + * Copyright (C) 2010 Brandon Lewis + * 2009 Nokia Corporation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef _GES_TIMELINE_OVERLAY +#define _GES_TIMELINE_OVERLAY + +#include +#include +#include + +G_BEGIN_DECLS + +#define GES_TYPE_TIMELINE_OVERLAY ges_timeline_overlay_get_type() + +#define GES_TIMELINE_OVERLAY(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TIMELINE_OVERLAY, GESTimelineOverlay)) + +#define GES_TIMELINE_OVERLAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TIMELINE_OVERLAY, GESTimelineOverlayClass)) + +#define GES_IS_TIMELINE_OVERLAY(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TIMELINE_OVERLAY)) + +#define GES_IS_TIMELINE_OVERLAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TIMELINE_OVERLAY)) + +#define GES_TIMELINE_OVERLAY_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TIMELINE_OVERLAY, GESTimelineOverlayClass)) + +/** + * GESTimelineOverlay: + * + */ + +struct _GESTimelineOverlay { + GESTimelineObject parent; + /*< public >*/ +}; + +/** + * GESTimelineOverlayClass: + * @parent_class: parent class + */ + +struct _GESTimelineOverlayClass { + GESTimelineObjectClass parent_class; + /*< public >*/ +}; + +GType ges_timeline_overlay_get_type (void); + +GESTimelineOverlay* ges_timeline_overlay_new (void); + +G_END_DECLS + +#endif /* _GES_TIMELINE_OVERLAY */ + diff --git a/ges/ges-types.h b/ges/ges-types.h index f24552b2e7..2b8b788184 100644 --- a/ges/ges-types.h +++ b/ges/ges-types.h @@ -54,6 +54,9 @@ typedef struct _GESTimelineTestSourceClass GESTimelineTestSourceClass; typedef struct _GESTimelineTitleSource GESTimelineTitleSource; typedef struct _GESTimelineTitleSourceClass GESTimelineTitleSourceClass; +typedef struct _GESTimelineOverlay GESTimelineOverlay; +typedef struct _GESTimelineOverlayClass GESTimelineOverlayClass; + typedef struct _GESTimelineTextOverlay GESTimelineTextOverlay; typedef struct _GESTimelineTextOverlayClass GESTimelineTextOverlayClass; diff --git a/ges/ges.h b/ges/ges.h index 8e7d3dc2ee..9e10fbd3ce 100644 --- a/ges/ges.h +++ b/ges/ges.h @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include