From a9be66a91a72f4371d1bd9b1eff5055904dfe308 Mon Sep 17 00:00:00 2001 From: Brandon Lewis Date: Mon, 14 Jun 2010 15:34:08 +0200 Subject: [PATCH] check in skeletal GESTrackTitleSource --- ges/Makefile.am | 2 + ges/ges-track-title-source.c | 130 +++++++++++++++++++++++++++++++++++++++++++ ges/ges-track-title-source.h | 78 ++++++++++++++++++++++++++ ges/ges-types.h | 3 + 4 files changed, 213 insertions(+) create mode 100644 ges/ges-track-title-source.c create mode 100644 ges/ges-track-title-source.h diff --git a/ges/Makefile.am b/ges/Makefile.am index 91ebbb1..43e4f31 100644 --- a/ges/Makefile.am +++ b/ges/Makefile.am @@ -28,6 +28,7 @@ libges_@GST_MAJORMINOR@_la_SOURCES = \ ges-track-background-source.c \ ges-track-video-background-source.c \ ges-track-audio-background-source.c \ + ges-track-title-source.c \ ges-utils.c libges_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/ges/ @@ -54,6 +55,7 @@ libges_@GST_MAJORMINOR@include_HEADERS = \ ges-track-background-source.h \ ges-track-video-background-source.h \ ges-track-audio-background-source.h \ + ges-track-title-source.h \ ges-utils.h libges_@GST_MAJORMINOR@_la_CFLAGS = -I$(top_srcdir) $(GST_PROFILE_CFLAGS) $(GST_DISCOVERER_CFLAGS) $(GST_CONTROLLER_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) diff --git a/ges/ges-track-title-source.c b/ges/ges-track-title-source.c new file mode 100644 index 0000000..7db095c --- /dev/null +++ b/ges/ges-track-title-source.c @@ -0,0 +1,130 @@ +/* GStreamer Editing Services + * Copyright (C) 2009 Edward Hervey + * 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-track-source + * @short_description: Base Class for single-media sources + */ + +#include "ges-internal.h" +#include "ges-track-title-source.h" + +G_DEFINE_TYPE (GESTrackTitleSource, ges_track_title_src, GES_TYPE_TRACK_SOURCE); + +static void ges_track_title_src_get_property (GObject * object, + guint property_id, GValue * value, GParamSpec * pspec); + +static void ges_track_title_src_dispose (GObject *); + +static void ges_track_title_src_finalize (GObject *); + +static void ges_track_title_src_set_property (GObject * object, + guint property_id, const GValue * value, GParamSpec * pspec); + +static gboolean ges_track_title_src_create_gnl_object (GESTrackObject * object); + +static GstElement + * ges_track_title_src_create_element_func (GESTrackTitleSource * object); + +enum +{ + PROP_0, +}; + +static void +ges_track_title_src_class_init (GESTrackTitleSourceClass * klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GESTrackObjectClass *track_class = GES_TRACK_OBJECT_CLASS (klass); + + object_class->get_property = ges_track_title_src_get_property; + object_class->set_property = ges_track_title_src_set_property; + object_class->dispose = ges_track_title_src_dispose; + object_class->finalize = ges_track_title_src_finalize; + + track_class->create_gnl_object = ges_track_title_src_create_gnl_object; + klass->create_element = ges_track_title_src_create_element_func; +} + +static void +ges_track_title_src_dispose (GObject * object) +{ + G_OBJECT_CLASS (ges_track_title_src_parent_class)->dispose (object); +} + +static void +ges_track_title_src_init (GESTrackTitleSource * self) +{ + self->element = NULL; +} + +static void +ges_track_title_src_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_track_title_src_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_track_title_src_finalize (GObject * object) +{ + G_OBJECT_CLASS (ges_track_title_src_parent_class)->finalize (object); +} + +static gboolean +ges_track_title_src_create_gnl_object (GESTrackObject * object) +{ + GESTrackTitleSourceClass *klass; + GESTrackTitleSource *self; + + self = GES_TRACK_TITLE_SOURCE (object); + klass = GES_TRACK_TITLE_SOURCE_GET_CLASS (object); + + object->gnlobject = gst_element_factory_make ("gnlsource", NULL); + self->element = klass->create_element (GES_TRACK_TITLE_SOURCE (object)); + gst_bin_add (GST_BIN (object->gnlobject), self->element); + + return TRUE; +} + +static GstElement * +ges_track_title_src_create_element_func (GESTrackTitleSource * self) +{ + return gst_element_factory_make ("fakesrc", NULL); +} + +GESTrackTitleSource * +ges_track_title_source_new (void) +{ + return g_object_new (GES_TYPE_TRACK_TITLE_SOURCE, NULL); +} diff --git a/ges/ges-track-title-source.h b/ges/ges-track-title-source.h new file mode 100644 index 0000000..a721899 --- /dev/null +++ b/ges/ges-track-title-source.h @@ -0,0 +1,78 @@ +/* GStreamer Editing Services + * Copyright (C) 2010 Brandon Lewis + * 2010 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_TRACK_TITLE_SOURCE +#define _GES_TRACK_TITLE_SOURCE + +#include +#include +#include +#include + +G_BEGIN_DECLS + +#define GES_TYPE_TRACK_TITLE_SOURCE ges_track_title_src_get_type() + +#define GES_TRACK_TITLE_SOURCE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_TITLE_SOURCE, GESTrackTitleSource)) + +#define GES_TRACK_TITLE_SOURCE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_TITLE_SOURCE, GESTrackTitleSourceClass)) + +#define GES_IS_TRACK_TITLE_SOURCE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_TITLE_SOURCE)) + +#define GES_IS_TRACK_TITLE_SOURCE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_TITLE_SOURCE)) + +#define GES_TRACK_TITLE_SOURCE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_TITLE_SOURCE, GESTrackTitleSourceClass)) +/** + * GESTrackTitleSource: + * @uri: #gchar *, the URI of the media file to play + * + */ +struct _GESTrackTitleSource { + GESTrackSource parent; + + /*< public >*/ + GstElement *element; +}; + +/** + * GESTrackTitleSourceClass: + * @parent_class: parent class + */ + +struct _GESTrackTitleSourceClass { + GESTrackSourceClass parent_class; + + /* */ + GstElement* (*create_element) (GESTrackTitleSource *obj); +}; + +GType ges_track_title_src_get_type (void); + +GESTrackTitleSource* ges_track_title_source_new (void); + +G_END_DECLS + +#endif /* _GES_TRACK_TITLE_SOURCE */ + diff --git a/ges/ges-types.h b/ges/ges-types.h index 81ec524..eef81d2 100644 --- a/ges/ges-types.h +++ b/ges/ges-types.h @@ -81,5 +81,8 @@ typedef struct _GESTrackAudioBackgroundSource GESTrackAudioBackgroundSource; typedef struct _GESTrackAudioBackgroundSourceClass GESTrackAudioBackgroundSourceClass; +typedef struct _GESTrackTitleSource GESTrackTitleSource; +typedef struct _GESTrackTitleSourceClass + GESTrackTitleSourceClass; #endif /* __GES_TYPES_H__ */ -- 2.7.4