From 72d68e5001b5cfc0baceb491406c9ae607087b1a Mon Sep 17 00:00:00 2001 From: Pekka Pessi Date: Thu, 8 Oct 2009 19:59:52 +0300 Subject: Use swap_without_accept method, if present --- src/voicecall.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src') diff --git a/src/voicecall.c b/src/voicecall.c index eff6321b..1be907a4 100644 --- a/src/voicecall.c +++ b/src/voicecall.c @@ -835,11 +835,31 @@ static DBusMessage *manager_transfer(DBusConnection *conn, return NULL; } +static DBusMessage *manager_swap_without_accept(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + struct ofono_voicecall *vc = data; + + if (vc->flags & VOICECALLS_FLAG_PENDING) + return __ofono_error_busy(msg); + + vc->flags |= VOICECALLS_FLAG_PENDING; + vc->pending = dbus_message_ref(msg); + + vc->driver->swap_without_accept(vc, generic_callback, vc); + + return NULL; +} + + static DBusMessage *manager_swap_calls(DBusConnection *conn, DBusMessage *msg, void *data) { struct ofono_voicecall *vc = data; + if (vc->driver->swap_without_accept) + return manager_swap_without_accept(conn, msg, data); + if (vc->flags & VOICECALLS_FLAG_PENDING) return __ofono_error_busy(msg); -- cgit v1.2.3