Diff between c6fc73e1fac31b09a367414c64462d96123e4467 and 7c2a566b8a95fe3a701941c7d46ddccb14a78dae

Changed Files

File Additions Deletions Status
src/dbus-common.c +33 -0 modified
src/dbus-common.h +1 -0 modified

Full Patch

diff --git a/src/dbus-common.c b/src/dbus-common.c
index ef3b375..7e1bc94 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 b196a1b..b9531f2 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);