summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert McQueen <robert.mcqueen@collabora.co.uk>2006-09-10 15:14:47 +0000
committerRobert McQueen <robert.mcqueen@collabora.co.uk>2006-09-10 15:14:47 +0000
commitc5754763ef434d304915251e8dbf0e6a2181fdfd (patch)
treeebdadc3f3719c63fb339f5fd9635cbaf2201849b
parentb0ca9ef91bcbbd83c1f8fb254644ac47264debc3 (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.c23
-rw-r--r--src/gabble-media-session.c3
-rw-r--r--src/gabble-media-stream.c28
-rw-r--r--src/telepathy-constants.h6
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;