--- logitech_applet-0.4test1/logitech_applet.c.mx518 2004-09-21 20:18:55.000000000 +0800 +++ logitech_applet-0.4test1/logitech_applet.c 2005-05-03 08:04:38.000000000 +0800 @@ -251,6 +251,7 @@ struct device_table { { VENDOR_LOGITECH, 0xC012, "M-BL63B", "MouseMan Dual Optical", HAS_RES }, { VENDOR_LOGITECH, 0xC01B, "M-BP86", "MX310 Optical Mouse", HAS_RES }, { VENDOR_LOGITECH, 0xC01D, "M-BS81A", "MX510 Optical Mouse", HAS_RES | HAS_SS | HAS_SSR }, + { VENDOR_LOGITECH, 0xC01E, "M-BS81A", "MX518 Optical Mouse", HAS_RES }, { VENDOR_LOGITECH, 0xC024, "M-BP82", "MX300 Optical Mouse", HAS_RES }, { VENDOR_LOGITECH, 0xC025, "M-BP81A", "MX500 Optical Mouse", HAS_RES | HAS_SS | HAS_SSR }, { VENDOR_LOGITECH, 0xC031, "M-UT58A", "iFeel Mouse (silver)", HAS_RES }, @@ -318,8 +319,12 @@ int main(int argc, char **argv) resolution = 400; else if (!strcmp("800", optarg)) resolution = 800; + else if (!strcmp("1200", optarg)) + resolution = 1200; + else if (!strcmp("1600", optarg)) + resolution = 1600; else - printf("Bad argument (should be 400 or 800)\n"); + printf("Bad argument (should be 400 or 800;\non some models 1200 and 1600 are acceptable)\n"); break; case 'v': version(); @@ -363,14 +368,22 @@ int main(int argc, char **argv) break; case 4: printf("800cpi\n"); break; + case 5: printf("1200cpi\n"); + break; + case 6: printf("1600cpi\n"); + break; default: printf("(Unexpected result:%i)\n", resolution); break; } } else { if (400 == resolution) set_resolution(dev, 0x03); - else + else if (800 == resolution) set_resolution(dev, 0x04); + else if (1200 == resolution) + set_resolution(dev, 0x05); + else + set_resolution(dev, 0x06); } } .