summaryrefslogtreecommitdiffstats
path: root/src/handsfree-audio.c
diff options
context:
space:
mode:
authorClaudio Takahasi <claudio.takahasi@openbossa.org>2013-02-28 15:52:50 -0300
committerDenis Kenzior <denkenz@gmail.com>2013-03-01 13:32:11 -0600
commit4fcd08485960f6294ba659926cdbd94d13e1250e (patch)
treed7107f3c53676dd4fbe28e7507db3a4b3356dea0 /src/handsfree-audio.c
parent80212a3db2d5a0b1cccb84ae183a917175d34a8a (diff)
downloadofono-4fcd08485960f6294ba659926cdbd94d13e1250e.tar.bz2
handsfree-audio: Check CVSD when registering agent
This patch makes CVSD codec mandatory when registering a Handsfree Audio Agent.
Diffstat (limited to 'src/handsfree-audio.c')
-rw-r--r--src/handsfree-audio.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/handsfree-audio.c b/src/handsfree-audio.c
index b2d4b971..bfce42a3 100644
--- a/src/handsfree-audio.c
+++ b/src/handsfree-audio.c
@@ -307,6 +307,7 @@ static DBusMessage *am_agent_register(DBusConnection *conn,
unsigned char *codecs;
DBusMessageIter iter, array;
int length, i;
+ gboolean has_cvsd = FALSE;
if (agent)
return __ofono_error_in_use(msg);
@@ -326,11 +327,17 @@ static DBusMessage *am_agent_register(DBusConnection *conn,
return __ofono_error_invalid_args(msg);
for (i = 0; i < length; i++) {
- if (codecs[i] != HFP_CODEC_CVSD &&
- codecs[i] != HFP_CODEC_MSBC)
+ if (codecs[i] == HFP_CODEC_CVSD)
+ has_cvsd = TRUE;
+ else if (codecs[i] != HFP_CODEC_MSBC)
return __ofono_error_invalid_args(msg);
}
+ if (has_cvsd == FALSE) {
+ ofono_error("CVSD codec is mandatory");
+ return __ofono_error_invalid_args(msg);
+ }
+
agent = g_new0(struct agent, 1);
agent->owner = g_strdup(sender);
agent->path = g_strdup(path);