diff options
author | Pekka Pessi <Pekka.Pessi@nokia.com> | 2009-10-08 19:59:52 +0300 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2009-10-08 12:55:17 -0500 |
commit | 72d68e5001b5cfc0baceb491406c9ae607087b1a (patch) | |
tree | 9ae2a3b3d19e6c92fa75e6628a2fb72a620c6d27 /src | |
parent | 822b8d9e8715f9134cebf6225b3b66f6748c00fa (diff) | |
download | ofono-72d68e5001b5cfc0baceb491406c9ae607087b1a.tar.bz2 |
Use swap_without_accept method, if present
Diffstat (limited to 'src')
-rw-r--r-- | src/voicecall.c | 20 |
1 files changed, 20 insertions, 0 deletions
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); |