static void list_devices (GList *devices) { GList *l; for (l = devices; l ; l = l->next) { CsdWacomDevice *device; CsdWacomDeviceType type; char *loc; device = l->data; g_signal_connect (G_OBJECT (device), "notify::last-stylus", G_CALLBACK (last_stylus_changed), NULL); g_print ("Device '%s' (type: %s)\n", csd_wacom_device_get_name (device), csd_wacom_device_type_to_string (csd_wacom_device_get_device_type (device))); g_print ("\tReversible: %s\n", BOOL_AS_STR (csd_wacom_device_reversible (device))); g_print ("\tScreen Tablet: %s\n", BOOL_AS_STR (csd_wacom_device_is_screen_tablet (device))); g_print ("\tIntegrated Device: %s\n", BOOL_AS_STR (csd_wacom_device_is_isd (device))); g_print ("\tUnknown (fallback) device: %s\n", BOOL_AS_STR(csd_wacom_device_is_fallback (device))); loc = get_loc (csd_wacom_device_get_settings (device)); g_print ("\tGeneric settings: %s\n", loc); g_free (loc); type = csd_wacom_device_get_device_type (device); if (type == WACOM_TYPE_STYLUS || type == WACOM_TYPE_ERASER) { GList *styli, *j; CsdWacomStylus *current_stylus; g_object_get (device, "last-stylus", ¤t_stylus, NULL); styli = csd_wacom_device_list_styli (device); for (j = styli; j; j = j->next) { CsdWacomStylus *stylus; stylus = j->data; print_stylus (stylus, current_stylus == stylus); } g_list_free (styli); } print_buttons (device); if (monitor_styli == FALSE) g_object_unref (device); } g_list_free (devices); }
static void print_stylus (GsdWacomStylus *stylus, gboolean is_current) { GsdWacomDevice *device; char *loc; device = gsd_wacom_stylus_get_device (stylus); g_print ("\t%sStylus: '%s' (Type: %s, ID: 0x%x)\n", is_current ? "*** " : "", gsd_wacom_stylus_get_name (stylus), stylus_type_to_string (gsd_wacom_stylus_get_stylus_type (stylus)), gsd_wacom_stylus_get_id (stylus)); loc = get_loc (gsd_wacom_stylus_get_settings (stylus)); g_print ("\t\tSettings: %s\n", loc); g_free (loc); g_print ("\t\tIcon name: %s\n", gsd_wacom_stylus_get_icon_name (stylus)); if (gsd_wacom_device_get_device_type (device) == WACOM_TYPE_STYLUS) { int num_buttons; char *buttons; g_print ("\t\tHas Eraser: %s\n", BOOL_AS_STR(gsd_wacom_stylus_get_has_eraser (stylus))); num_buttons = gsd_wacom_stylus_get_num_buttons (stylus); if (num_buttons < 0) num_buttons = 2; if (num_buttons > 0) buttons = g_strdup_printf ("%d buttons", num_buttons); else buttons = g_strdup ("no button"); g_print ("\t\tButtons: %s\n", buttons); g_free (buttons); } }