diff options
author | Robert McQueen <robert.mcqueen@collabora.co.uk> | 2006-09-10 15:14:47 +0000 |
---|---|---|
committer | Robert McQueen <robert.mcqueen@collabora.co.uk> | 2006-09-10 15:14:47 +0000 |
commit | c5754763ef434d304915251e8dbf0e6a2181fdfd (patch) | |
tree | ebdadc3f3719c63fb339f5fd9635cbaf2201849b | |
parent | b0ca9ef91bcbbd83c1f8fb254644ac47264debc3 (diff) |
GabbleMedia{Channel,Session,Stream}: merge ListStreams/StreamAdded/StreamStateChanged stuff with spec 0.13.4 and new code generator
-rw-r--r-- | src/gabble-media-channel.c | 23 | ||||
-rw-r--r-- | src/gabble-media-session.c | 3 | ||||
-rw-r--r-- | src/gabble-media-stream.c | 28 | ||||
-rw-r--r-- | src/telepathy-constants.h | 6 |
4 files changed, 47 insertions, 13 deletions
diff --git a/src/gabble-media-channel.c b/src/gabble-media-channel.c index e2e6f0ddd..60b4eadf0 100644 --- a/src/gabble-media-channel.c +++ b/src/gabble-media-channel.c @@ -56,6 +56,7 @@ G_TYPE_UINT, \ G_TYPE_UINT, \ G_TYPE_UINT, \ + G_TYPE_UINT, \ G_TYPE_INVALID)) G_DEFINE_TYPE_WITH_CODE (GabbleMediaChannel, gabble_media_channel, @@ -216,7 +217,9 @@ create_session (GabbleMediaChannel *channel, GabbleHandle peer, const gchar *pee priv->session = session; - g_signal_emit (channel, signals[NEW_ICE_SESSION_HANDLER], 0, + priv->streams = g_ptr_array_sized_new (1); + + g_signal_emit (channel, signals[NEW_SESSION_HANDLER], 0, object_path, "rtp"); g_free (object_path); @@ -871,14 +874,17 @@ gabble_media_channel_get_session_handlers (GabbleMediaChannel *self, * * Returns: TRUE if successful, FALSE if an error was thrown. */ -gboolean gabble_media_channel_list_streams (GabbleMediaChannel *obj, GPtrArray ** ret, GError **error) +gboolean +gabble_media_channel_list_streams (GabbleMediaChannel *self, + GPtrArray **ret, + GError **error) { GabbleMediaChannelPrivate *priv; guint i; - g_assert (GABBLE_IS_MEDIA_CHANNEL (obj)); + g_assert (GABBLE_IS_MEDIA_CHANNEL (self)); - priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (obj); + priv = GABBLE_MEDIA_CHANNEL_GET_PRIVATE (self); *ret = g_ptr_array_sized_new (priv->streams->len); @@ -893,8 +899,10 @@ gboolean gabble_media_channel_list_streams (GabbleMediaChannel *obj, GPtrArray * guint id; GabbleHandle peer; TpCodecMediaType type; - TpMediaStreamDirection direction = TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL; /* FIXME */ TpMediaStreamState state; + TpMediaStreamDirection direction = + TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL; /* FIXME */ + TpMediaStreamPendingSend pending = TP_MEDIA_STREAM_PENDING_NONE; g_object_get (stream, "id", &id, "media-type", &type, "state", &state, NULL); @@ -909,8 +917,9 @@ gboolean gabble_media_channel_list_streams (GabbleMediaChannel *obj, GPtrArray * 0, id, 1, peer, 2, type, - 3, direction, - 4, state, + 3, state, + 4, direction, + 5, pending, G_MAXUINT); g_ptr_array_add (*ret, g_value_get_boxed (&entry)); diff --git a/src/gabble-media-session.c b/src/gabble-media-session.c index d54c2bb8d..dfcc73d92 100644 --- a/src/gabble-media-session.c +++ b/src/gabble-media-session.c @@ -59,7 +59,8 @@ G_DEFINE_TYPE(GabbleMediaSession, gabble_media_session, G_TYPE_OBJECT) /* signal enum */ enum { - NEW_ICE_STREAM_HANDLER, + NEW_STREAM_HANDLER, + STREAM_ADDED, LAST_SIGNAL }; diff --git a/src/gabble-media-stream.c b/src/gabble-media-stream.c index 8c4ad977b..33c0c8019 100644 --- a/src/gabble-media-stream.c +++ b/src/gabble-media-stream.c @@ -355,7 +355,27 @@ gabble_media_stream_class_init (GabbleMediaStreamClass *gabble_media_stream_clas G_PARAM_STATIC_BLURB); g_object_class_install_property (object_class, PROP_MEDIA_TYPE, param_spec); - /* signals exported by DBus interface */ + param_spec = g_param_spec_uint ("state", "Stream state", + "An integer indicating which state the " + "stream is currently in.", + TP_MEDIA_STREAM_STATE_DISCONNECTED, + TP_MEDIA_STREAM_STATE_CONNECTED, + TP_MEDIA_STREAM_STATE_DISCONNECTED, + G_PARAM_READWRITE | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_BLURB); + g_object_class_install_property (object_class, PROP_STATE, param_spec); + + /* signals exported by D-Bus interface */ + signals[DESTROY] = + g_signal_new ("destroy", + G_OBJECT_CLASS_TYPE (gabble_media_stream_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, + 0, + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + signals[ADD_REMOTE_CANDIDATE] = g_signal_new ("add-remote-candidate", G_OBJECT_CLASS_TYPE (gabble_media_stream_class), @@ -762,11 +782,9 @@ gabble_media_stream_stream_state (GabbleMediaStream *self, guint state, GError **error) { - GabbleMediaStreamPrivate *priv; - - g_assert (GABBLE_IS_MEDIA_STREAM (obj)); + g_assert (GABBLE_IS_MEDIA_STREAM (self)); - priv = GABBLE_MEDIA_STREAM_GET_PRIVATE (obj); + g_object_set (self, "state", state, NULL); return TRUE; } diff --git a/src/telepathy-constants.h b/src/telepathy-constants.h index d7a7f1d51..9ea163239 100644 --- a/src/telepathy-constants.h +++ b/src/telepathy-constants.h @@ -144,6 +144,12 @@ TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL = 3 } TpMediaStreamDirection; typedef enum { +TP_MEDIA_STREAM_PENDING_NONE = 0, +TP_MEDIA_STREAM_PENDING_LOCAL_SEND = 1, +TP_MEDIA_STREAM_PENDING_REMOTE_SEND = 2 +} TpMediaStreamPendingSend; + +typedef enum { TP_MEDIA_STREAM_ERROR_UNKNOWN = 0, TP_MEDIA_STREAM_ERROR_EOS = 1 } TpMediaStreamError; |