From 7a7bb7399a53fd109172655e43400a77c4ccb6b8 Mon Sep 17 00:00:00 2001 From: Claudio Takahasi Date: Wed, 20 Feb 2013 18:55:49 -0300 Subject: handsfree-audio: Call Agent "Release" when exiting This patch notifies the Agent implementation that it is no longer registered to the service daemon. --- src/handsfree-audio.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/handsfree-audio.c b/src/handsfree-audio.c index 7bb59f08..2635d76a 100644 --- a/src/handsfree-audio.c +++ b/src/handsfree-audio.c @@ -32,6 +32,7 @@ #include "ofono.h" #define HFP_AUDIO_MANAGER_INTERFACE OFONO_SERVICE ".HandsfreeAudioManager" +#define HFP_AUDIO_AGENT_INTERFACE OFONO_SERVICE ".HandsfreeAudioAgent" /* Supported agent codecs */ enum hfp_codec { @@ -56,6 +57,16 @@ static void agent_free(struct agent *agent) g_free(agent); } +static void agent_release(struct agent *agent) +{ + DBusMessage *msg; + + msg = dbus_message_new_method_call(agent->owner, agent->path, + HFP_AUDIO_AGENT_INTERFACE, "Release"); + + g_dbus_send_message(ofono_dbus_get_connection(), msg); +} + static DBusMessage *am_get_cards(DBusConnection *conn, DBusMessage *msg, void *user_data) { @@ -159,6 +170,8 @@ void __ofono_handsfree_audio_manager_cleanup(void) g_dbus_unregister_interface(ofono_dbus_get_connection(), "/", HFP_AUDIO_MANAGER_INTERFACE); - if (agent) + if (agent) { + agent_release(agent); agent_free(agent); + } } -- cgit v1.2.3