diff options
author | Johan Hedberg <johan.hedberg@nokia.com> | 2010-10-26 14:41:56 -0400 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@nokia.com> | 2010-10-26 14:41:56 -0400 |
commit | 7dd1803f5c49c3168e36e1f99f3481c06b09a6f5 (patch) | |
tree | 557ff992f94e5cc1f6b2293b0ca89df545cec828 /src/dbus-common.c | |
parent | 81e557b840b35a563f93b2d2542a14ddb8835ab7 (diff) | |
download | bluez-7dd1803f5c49c3168e36e1f99f3481c06b09a6f5.tar.gz |
Move class_to_icon() to dbus-common.c
Diffstat (limited to 'src/dbus-common.c')
-rw-r--r-- | src/dbus-common.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/dbus-common.c b/src/dbus-common.c index c01f51e1a..bc34bebda 100644 --- a/src/dbus-common.c +++ b/src/dbus-common.c @@ -333,3 +333,67 @@ DBusConnection *get_dbus_connection(void) { return connection; } + +const char *class_to_icon(uint32_t class) +{ + switch ((class & 0x1f00) >> 8) { + case 0x01: + return "computer"; + case 0x02: + switch ((class & 0xfc) >> 2) { + case 0x01: + case 0x02: + case 0x03: + case 0x05: + return "phone"; + case 0x04: + return "modem"; + } + break; + case 0x03: + return "network-wireless"; + case 0x04: + switch ((class & 0xfc) >> 2) { + case 0x01: + case 0x02: + return "audio-card"; /* Headset */ + case 0x06: + return "audio-card"; /* Headphone */ + case 0x0b: /* VCR */ + case 0x0c: /* Video Camera */ + case 0x0d: /* Camcorder */ + return "camera-video"; + default: + return "audio-card"; /* Other audio device */ + } + break; + case 0x05: + switch ((class & 0xc0) >> 6) { + case 0x00: + switch ((class & 0x1e) >> 2) { + case 0x01: + case 0x02: + return "input-gaming"; + } + break; + case 0x01: + return "input-keyboard"; + case 0x02: + switch ((class & 0x1e) >> 2) { + case 0x05: + return "input-tablet"; + default: + return "input-mouse"; + } + } + break; + case 0x06: + if (class & 0x80) + return "printer"; + if (class & 0x20) + return "camera-photo"; + break; + } + + return NULL; +} |