From 7c2a566b8a95fe3a701941c7d46ddccb14a78dae Mon Sep 17 00:00:00 2001 From: Bruna Moreira Date: Tue, 27 Mar 2012 09:29:35 -0400 Subject: [PATCH] dbus-common: Map GAP Appearance characteristic to icon Add function appearance_to_icon() to map values from Appearance Characteristic to icon available. Note: The Appearance Characteristic is composed of a category (10-bits) and sub-categories (6-bits). These categories are defined at: http://developer.bluetooth.org/gatt/characteristics/Pages/ CharacteristicViewer.aspx?u=org.bluetooth.characteristic.gap.appearance.xml --- src/dbus-common.c | 33 +++++++++++++++++++++++++++++++++ src/dbus-common.h | 1 + 2 files changed, 34 insertions(+) diff --git a/src/dbus-common.c b/src/dbus-common.c index ef3b3751c..7e1bc9438 100644 --- a/src/dbus-common.c +++ b/src/dbus-common.c @@ -243,3 +243,36 @@ const char *class_to_icon(uint32_t class) return NULL; } + +const char *gap_appearance_to_icon(uint16_t appearance) +{ + switch ((appearance & 0xffc0) >> 6) { + case 0x01: + return "phone"; + case 0x02: + return "computer"; + case 0x05: + return "video-display"; + case 0x0a: + return "multimedia-player"; + case 0x0b: + return "scanner"; + case 0x0f: /* HID Generic */ + switch (appearance & 0x3f) { + case 0x01: + return "input-keyboard"; + case 0x02: + return "input-mouse"; + case 0x03: + case 0x04: + return "input-gaming"; + case 0x05: + return "input-tablet"; + case 0x08: + return "scanner"; + } + break; + } + + return NULL; +} diff --git a/src/dbus-common.h b/src/dbus-common.h index b196a1b82..b9531f2d4 100644 --- a/src/dbus-common.h +++ b/src/dbus-common.h @@ -45,3 +45,4 @@ void set_dbus_connection(DBusConnection *conn); DBusConnection *get_dbus_connection(void); const char *class_to_icon(uint32_t class); +const char *gap_appearance_to_icon(uint16_t appearance); -- 2.47.3