[telepathy-gabble/master] Add separate hold, ringing and mute properties
Will Thompson
will.thompson at collabora.co.uk
Thu May 21 02:20:35 PDT 2009
These concepts are now orthogonal at the XMPP level, and the first two
apply to the session as a whole, so it makes no sense to combine them
into one property on each stream.
---
src/jingle-media-rtp.c | 14 ++++++++++++++
src/jingle-session.c | 21 +++++++++++++++++++++
2 files changed, 35 insertions(+), 0 deletions(-)
diff --git a/src/jingle-media-rtp.c b/src/jingle-media-rtp.c
index ab89096..d944b73 100644
--- a/src/jingle-media-rtp.c
+++ b/src/jingle-media-rtp.c
@@ -58,6 +58,7 @@ enum
{
PROP_MEDIA_TYPE = 1,
PROP_REMOTE_STATE,
+ PROP_REMOTE_MUTE,
LAST_PROPERTY
};
@@ -78,6 +79,8 @@ struct _GabbleJingleMediaRtpPrivate
GList *remote_codecs;
JingleMediaType media_type;
JingleRtpRemoteState remote_state;
+ gboolean remote_mute;
+
gboolean dispose_has_run;
};
@@ -191,6 +194,9 @@ gabble_jingle_media_rtp_get_property (GObject *object,
case PROP_REMOTE_STATE:
g_value_set_uint (value, priv->remote_state);
break;
+ case PROP_REMOTE_MUTE:
+ g_value_set_boolean (value, priv->remote_mute);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -210,6 +216,9 @@ gabble_jingle_media_rtp_set_property (GObject *object,
case PROP_MEDIA_TYPE:
priv->media_type = g_value_get_uint (value);
break;
+ case PROP_REMOTE_MUTE:
+ priv->remote_mute = g_value_get_boolean (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -258,6 +267,11 @@ gabble_jingle_media_rtp_class_init (GabbleJingleMediaRtpClass *cls)
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
g_object_class_install_property (object_class, PROP_REMOTE_STATE, param_spec);
+ param_spec = g_param_spec_boolean ("remote-mute", "Remote mute",
+ "TRUE if the peer has muted this stream", FALSE,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+ g_object_class_install_property (object_class, PROP_REMOTE_MUTE, param_spec);
+
/* signal definitions */
signals[REMOTE_CODECS] = g_signal_new ("remote-codecs",
diff --git a/src/jingle-session.c b/src/jingle-session.c
index 4b76944..e06f6ef 100644
--- a/src/jingle-session.c
+++ b/src/jingle-session.c
@@ -58,6 +58,8 @@ enum
PROP_LOCAL_INITIATOR,
PROP_STATE,
PROP_DIALECT,
+ PROP_REMOTE_HOLD,
+ PROP_REMOTE_RINGING,
LAST_PROPERTY
};
@@ -81,6 +83,9 @@ struct _GabbleJingleSessionPrivate
gboolean locally_accepted;
gboolean locally_terminated;
+ gboolean remote_hold;
+ gboolean remote_ringing;
+
guint timer_id;
gboolean dispose_has_run;
@@ -219,6 +224,12 @@ gabble_jingle_session_get_property (GObject *object,
case PROP_DIALECT:
g_value_set_uint (value, priv->dialect);
break;
+ case PROP_REMOTE_HOLD:
+ g_value_set_boolean (value, priv->remote_hold);
+ break;
+ case PROP_REMOTE_RINGING:
+ g_value_set_boolean (value, priv->remote_ringing);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -366,6 +377,16 @@ gabble_jingle_session_class_init (GabbleJingleSessionClass *cls)
G_PARAM_STATIC_BLURB);
g_object_class_install_property (object_class, PROP_DIALECT, param_spec);
+ param_spec = g_param_spec_boolean ("remote-hold", "Remote hold",
+ "TRUE if the peer has placed us on hold", FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+ g_object_class_install_property (object_class, PROP_REMOTE_HOLD, param_spec);
+
+ param_spec = g_param_spec_boolean ("remote-ringing", "Remote ringing",
+ "TRUE if the peer's client is ringing", FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+ g_object_class_install_property (object_class, PROP_REMOTE_RINGING,
+ param_spec);
/* signal definitions */
--
1.5.6.5
More information about the telepathy-commits
mailing list