diff --git a/docs/libs/ges-sections.txt b/docs/libs/ges-sections.txt index 8d932fcd61..faff453d43 100644 --- a/docs/libs/ges-sections.txt +++ b/docs/libs/ges-sections.txt @@ -412,3 +412,17 @@ GES_TYPE_TIMELINE_BACKGROUND_SOURCE GES_TYPE_TIMELINE_TITLE_SOURCE GES_TYPE_TRACK_VIDEO_TITLE_SOURCE + +
+GESTrackAudioTitleSource +GESTrackAudioTitleSourceClass +ges_track_audio_title_source_new +ges_track_audio_title_src_get_type + +GES_IS_TRACK_AUDIO_TITLE_SOURCE +GES_IS_TRACK_AUDIO_TITLE_SOURCE_CLASS +GES_TRACK_AUDIO_TITLE_SOURCE +GES_TRACK_AUDIO_TITLE_SOURCE_CLASS +GES_TRACK_AUDIO_TITLE_SOURCE_GET_CLASS +GES_TYPE_TRACK_AUDIO_TITLE_SOURCE +
diff --git a/ges/Makefile.am b/ges/Makefile.am index 0c75345e8a..4edfc79480 100644 --- a/ges/Makefile.am +++ b/ges/Makefile.am @@ -30,6 +30,7 @@ libges_@GST_MAJORMINOR@_la_SOURCES = \ ges-track-audio-background-source.c \ ges-track-title-source.c \ ges-track-video-title-source.c \ + ges-track-audio-title-source.c \ ges-utils.c libges_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/ges/ @@ -58,6 +59,7 @@ libges_@GST_MAJORMINOR@include_HEADERS = \ ges-track-audio-background-source.h \ ges-track-title-source.h \ ges-track-video-title-source.h \ + ges-track-audio-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-audio-title-source.c b/ges/ges-track-audio-title-source.c new file mode 100644 index 0000000000..1c3a12ab4c --- /dev/null +++ b/ges/ges-track-audio-title-source.c @@ -0,0 +1,125 @@ +/* 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. + */ + +/* TODO: this class is nearly identical to the corresponding background + * source. Maybe we chould have a "GESTrackSilentAudioSource" that's shared + * among several timeline objects. There's no particular reason why the track + * object hierarchy has to be exactly parallel to the timeline object + * hierarchy. If anything, that's the motivation for separating them. + */ + +/** + * SECTION:ges-track-audio-title-source + * @short_description: silent audio source associated with stand-alone title + */ + +#include "ges-internal.h" +#include "ges-track-object.h" +#include "ges-track-audio-title-source.h" + +G_DEFINE_TYPE (GESTrackAudioTitleSource, ges_track_audio_title_src, + GES_TYPE_TRACK_TITLE_SOURCE); + +enum +{ + PROP_0, +}; + +static void ges_track_audio_title_src_dispose (GObject * object); + +static void ges_track_audio_title_src_finalize (GObject * object); + +static void ges_track_audio_title_src_get_property (GObject * object, guint + property_id, GValue * value, GParamSpec * pspec); + +static void ges_track_audio_title_src_set_property (GObject * object, guint + property_id, const GValue * value, GParamSpec * pspec); + +static GstElement *ges_track_audio_title_src_create_element (GESTrackTitleSource + * self); + +static void +ges_track_audio_title_src_class_init (GESTrackAudioTitleSourceClass * klass) +{ + GObjectClass *object_class; + GESTrackTitleSourceClass *bg_class; + + object_class = G_OBJECT_CLASS (klass); + bg_class = GES_TRACK_TITLE_SOURCE_CLASS (klass); + + object_class->get_property = ges_track_audio_title_src_get_property; + object_class->set_property = ges_track_audio_title_src_set_property; + object_class->dispose = ges_track_audio_title_src_dispose; + object_class->finalize = ges_track_audio_title_src_finalize; + + bg_class->create_element = ges_track_audio_title_src_create_element; +} + +static void +ges_track_audio_title_src_init (GESTrackAudioTitleSource * self) +{ +} + +static void +ges_track_audio_title_src_dispose (GObject * object) +{ + G_OBJECT_CLASS (ges_track_audio_title_src_parent_class)->dispose (object); +} + +static void +ges_track_audio_title_src_finalize (GObject * object) +{ + G_OBJECT_CLASS (ges_track_audio_title_src_parent_class)->finalize (object); +} + +static void +ges_track_audio_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_audio_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 GstElement * +ges_track_audio_title_src_create_element (GESTrackTitleSource * self) +{ + GstElement *ret; + ret = gst_element_factory_make ("audiotestsrc", NULL); + g_object_set (ret, "volume", (gdouble) 0, NULL); + return ret; +} + +GESTrackAudioTitleSource * +ges_track_audio_title_source_new (void) +{ + return g_object_new (GES_TYPE_TRACK_AUDIO_TITLE_SOURCE, NULL); +} diff --git a/ges/ges-track-audio-title-source.h b/ges/ges-track-audio-title-source.h new file mode 100644 index 0000000000..ae1fc0eb97 --- /dev/null +++ b/ges/ges-track-audio-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_AUDIO_TITLE_SOURCE +#define _GES_TRACK_AUDIO_TITLE_SOURCE + +#include +#include +#include + +G_BEGIN_DECLS + +#define GES_TYPE_TRACK_AUDIO_TITLE_SOURCE ges_track_audio_title_src_get_type() + +#define GES_TRACK_AUDIO_TITLE_SOURCE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_AUDIO_TITLE_SOURCE, GESTrackAudioTitleSource)) + +#define GES_TRACK_AUDIO_TITLE_SOURCE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_AUDIO_TITLE_SOURCE, GESTrackAudioTitleSourceClass)) + +#define GES_IS_TRACK_AUDIO_TITLE_SOURCE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_AUDIO_TITLE_SOURCE)) + +#define GES_IS_TRACK_AUDIO_TITLE_SOURCE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_AUDIO_TITLE_SOURCE)) + +#define GES_TRACK_AUDIO_TITLE_SOURCE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_AUDIO_TITLE_SOURCE, GESTrackAudioTitleSourceClass)) + +/** + * GESTrackAudioTitleSource: + * @parent: parent + * + */ + +struct _GESTrackAudioTitleSource { + GESTrackTitleSource parent; + + /*< public >*/ +}; + +/** + * GESTrackAudioTitleSourceClass: + * @parent_class: parent class + * + */ + +struct _GESTrackAudioTitleSourceClass { + GESTrackTitleSourceClass parent_class; + + /*< public >*/ +}; + +GType ges_track_audio_title_src_get_type (void); + +GESTrackAudioTitleSource* ges_track_audio_title_source_new (void); + +G_END_DECLS + +#endif /* _GES_TRACK_AUDIO_TITLE_SOURCE */ + diff --git a/ges/ges-types.h b/ges/ges-types.h index a117bce011..439f6a91f9 100644 --- a/ges/ges-types.h +++ b/ges/ges-types.h @@ -89,4 +89,8 @@ typedef struct _GESTrackVideoTitleSource GESTrackVideoTitleSource; typedef struct _GESTrackVideoTitleSourceClass GESTrackVideoTitleSourceClass; +typedef struct _GESTrackAudioTitleSource GESTrackAudioTitleSource; +typedef struct _GESTrackAudioTitleSourceClass + GESTrackAudioTitleSourceClass; + #endif /* __GES_TYPES_H__ */ diff --git a/ges/ges.h b/ges/ges.h index 9daf8761b7..1f088ec426 100644 --- a/ges/ges.h +++ b/ges/ges.h @@ -47,6 +47,7 @@ #include #include #include +#include #include