diff options
author | Olivier CrĂȘte <olivier.crete@collabora.com> | 2011-12-29 17:20:52 -0500 |
---|---|---|
committer | Xavier Claessens <xavier.claessens@collabora.co.uk> | 2012-01-10 09:52:46 +0100 |
commit | de1dc1dce8cde4e81986f537317c8da05d3fccee (patch) | |
tree | 00de17872720f87abb56e379f412b004136e8947 /telepathy-glib/base-media-call-stream.c | |
parent | a5e24b25e63510ee2f5992237841b222e6b98b06 (diff) | |
download | telepathy-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.c | 19 |
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; |