diff options
Diffstat (limited to 'modules/devices')
| -rw-r--r-- | modules/devices/inputdevices.c | 152 | 
1 files changed, 76 insertions, 76 deletions
| diff --git a/modules/devices/inputdevices.c b/modules/devices/inputdevices.c index 316461b7..1eb95b2f 100644 --- a/modules/devices/inputdevices.c +++ b/modules/devices/inputdevices.c @@ -46,92 +46,92 @@ __scan_input_devices(void)      dev = fopen("/proc/bus/input/devices", "r");      if (!dev) -	return; +    return;      if (input_list) {          moreinfo_del_with_prefix("DEV:INP"); -	g_free(input_list); -	g_free(input_icons); +        g_free(input_list); +        g_free(input_icons);      }      input_list = g_strdup("");      input_icons = g_strdup("");      while (fgets(buffer, sizeof(buffer), dev)) { -	tmp = buffer; - -	switch (*tmp) { -	case 'N': -	    tmp = strreplacechr(tmp + strlen("N: Name="), "=", ':'); -	    name = g_strdup(tmp); -	    remove_quotes(name); -	    break; -	case 'P': -	    phys = g_strdup(tmp + strlen("P: Phys=")); -	    break; -	case 'I': -	    sscanf(tmp, "I: Bus=%x Vendor=%x Product=%x Version=%x", -		   &bus, &vendor, &product, &version); -	    break; -	case 'H': -	    if (strstr(tmp, "kbd")) -		d = 0;		//INPUT_KEYBOARD; -	    else if (strstr(tmp, "js")) -		d = 1;		//INPUT_JOYSTICK; -	    else if (strstr(tmp, "mouse")) -		d = 2;		//INPUT_MOUSE; -	    else -		d = 4;		//INPUT_UNKNOWN; -	    break; -	case '\n': -	    if (name && strstr(name, "PC Speaker")) { -	      d = 3;		// INPUT_PCSPKR -	    } - -        if (vendor > 0 && product > 0 && g_str_has_prefix(phys, "usb-")) { -            usb_lookup_ids_vendor_product_str(vendor, product, &vendor_str, &product_str); -        } -         -        tmp = g_strdup_printf("INP%d", ++n); -        input_list = h_strdup_cprintf("$%s$%s=\n", -                     input_list, -                     tmp, name); -        input_icons = h_strdup_cprintf("Icon$%s$%s=%s\n", -                      input_icons, -                      tmp, name, -                      input_devices[d].icon); - -        gchar *strhash = g_strdup_printf("[%s]\n" -                /* Name */   "$^$%s=%s\n" -                /* Type */   "%s=%s\n" -                /* Bus */    "%s=0x%x\n" -                /* Vendor */ "$^$%s=[0x%x] %s\n" -                /* Product */"%s=[0x%x] %s\n" -                /* Version */"%s=0x%x\n", -                        _("Device Information"), -                        _("Name"), name, -                        _("Type"), input_devices[d].name, -                        _("Bus"), bus, -                        _("Vendor"), vendor, vendor_str ? vendor_str: _("(Unknown)"), -                        _("Product"), product, product_str ? product_str: _("(Unknown)"), -                        _("Version"), version ); - -        if (phys && phys[1] != 0) { -             strhash = h_strdup_cprintf("%s=%s\n", strhash, _("Connected to"), phys); -        } +        tmp = buffer; -        if (phys && strstr(phys, "ir")) { -            strhash = h_strdup_cprintf("%s=%s\n", strhash, _("InfraRed port"), _("Yes") ); -        } +        switch (*tmp) { +        case 'N': +            tmp = strreplacechr(tmp + strlen("N: Name="), "=", ':'); +            name = g_strdup(tmp); +            remove_quotes(name); +            break; +        case 'P': +            phys = g_strdup(tmp + strlen("P: Phys=")); +            break; +        case 'I': +            sscanf(tmp, "I: Bus=%x Vendor=%x Product=%x Version=%x", +                    &bus, &vendor, &product, &version); +            break; +        case 'H': +            if (strstr(tmp, "kbd")) +            d = 0;      //INPUT_KEYBOARD; +            else if (strstr(tmp, "js")) +            d = 1;      //INPUT_JOYSTICK; +            else if (strstr(tmp, "mouse")) +            d = 2;      //INPUT_MOUSE; +            else +            d = 4;      //INPUT_UNKNOWN; +            break; +        case '\n': +            if (name && strstr(name, "PC Speaker")) { +              d = 3;    // INPUT_PCSPKR +            } -        moreinfo_add_with_prefix("DEV", tmp, strhash); -        g_free(tmp); -        g_free(phys); -        g_free(name); -        g_free(vendor_str); -        g_free(product_str); -        vendor_str = NULL; -        product_str = NULL; -    } +            if (vendor > 0 && product > 0 && g_str_has_prefix(phys, "usb-")) { +                usb_lookup_ids_vendor_product_str(vendor, product, &vendor_str, &product_str); +            } + +            tmp = g_strdup_printf("INP%d", ++n); +            input_list = h_strdup_cprintf("$%s$%s=\n", +                         input_list, +                         tmp, name); +            input_icons = h_strdup_cprintf("Icon$%s$%s=%s\n", +                          input_icons, +                          tmp, name, +                          input_devices[d].icon); + +            gchar *strhash = g_strdup_printf("[%s]\n" +                    /* Name */   "$^$%s=%s\n" +                    /* Type */   "%s=%s\n" +                    /* Bus */    "%s=0x%x\n" +                    /* Vendor */ "$^$%s=[0x%x] %s\n" +                    /* Product */"%s=[0x%x] %s\n" +                    /* Version */"%s=0x%x\n", +                            _("Device Information"), +                            _("Name"), name, +                            _("Type"), input_devices[d].name, +                            _("Bus"), bus, +                            _("Vendor"), vendor, vendor_str ? vendor_str: _("(Unknown)"), +                            _("Product"), product, product_str ? product_str: _("(Unknown)"), +                            _("Version"), version ); + +            if (phys && phys[1] != 0) { +                 strhash = h_strdup_cprintf("%s=%s\n", strhash, _("Connected to"), phys); +            } + +            if (phys && strstr(phys, "ir")) { +                strhash = h_strdup_cprintf("%s=%s\n", strhash, _("InfraRed port"), _("Yes") ); +            } + +            moreinfo_add_with_prefix("DEV", tmp, strhash); +            g_free(tmp); +            g_free(phys); +            g_free(name); +            g_free(vendor_str); +            g_free(product_str); +            vendor_str = NULL; +            product_str = NULL; +        }      }      fclose(dev); | 
