diff options
author | Simon Fels <simon.fels@canonical.com> | 2015-10-05 13:33:09 +0200 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2015-10-05 11:46:30 -0500 |
commit | 5a7410e9e4b977b2412047e22ddd53930ad1e058 (patch) | |
tree | 5809aadb9b597220a1288961752d01fce3347018 /src | |
parent | 8929d131a3332a491b5303f2b09b636e2992baae (diff) | |
download | ofono-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.c | 24 |
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); |