summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-misc/logitech-applet')
-rw-r--r--app-misc/logitech-applet/Manifest1
-rw-r--r--app-misc/logitech-applet/files/logitech_applet-mx518.patch137
2 files changed, 138 insertions, 0 deletions
diff --git a/app-misc/logitech-applet/Manifest b/app-misc/logitech-applet/Manifest
index 1b949c8a85d5..803f885443c0 100644
--- a/app-misc/logitech-applet/Manifest
+++ b/app-misc/logitech-applet/Manifest
@@ -1,6 +1,7 @@
MD5 840b6d8c51bb887a7dcb19ccd2a97fa9 ChangeLog 822
MD5 c2f74101a06866a427bbdfbb90ff1067 files/digest-logitech-applet-0.4_pre1 75
MD5 c2f74101a06866a427bbdfbb90ff1067 files/digest-logitech-applet-0.4_pre1-r1 75
+MD5 f36758aa14f1b909d8fd2c3d5a717f1e files/logitech_applet-mx518.patch 5721
MD5 709badbcc9a34d9a2b522fe8d373840d logitech-applet-0.4_pre1-r1.ebuild 835
MD5 ee107c395996d11afbf986a2ab83cfad logitech-applet-0.4_pre1.ebuild 703
MD5 d11ad4b39fa439e887f9ea957edca937 metadata.xml 339
diff --git a/app-misc/logitech-applet/files/logitech_applet-mx518.patch b/app-misc/logitech-applet/files/logitech_applet-mx518.patch
new file mode 100644
index 000000000000..ae9f333eb844
--- /dev/null
+++ b/app-misc/logitech-applet/files/logitech_applet-mx518.patch
@@ -0,0 +1,137 @@
+--- logitech_applet-0.4test1/logitech_applet.c 2004-09-21 13:18:55.000000000 +0100
++++ logitech_applet.c 2006-02-03 14:30:35.000000000 +0000
+@@ -40,6 +40,42 @@
+ #endif
+
+ #define VENDOR_LOGITECH 0x046D
++#define HAS_RES 0x01 /* mouse supports variable resolution */
++#define HAS_SS 0x02 /* mouse supports smart scroll control */
++#define HAS_CSR 0x04 /* mouse supports cordless status reporting and control */
++#define HAS_SSR 0x08 /* mouse supports smart scroll reporting */
++#define USE_CH2 0x10 /* mouse needs to use the second channel */
++
++struct device_table {
++ int idVendor;
++ int idProduct;
++ char* Model;
++ char* Name;
++ int flags;
++}
++
++device_table[] = {
++ { VENDOR_LOGITECH, 0xC00E, "M-BJ58", "Wheel Mouse Optical", HAS_RES },
++ { VENDOR_LOGITECH, 0xC00F, "M-BJ79", "MouseMan Traveler", HAS_RES },
++ { 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 },
++ { VENDOR_LOGITECH, 0xC501, "C-BA4-MSE", "Mouse Receiver", HAS_CSR },
++ { VENDOR_LOGITECH, 0xC502, "C-UA3-DUAL", "Dual Receiver", HAS_CSR | USE_CH2},
++ { VENDOR_LOGITECH, 0xC504, "C-BD9-DUAL", "Cordless Freedom Optical", HAS_CSR | USE_CH2 },
++ { VENDOR_LOGITECH, 0xC505, "C-BG17-DUAL", "Cordless Elite Duo", HAS_SS | HAS_SSR | HAS_CSR | USE_CH2},
++ { VENDOR_LOGITECH, 0xC506, "C-BF16-MSE", "MX700 Optical Mouse", HAS_SS | HAS_CSR },
++ { VENDOR_LOGITECH, 0xC508, "C-BA4-MSE", "Cordless Optical TrackMan", HAS_SS | HAS_CSR },
++ { VENDOR_LOGITECH, 0xC50B, "967300-0403", "Cordless MX Duo Receiver", HAS_SS|HAS_CSR },
++ { VENDOR_LOGITECH, 0xC50E, "M-RAG97", "MX1000 Laser Mouse", HAS_SS | HAS_CSR },
++ { VENDOR_LOGITECH, 0xC702, "C-UF15", "Receiver for Cordless Presenter", HAS_CSR },
++ { 0, 0, 0, 0, 0 }
++};
++
+
+ int get_resolution(struct usb_device *dev)
+ {
+@@ -141,7 +177,12 @@
+ return cruise;
+ }
+
+-/* resolution should be 0x03 for 400cpi, 0x04 for 800cpi */
++/* resolution should be:
++ * - 0x03 for 400cpi
++ * - 0x04 for 800cpi
++ * - 0x05 for 1200cpi
++ * - 0x06 for 1600cpi
++ */
+ int set_resolution(struct usb_device *dev, int resolution)
+ {
+ usb_dev_handle *usb_h;
+@@ -233,39 +274,6 @@
+ printf("Logitech Mouse Applet, Version %s\n", VERSION);
+ }
+
+-#define HAS_RES 0x01 /* mouse supports variable resolution */
+-#define HAS_SS 0x02 /* mouse supports smart scroll control */
+-#define HAS_CSR 0x04 /* mouse supports cordless status reporting and control */
+-#define HAS_SSR 0x08 /* mouse supports smart scroll reporting */
+-#define USE_CH2 0x10 /* mouse needs to use the second channel */
+-
+-struct device_table {
+- int idVendor;
+- int idProduct;
+- char* Model;
+- char* Name;
+- int flags;
+-} device_table[] = {
+- { VENDOR_LOGITECH, 0xC00E, "M-BJ58", "Wheel Mouse Optical", HAS_RES },
+- { VENDOR_LOGITECH, 0xC00F, "M-BJ79", "MouseMan Traveler", HAS_RES },
+- { 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, 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 },
+- { VENDOR_LOGITECH, 0xC501, "C-BA4-MSE", "Mouse Receiver", HAS_CSR },
+- { VENDOR_LOGITECH, 0xC502, "C-UA3-DUAL", "Dual Receiver", HAS_CSR | USE_CH2},
+- { VENDOR_LOGITECH, 0xC504, "C-BD9-DUAL", "Cordless Freedom Optical", HAS_CSR | USE_CH2 },
+- { VENDOR_LOGITECH, 0xC505, "C-BG17-DUAL", "Cordless Elite Duo", HAS_SS | HAS_SSR | HAS_CSR | USE_CH2},
+- { VENDOR_LOGITECH, 0xC506, "C-BF16-MSE", "MX700 Optical Mouse", HAS_SS | HAS_CSR },
+- { VENDOR_LOGITECH, 0xC508, "C-BA4-MSE", "Cordless Optical TrackMan", HAS_SS | HAS_CSR },
+- { VENDOR_LOGITECH, 0xC50B, "967300-0403", "Cordless MX Duo Receiver", HAS_SS|HAS_CSR },
+- { VENDOR_LOGITECH, 0xC50E, "M-RAG97", "MX1000 Laser Mouse", HAS_SS | HAS_CSR },
+- { VENDOR_LOGITECH, 0xC702, "C-UF15", "Receiver for Cordless Presenter", HAS_CSR },
+- { 0, 0, 0, 0, 0 }
+-};
+-
+ int main(int argc, char **argv)
+ {
+ struct usb_bus *bus;
+@@ -318,8 +326,12 @@
+ 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, 800, 1200 or 1600)\n");
+ break;
+ case 'v':
+ version();
+@@ -363,14 +375,22 @@
+ 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);
+ }
+ }
+