summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClaudio Takahasi <claudio.takahasi@openbossa.org>2013-02-20 18:55:49 -0300
committerDenis Kenzior <denkenz@gmail.com>2013-02-20 21:26:57 -0600
commit7a7bb7399a53fd109172655e43400a77c4ccb6b8 (patch)
tree83c3b94e2edfca87a3b8ba89a250587b6bfa20aa
parent19f50c6a3ba4ba4c3cb6d8da6724ec0d2f2062c9 (diff)
downloadofono-7a7bb7399a53fd109172655e43400a77c4ccb6b8.tar.bz2
handsfree-audio: Call Agent "Release" when exiting
This patch notifies the Agent implementation that it is no longer registered to the service daemon.
-rw-r--r--src/handsfree-audio.c15
1 files changed, 14 insertions, 1 deletions
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);
+ }
}