aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mm-base-call.c52
1 files changed, 16 insertions, 36 deletions
diff --git a/src/mm-base-call.c b/src/mm-base-call.c
index 947a6d38..7b020e0c 100644
--- a/src/mm-base-call.c
+++ b/src/mm-base-call.c
@@ -661,73 +661,53 @@ call_start (MMBaseCall *self,
}
/*****************************************************************************/
-
-/* Accept the CALL */
+/* Accept the call */
static gboolean
-call_accept_finish (MMBaseCall *self,
- GAsyncResult *res,
- GError **error)
+call_accept_finish (MMBaseCall *self,
+ GAsyncResult *res,
+ GError **error)
{
return g_task_propagate_boolean (G_TASK (res), error);
}
static void
-call_accept_ready (MMBaseModem *modem,
+call_accept_ready (MMBaseModem *modem,
GAsyncResult *res,
- GTask *task)
+ GTask *task)
{
- MMBaseCall *self;
- GError *error = NULL;
+ MMBaseCall *self;
+ GError *error = NULL;
const gchar *response;
self = g_task_get_source_object (task);
response = mm_base_modem_at_command_finish (modem, res, &error);
- if (error) {
- if (g_error_matches (error, MM_SERIAL_ERROR, MM_SERIAL_ERROR_RESPONSE_TIMEOUT)) {
- g_task_return_error (task, error);
- g_object_unref (task);
- return;
- }
-
- mm_dbg ("Couldn't accept call : '%s'", error->message);
- g_error_free (error);
- return;
- }
/* check response for error */
- if (response && response[0]) {
+ if (response && response[0])
g_set_error (&error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED,
- "Couldn't accept the call: "
- "Unhandled response '%s'", response);
+ "Couldn't accept the call: Unhandled response '%s'", response);
- /* Update state */
+ if (error) {
mm_base_call_change_state (self, MM_CALL_STATE_TERMINATED, MM_CALL_STATE_REASON_ERROR);
+ g_task_return_error (task, error);
} else {
- /* Update state */
mm_base_call_change_state (self, MM_CALL_STATE_ACTIVE, MM_CALL_STATE_REASON_ACCEPTED);
+ g_task_return_boolean (task, TRUE);
}
- if (error) {
- g_task_return_error (task, error);
- g_object_unref (task);
- return;
- }
-
- g_task_return_boolean (task, FALSE);
g_object_unref (task);
}
static void
-call_accept (MMBaseCall *self,
- GAsyncReadyCallback callback,
- gpointer user_data)
+call_accept (MMBaseCall *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
{
GTask *task;
task = g_task_new (self, NULL, callback, user_data);
-
mm_base_modem_at_command (self->priv->modem,
"ATA",
2,