summaryrefslogtreecommitdiff
path: root/telepathy-glib/base-media-call-stream.c
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.com>2011-12-29 17:20:52 -0500
committerXavier Claessens <xavier.claessens@collabora.co.uk>2012-01-10 09:52:46 +0100
commitde1dc1dce8cde4e81986f537317c8da05d3fccee (patch)
tree00de17872720f87abb56e379f412b004136e8947 /telepathy-glib/base-media-call-stream.c
parenta5e24b25e63510ee2f5992237841b222e6b98b06 (diff)
downloadtelepathy-glib-de1dc1dce8cde4e81986f537317c8da05d3fccee.tar.gz
Ignore re-settings that change nothing
Diffstat (limited to 'telepathy-glib/base-media-call-stream.c')
-rw-r--r--telepathy-glib/base-media-call-stream.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/telepathy-glib/base-media-call-stream.c b/telepathy-glib/base-media-call-stream.c
index b400fef38..2da2d64fe 100644
--- a/telepathy-glib/base-media-call-stream.c
+++ b/telepathy-glib/base-media-call-stream.c
@@ -703,7 +703,15 @@ tp_base_media_call_stream_set_sending_state (TpBaseMediaCallStream *self,
state == TP_STREAM_FLOW_STATE_PENDING_STOP ||
state == TP_STREAM_FLOW_STATE_PENDING_MUTE);
- if (self->priv->sending_state == state)
+
+ /* Ignore sets that change nothing */
+ if ((self->priv->sending_state == state) ||
+ (state == TP_STREAM_FLOW_STATE_PENDING_START &&
+ self->priv->sending_state == TP_STREAM_FLOW_STATE_STARTED) ||
+ (state == TP_STREAM_FLOW_STATE_PENDING_STOP &&
+ self->priv->sending_state == TP_STREAM_FLOW_STATE_STOPPED) ||
+ (state == TP_STREAM_FLOW_STATE_PENDING_MUTE &&
+ self->priv->sending_state == TP_STREAM_FLOW_STATE_MUTED))
return;
self->priv->sending_state = state;
@@ -731,7 +739,14 @@ tp_base_media_call_stream_set_receiving_state (TpBaseMediaCallStream *self,
state == TP_STREAM_FLOW_STATE_PENDING_STOP ||
state == TP_STREAM_FLOW_STATE_PENDING_MUTE);
- if (self->priv->receiving_state == state)
+ /* Ignore sets that change nothing */
+ if ((self->priv->receiving_state == state) ||
+ (state == TP_STREAM_FLOW_STATE_PENDING_START &&
+ self->priv->receiving_state == TP_STREAM_FLOW_STATE_STARTED) ||
+ (state == TP_STREAM_FLOW_STATE_PENDING_STOP &&
+ self->priv->receiving_state == TP_STREAM_FLOW_STATE_STOPPED) ||
+ (state == TP_STREAM_FLOW_STATE_PENDING_MUTE &&
+ self->priv->receiving_state == TP_STREAM_FLOW_STATE_MUTED))
return;
self->priv->receiving_state = state;