diff options
author | Xavier Claessens <xavier.claessens@collabora.co.uk> | 2012-01-02 15:04:22 +0100 |
---|---|---|
committer | Xavier Claessens <xavier.claessens@collabora.co.uk> | 2012-01-10 09:52:47 +0100 |
commit | 5c2c2cbb14319e1b750d8cdfd348e90354598fa8 (patch) | |
tree | e4779aafb8b6d2e82c81c059875a879f864d8efe /telepathy-glib/base-media-call-stream.c | |
parent | 00da5756da8f415c9437c56ec30d3369988837a7 (diff) | |
download | telepathy-glib-5c2c2cbb14319e1b750d8cdfd348e90354598fa8.tar.gz |
TpBaseMediaCallStream: move code around to be correctly grouped and fix coding style
Diffstat (limited to 'telepathy-glib/base-media-call-stream.c')
-rw-r--r-- | telepathy-glib/base-media-call-stream.c | 226 |
1 files changed, 93 insertions, 133 deletions
diff --git a/telepathy-glib/base-media-call-stream.c b/telepathy-glib/base-media-call-stream.c index 74c66b6bd..cb4fe68dd 100644 --- a/telepathy-glib/base-media-call-stream.c +++ b/telepathy-glib/base-media-call-stream.c @@ -704,26 +704,10 @@ ignore_state_change (TpStreamFlowState old_state, return FALSE; } -/** - * tp_base_media_call_stream_set_sending_state: - * @self: a #TpBaseMediaCallStream - * @state: a #TpStreamFlowState - * - * Request a change in the sending state. Only PENDING values are accepted, - * state will change to the corresponding non-pending value once the stream - * state effectively changed. - * - * Since: 0.UNRELEASED - */ static void -tp_base_media_call_stream_set_sending_state (TpBaseMediaCallStream *self, +set_sending_state (TpBaseMediaCallStream *self, TpStreamFlowState state) { - g_return_if_fail (TP_IS_BASE_MEDIA_CALL_STREAM (self)); - g_return_if_fail (state == TP_STREAM_FLOW_STATE_PENDING_START || - state == TP_STREAM_FLOW_STATE_PENDING_STOP || - state == TP_STREAM_FLOW_STATE_PENDING_MUTE); - if (ignore_state_change (self->priv->sending_state, state)) return; @@ -733,61 +717,35 @@ tp_base_media_call_stream_set_sending_state (TpBaseMediaCallStream *self, tp_svc_call_stream_interface_media_emit_sending_state_changed (self, state); } -/** - * tp_base_media_call_stream_set_receiving_state: - * @self: a #TpBaseMediaCallStream - * @state: a #TpStreamFlowState - * - * Request a change in the receiving state. Only PENDING values are accepted, - * state will change to the corresponding non-pending value once the stream - * state effectively changed. - * - * Since: 0.UNRELEASED - */ -static void -tp_base_media_call_stream_set_receiving_state (TpBaseMediaCallStream *self, - TpStreamFlowState state) +void +tp_base_media_call_stream_update_sending_state (TpBaseMediaCallStream *self) { - g_return_if_fail (TP_IS_BASE_MEDIA_CALL_STREAM (self)); - g_return_if_fail (state == TP_STREAM_FLOW_STATE_PENDING_START || - state == TP_STREAM_FLOW_STATE_PENDING_STOP || - state == TP_STREAM_FLOW_STATE_PENDING_MUTE); + TpBaseCallChannel *channel = _tp_base_call_stream_get_channel ( + TP_BASE_CALL_STREAM (self)); + gboolean sending = FALSE; - if (ignore_state_change (self->priv->receiving_state, state)) - return; + if (channel == NULL) + goto done; - self->priv->receiving_state = state; - g_object_notify (G_OBJECT (self), "receiving-state"); + if (TP_IS_BASE_MEDIA_CALL_CHANNEL (channel)) + { + TpBaseMediaCallChannel *mediachan = TP_BASE_MEDIA_CALL_CHANNEL (channel); - tp_svc_call_stream_interface_media_emit_receiving_state_changed (self, state); -} + if (_tp_base_media_channel_is_held (mediachan)) + goto done; + } -static gboolean -tp_base_media_call_stream_set_sending (TpBaseCallStream *bcs, - gboolean sending, GError **error) -{ + if (self->priv->remotely_held) + goto done; - TpBaseMediaCallStream *self = TP_BASE_MEDIA_CALL_STREAM (bcs); - TpBaseMediaCallStreamClass *klass = - TP_BASE_MEDIA_CALL_STREAM_GET_CLASS (self); + sending = self->priv->local_sending; + +done: if (sending) - { - if (klass->set_sending != NULL && - !klass->set_sending (bcs, sending, error)) - return FALSE; - } + set_sending_state (self, TP_STREAM_FLOW_STATE_PENDING_START); else - { - tp_base_media_call_stream_set_local_sending (self, FALSE); - - /* Already stopped, lets call the callback directly */ - if (self->priv->sending_state == TP_STREAM_FLOW_STATE_STOPPED && - klass->set_sending != NULL) - return klass->set_sending (bcs, sending, error); - } - - return TRUE; + set_sending_state (self, TP_STREAM_FLOW_STATE_PENDING_STOP); } TpStreamFlowState @@ -799,13 +757,45 @@ tp_base_media_call_stream_get_sending_state (TpBaseMediaCallStream *self) return self->priv->sending_state; } -TpStreamFlowState -tp_base_media_call_stream_get_receiving_state (TpBaseMediaCallStream *self) +void +tp_base_media_call_stream_set_local_sending (TpBaseMediaCallStream *self, + gboolean sending) { - g_return_val_if_fail (TP_IS_BASE_MEDIA_CALL_STREAM (self), - TP_STREAM_FLOW_STATE_STOPPED); + g_return_if_fail (TP_IS_BASE_MEDIA_CALL_STREAM (self)); - return self->priv->receiving_state; + if (sending == self->priv->local_sending) + return; + + self->priv->local_sending = sending; + + tp_base_media_call_stream_update_sending_state (self); +} + +void +_tp_base_media_call_stream_set_remotely_held (TpBaseMediaCallStream *self, + gboolean remotely_held) +{ + g_return_if_fail (TP_IS_BASE_MEDIA_CALL_STREAM (self)); + + if (remotely_held == self->priv->remotely_held) + return; + + self->priv->remotely_held = remotely_held; + + tp_base_media_call_stream_update_sending_state (self); +} + +static void +set_receiving_state (TpBaseMediaCallStream *self, + TpStreamFlowState state) +{ + if (ignore_state_change (self->priv->receiving_state, state)) + return; + + self->priv->receiving_state = state; + g_object_notify (G_OBJECT (self), "receiving-state"); + + tp_svc_call_stream_interface_media_emit_receiving_state_changed (self, state); } void @@ -850,83 +840,53 @@ tp_base_media_call_stream_update_receiving_state (TpBaseMediaCallStream *self) break; } - done: +done: if (remote_sending) - { - tp_base_media_call_stream_set_receiving_state (self, - TP_STREAM_FLOW_STATE_PENDING_START); - } + set_receiving_state (self, TP_STREAM_FLOW_STATE_PENDING_START); else - { - tp_base_media_call_stream_set_receiving_state (self, - TP_STREAM_FLOW_STATE_PENDING_STOP); - } + set_receiving_state (self, TP_STREAM_FLOW_STATE_PENDING_STOP); } -void -tp_base_media_call_stream_update_sending_state (TpBaseMediaCallStream *self) +TpStreamFlowState +tp_base_media_call_stream_get_receiving_state (TpBaseMediaCallStream *self) { - gboolean sending = FALSE; - TpBaseCallChannel *channel = _tp_base_call_stream_get_channel ( - TP_BASE_CALL_STREAM (self)); - - if (channel == NULL) - goto done; - - if (TP_IS_BASE_MEDIA_CALL_CHANNEL (channel)) - { - TpBaseMediaCallChannel *mediachan = TP_BASE_MEDIA_CALL_CHANNEL (channel); - - if (_tp_base_media_channel_is_held (mediachan)) - goto done; - } - - if (self->priv->remotely_held) - goto done; - - sending = self->priv->local_sending; - - done: + g_return_val_if_fail (TP_IS_BASE_MEDIA_CALL_STREAM (self), + TP_STREAM_FLOW_STATE_STOPPED); - if (sending) - tp_base_media_call_stream_set_sending_state (self, - TP_STREAM_FLOW_STATE_PENDING_START); - else - tp_base_media_call_stream_set_sending_state (self, - TP_STREAM_FLOW_STATE_PENDING_STOP); + return self->priv->receiving_state; } -void -tp_base_media_call_stream_set_local_sending (TpBaseMediaCallStream *self, - gboolean sending) -{ - g_return_if_fail (TP_IS_BASE_MEDIA_CALL_STREAM (self)); - - if (sending == self->priv->local_sending) - return; +/* TpBaseCallStreamClass virtual methods implementation */ - self->priv->local_sending = sending; - - tp_base_media_call_stream_update_sending_state (self); -} - -void -_tp_base_media_call_stream_set_remotely_held (TpBaseMediaCallStream *self, - gboolean remotely_held) +static gboolean +tp_base_media_call_stream_set_sending (TpBaseCallStream *bcs, + gboolean sending, + GError **error) { - g_return_if_fail (TP_IS_BASE_MEDIA_CALL_STREAM (self)); + TpBaseMediaCallStream *self = TP_BASE_MEDIA_CALL_STREAM (bcs); + TpBaseMediaCallStreamClass *klass = + TP_BASE_MEDIA_CALL_STREAM_GET_CLASS (self); - if (remotely_held == self->priv->remotely_held) - return; + if (sending) + { + if (klass->set_sending != NULL && + !klass->set_sending (bcs, sending, error)) + return FALSE; + } + else + { + tp_base_media_call_stream_set_local_sending (self, FALSE); - self->priv->remotely_held = remotely_held; + /* Already stopped, lets call the callback directly */ + if (self->priv->sending_state == TP_STREAM_FLOW_STATE_STOPPED && + klass->set_sending != NULL) + return klass->set_sending (bcs, sending, error); + } - tp_base_media_call_stream_update_sending_state (self); + return TRUE; } - - static gboolean tp_base_media_call_stream_request_receiving (TpBaseCallStream *bcs, TpHandle contact, gboolean receive, GError **error) @@ -936,7 +896,6 @@ tp_base_media_call_stream_request_receiving (TpBaseCallStream *bcs, TP_BASE_MEDIA_CALL_STREAM_GET_CLASS (self); TpBaseCallChannel *channel = _tp_base_call_stream_get_channel (bcs); - if (receive) { tp_base_call_stream_update_remote_sending_state (bcs, contact, @@ -975,6 +934,8 @@ tp_base_media_call_stream_request_receiving (TpBaseCallStream *bcs, return TRUE; } +/* DBus method implementation */ + static gboolean correct_state_transition (TpStreamFlowState old_state, TpStreamFlowState new_state) @@ -1053,7 +1014,7 @@ tp_base_media_call_stream_report_sending_failure ( default: { GError e = {TP_ERRORS, TP_ERROR_INVALID_ARGUMENT, - "The Sending state was not in a pending state"}; + "The Sending state was not in a pending state"}; dbus_g_method_return_error (context, &e); return; } @@ -1063,7 +1024,6 @@ tp_base_media_call_stream_report_sending_failure ( _tp_base_media_call_channel_streams_sending_state_changed ( TP_BASE_MEDIA_CALL_CHANNEL (channel), FALSE); - if (klass->report_sending_failure != NULL) klass->report_sending_failure (self, old_state, reason, dbus_reason, message); @@ -1151,7 +1111,7 @@ tp_base_media_call_stream_report_receiving_failure ( default: { GError e = {TP_ERRORS, TP_ERROR_INVALID_ARGUMENT, - "The Receiving state was not in a pending state"}; + "The Receiving state was not in a pending state"}; dbus_g_method_return_error (context, &e); return; } |