summaryrefslogtreecommitdiff
path: root/src/dbus-common.c
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@nokia.com>2010-10-26 14:41:56 -0400
committerJohan Hedberg <johan.hedberg@nokia.com>2010-10-26 14:41:56 -0400
commit7dd1803f5c49c3168e36e1f99f3481c06b09a6f5 (patch)
tree557ff992f94e5cc1f6b2293b0ca89df545cec828 /src/dbus-common.c
parent81e557b840b35a563f93b2d2542a14ddb8835ab7 (diff)
downloadbluez-7dd1803f5c49c3168e36e1f99f3481c06b09a6f5.tar.gz
Move class_to_icon() to dbus-common.c
Diffstat (limited to 'src/dbus-common.c')
-rw-r--r--src/dbus-common.c64
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;
+}