summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSimon Fels <simon.fels@canonical.com>2015-10-05 13:33:09 +0200
committerDenis Kenzior <denkenz@gmail.com>2015-10-05 11:46:30 -0500
commit5a7410e9e4b977b2412047e22ddd53930ad1e058 (patch)
tree5809aadb9b597220a1288961752d01fce3347018 /src
parent8929d131a3332a491b5303f2b09b636e2992baae (diff)
downloadofono-5a7410e9e4b977b2412047e22ddd53930ad1e058.tar.bz2
handsfree-audio: add type for our audio cards
When registering audio cards for the handsfree and gateway roles we need a way for our users to differentiate between both to decide which of them they start using for their purpose.
Diffstat (limited to 'src')
-rw-r--r--src/handsfree-audio.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/handsfree-audio.c b/src/handsfree-audio.c
index c990cc34..8db99e19 100644
--- a/src/handsfree-audio.c
+++ b/src/handsfree-audio.c
@@ -45,6 +45,7 @@
#define HFP_AUDIO_CARD_INTERFACE OFONO_SERVICE ".HandsfreeAudioCard"
struct ofono_handsfree_card {
+ enum ofono_handsfree_card_type type;
char *remote;
char *local;
char *path;
@@ -69,6 +70,17 @@ static ofono_bool_t has_wideband = FALSE;
static int defer_setup = 1;
static ofono_bool_t transparent_sco = FALSE;
+static const char *card_type_to_string(enum ofono_handsfree_card_type type)
+{
+ switch (type) {
+ case OFONO_HANDSFREE_CARD_TYPE_HANDSFREE:
+ return "handsfree";
+ case OFONO_HANDSFREE_CARD_TYPE_GATEWAY:
+ return "gateway";
+ }
+ return "";
+}
+
static uint16_t codec2setting(uint8_t codec)
{
switch (codec) {
@@ -255,6 +267,12 @@ static int sco_init(void)
static void card_append_properties(struct ofono_handsfree_card *card,
DBusMessageIter *dict)
{
+ const char *type;
+
+ type = card_type_to_string(card->type);
+ ofono_dbus_dict_append(dict, "Type",
+ DBUS_TYPE_STRING, &type);
+
ofono_dbus_dict_append(dict, "RemoteAddress",
DBUS_TYPE_STRING, &card->remote);
@@ -395,14 +413,16 @@ static const GDBusSignalTable card_signals[] = {
};
struct ofono_handsfree_card *ofono_handsfree_card_create(unsigned int vendor,
- const char *driver,
- void *data)
+ enum ofono_handsfree_card_type type,
+ const char *driver,
+ void *data)
{
struct ofono_handsfree_card *card;
GSList *l;
card = g_new0(struct ofono_handsfree_card, 1);
+ card->type = type;
card->selected_codec = HFP_CODEC_CVSD;
card_list = g_slist_prepend(card_list, card);