[rhythmbox] add 'prepare-source' signal to player backends
- From: Jonathan Matthew <jmatthew src gnome org>
- To: svn-commits-list gnome org
- Subject: [rhythmbox] add 'prepare-source' signal to player backends
- Date: Tue, 2 Jun 2009 06:47:28 -0400 (EDT)
commit 02682c1c6bfc42142234b821108edcf9e7f2ef9e
Author: Jonathan Matthew <jonathan d14n org>
Date: Tue Jun 2 20:23:09 2009 +1000
add 'prepare-source' signal to player backends
This hook allows plugins to set any properties that may be required on
the GStreamer source element that cannot be set through the URI. The
only current example of this is setting the device property on cdda
source elements.
---
backends/gstreamer/rb-player-gst-xfade.c | 11 +++++++++++
backends/gstreamer/rb-player-gst-xfade.h | 3 +++
backends/gstreamer/rb-player-gst.c | 11 +++++++++++
backends/gstreamer/rb-player-gst.h | 3 +++
lib/rb-marshal.list | 1 +
5 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/backends/gstreamer/rb-player-gst-xfade.c b/backends/gstreamer/rb-player-gst-xfade.c
index 0a30be4..dc996d3 100644
--- a/backends/gstreamer/rb-player-gst-xfade.c
+++ b/backends/gstreamer/rb-player-gst-xfade.c
@@ -240,6 +240,7 @@ enum
enum
{
+ PREPARE_SOURCE,
CAN_REUSE_STREAM,
REUSE_STREAM,
MISSING_PLUGINS,
@@ -668,6 +669,16 @@ rb_player_gst_xfade_class_init (RBPlayerGstXFadeClass *klass)
GST_TYPE_BUS,
G_PARAM_READABLE));
+ signals[PREPARE_SOURCE] =
+ g_signal_new ("prepare-source",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (RBPlayerGstXFadeClass, prepare_source),
+ NULL, NULL,
+ rb_marshal_VOID__STRING_OBJECT,
+ G_TYPE_NONE,
+ 2,
+ G_TYPE_STRING, GST_TYPE_ELEMENT);
signals[CAN_REUSE_STREAM] =
g_signal_new ("can-reuse-stream",
G_OBJECT_CLASS_TYPE (object_class),
diff --git a/backends/gstreamer/rb-player-gst-xfade.h b/backends/gstreamer/rb-player-gst-xfade.h
index b1749c9..db63fb1 100644
--- a/backends/gstreamer/rb-player-gst-xfade.h
+++ b/backends/gstreamer/rb-player-gst-xfade.h
@@ -53,6 +53,9 @@ typedef struct
{
GObjectClass obj_class;
+ void (*prepare_source) (RBPlayerGstXFade *player,
+ const char *stream_uri,
+ GstElement *source);
gboolean (*can_reuse_stream) (RBPlayerGstXFade *player,
const char *new_uri,
const char *stream_uri,
diff --git a/backends/gstreamer/rb-player-gst.c b/backends/gstreamer/rb-player-gst.c
index 250c786..6657341 100644
--- a/backends/gstreamer/rb-player-gst.c
+++ b/backends/gstreamer/rb-player-gst.c
@@ -73,6 +73,7 @@ enum
enum
{
+ PREPARE_SOURCE,
CAN_REUSE_STREAM,
REUSE_STREAM,
MISSING_PLUGINS,
@@ -1374,6 +1375,16 @@ rb_player_gst_class_init (RBPlayerGstClass *klass)
64, MAX_NETWORK_BUFFER_SIZE, 128,
G_PARAM_READWRITE));
+ signals[PREPARE_SOURCE] =
+ g_signal_new ("prepare-source",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (RBPlayerGstClass, prepare_source),
+ NULL, NULL,
+ rb_marshal_VOID__STRING_OBJECT,
+ G_TYPE_NONE,
+ 2,
+ G_TYPE_STRING, GST_TYPE_ELEMENT);
signals[CAN_REUSE_STREAM] =
g_signal_new ("can-reuse-stream",
G_OBJECT_CLASS_TYPE (object_class),
diff --git a/backends/gstreamer/rb-player-gst.h b/backends/gstreamer/rb-player-gst.h
index 5decc55..03e17e7 100644
--- a/backends/gstreamer/rb-player-gst.h
+++ b/backends/gstreamer/rb-player-gst.h
@@ -48,6 +48,9 @@ struct _RBPlayerGstClass
{
GObjectClass obj_class;
+ void (*prepare_source) (RBPlayerGst *player,
+ const char *stream_uri,
+ GstElement *source);
gboolean (*can_reuse_stream) (RBPlayerGst *player,
const char *new_uri,
const char *stream_uri,
diff --git a/lib/rb-marshal.list b/lib/rb-marshal.list
index 17068c4..32db07b 100644
--- a/lib/rb-marshal.list
+++ b/lib/rb-marshal.list
@@ -35,6 +35,7 @@ VOID:POINTER,UINT
VOID:POINTER,ULONG
VOID:STRING,DOUBLE
VOID:STRING,INT
+VOID:STRING,OBJECT
VOID:STRING,POINTER
VOID:STRING,STRING
VOID:STRING,STRING,OBJECT
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]