This opens up the way for more vendor IDs to be matched with the right options.
Signed-off-by: Peter Hutterer <[email protected]> --- src/wcmUSB.c | 178 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 88 insertions(+), 90 deletions(-) diff --git a/src/wcmUSB.c b/src/wcmUSB.c index 90df2d8..b430af9 100644 --- a/src/wcmUSB.c +++ b/src/wcmUSB.c @@ -332,93 +332,94 @@ static unsigned short padkey_codes [] = { static struct { + const unsigned int vendor_id; unsigned char model_id; int yRes; /* tablet Y resolution in points/inch */ int xRes; /* tablet X resolution in points/inch */ WacomModelPtr model; } WacomModelDesc [] = { - { 0x00, 1000, 1000, &usbPenPartner }, /* PenPartner */ - { 0x10, 2032, 2032, &usbGraphire }, /* Graphire */ - { 0x11, 2032, 2032, &usbGraphire2 }, /* Graphire2 4x5 */ - { 0x12, 2032, 2032, &usbGraphire2 }, /* Graphire2 5x7 */ - { 0x13, 2032, 2032, &usbGraphire3 }, /* Graphire3 4x5 */ - { 0x14, 2032, 2032, &usbGraphire3 }, /* Graphire3 6x8 */ - { 0x15, 2032, 2032, &usbGraphire4 }, /* Graphire4 4x5 */ - { 0x16, 2032, 2032, &usbGraphire4 }, /* Graphire4 6x8 */ - { 0x17, 2540, 2540, &usbBambooFun }, /* BambooFun 4x5 */ - { 0x18, 2540, 2540, &usbBambooFun }, /* BambooFun 6x8 */ - { 0x19, 2032, 2032, &usbBamboo1 }, /* Bamboo1 Medium*/ - { 0x81, 2032, 2032, &usbGraphire4 }, /* Graphire4 6x8 BlueTooth */ - - { 0xD1, 2540, 2540, &usbBamboo }, /* CTL-460 */ - { 0xD4, 2540, 2540, &usbBamboo }, /* CTH-461 */ - { 0xD3, 2540, 2540, &usbBamboo }, /* CTL-660 */ - { 0xD2, 2540, 2540, &usbBamboo }, /* CTL-461/S */ - { 0xD0, 2540, 2540, &usbBamboo }, /* Bamboo Touch */ - - { 0x20, 2540, 2540, &usbIntuos }, /* Intuos 4x5 */ - { 0x21, 2540, 2540, &usbIntuos }, /* Intuos 6x8 */ - { 0x22, 2540, 2540, &usbIntuos }, /* Intuos 9x12 */ - { 0x23, 2540, 2540, &usbIntuos }, /* Intuos 12x12 */ - { 0x24, 2540, 2540, &usbIntuos }, /* Intuos 12x18 */ - - { 0x03, 508, 508, &usbCintiqPartner }, /* PTU600 */ - - { 0x30, 508, 508, &usbCintiq }, /* PL400 */ - { 0x31, 508, 508, &usbCintiq }, /* PL500 */ - { 0x32, 508, 508, &usbCintiq }, /* PL600 */ - { 0x33, 508, 508, &usbCintiq }, /* PL600SX */ - { 0x34, 508, 508, &usbCintiq }, /* PL550 */ - { 0x35, 508, 508, &usbCintiq }, /* PL800 */ - { 0x37, 508, 508, &usbCintiq }, /* PL700 */ - { 0x38, 508, 508, &usbCintiq }, /* PL510 */ - { 0x39, 508, 508, &usbCintiq }, /* PL710 */ - { 0xC0, 508, 508, &usbCintiq }, /* DTF720 */ - { 0xC2, 508, 508, &usbCintiq }, /* DTF720a */ - { 0xC4, 508, 508, &usbCintiq }, /* DTF521 */ - { 0xC7, 2540, 2540, &usbCintiq }, /* DTU1931 */ - - { 0x41, 2540, 2540, &usbIntuos2 }, /* Intuos2 4x5 */ - { 0x42, 2540, 2540, &usbIntuos2 }, /* Intuos2 6x8 */ - { 0x43, 2540, 2540, &usbIntuos2 }, /* Intuos2 9x12 */ - { 0x44, 2540, 2540, &usbIntuos2 }, /* Intuos2 12x12 */ - { 0x45, 2540, 2540, &usbIntuos2 }, /* Intuos2 12x18 */ - { 0x47, 2540, 2540, &usbIntuos2 }, /* Intuos2 6x8 */ - - { 0x60, 1016, 1016, &usbVolito }, /* Volito */ - - { 0x61, 1016, 1016, &usbVolito2 }, /* PenStation */ - { 0x62, 1016, 1016, &usbVolito2 }, /* Volito2 4x5 */ - { 0x63, 1016, 1016, &usbVolito2 }, /* Volito2 2x3 */ - { 0x64, 1016, 1016, &usbVolito2 }, /* PenPartner2 */ - - { 0x65, 2540, 2540, &usbBamboo }, /* Bamboo */ - { 0x69, 1012, 1012, &usbBamboo1 }, /* Bamboo1 */ - - { 0xB0, 5080, 5080, &usbIntuos3 }, /* Intuos3 4x5 */ - { 0xB1, 5080, 5080, &usbIntuos3 }, /* Intuos3 6x8 */ - { 0xB2, 5080, 5080, &usbIntuos3 }, /* Intuos3 9x12 */ - { 0xB3, 5080, 5080, &usbIntuos3 }, /* Intuos3 12x12 */ - { 0xB4, 5080, 5080, &usbIntuos3 }, /* Intuos3 12x19 */ - { 0xB5, 5080, 5080, &usbIntuos3 }, /* Intuos3 6x11 */ - { 0xB7, 5080, 5080, &usbIntuos3 }, /* Intuos3 4x6 */ - - { 0xB8, 5080, 5080, &usbIntuos4 }, /* Intuos4 4x6 */ - { 0xB9, 5080, 5080, &usbIntuos4 }, /* Intuos4 6x9 */ - { 0xBA, 5080, 5080, &usbIntuos4 }, /* Intuos4 8x13 */ - { 0xBB, 5080, 5080, &usbIntuos4 }, /* Intuos4 12x19*/ - - { 0x3F, 5080, 5080, &usbCintiqV5 }, /* Cintiq 21UX */ - { 0xC5, 5080, 5080, &usbCintiqV5 }, /* Cintiq 20WSX */ - { 0xC6, 5080, 5080, &usbCintiqV5 }, /* Cintiq 12WX */ - - { 0x90, 2540, 2540, &usbTabletPC }, /* TabletPC 0x90 */ - { 0x93, 2540, 2540, &usbTabletPC }, /* TabletPC 0x93 */ - { 0x9A, 2540, 2540, &usbTabletPC }, /* TabletPC 0x9A */ - { 0x9F, 10, 10, &usbTabletPC }, /* CapPlus 0x9F */ - { 0xE2, 10, 10, &usbTabletPC }, /* TabletPC 0xE2 */ - { 0xE3, 2540, 2540, &usbTabletPC } /* TabletPC 0xE3 */ + { WACOM_VENDOR_ID, 0x00, 1000, 1000, &usbPenPartner }, /* PenPartner */ + { WACOM_VENDOR_ID, 0x10, 2032, 2032, &usbGraphire }, /* Graphire */ + { WACOM_VENDOR_ID, 0x11, 2032, 2032, &usbGraphire2 }, /* Graphire2 4x5 */ + { WACOM_VENDOR_ID, 0x12, 2032, 2032, &usbGraphire2 }, /* Graphire2 5x7 */ + { WACOM_VENDOR_ID, 0x13, 2032, 2032, &usbGraphire3 }, /* Graphire3 4x5 */ + { WACOM_VENDOR_ID, 0x14, 2032, 2032, &usbGraphire3 }, /* Graphire3 6x8 */ + { WACOM_VENDOR_ID, 0x15, 2032, 2032, &usbGraphire4 }, /* Graphire4 4x5 */ + { WACOM_VENDOR_ID, 0x16, 2032, 2032, &usbGraphire4 }, /* Graphire4 6x8 */ + { WACOM_VENDOR_ID, 0x17, 2540, 2540, &usbBambooFun }, /* BambooFun 4x5 */ + { WACOM_VENDOR_ID, 0x18, 2540, 2540, &usbBambooFun }, /* BambooFun 6x8 */ + { WACOM_VENDOR_ID, 0x19, 2032, 2032, &usbBamboo1 }, /* Bamboo1 Medium*/ + { WACOM_VENDOR_ID, 0x81, 2032, 2032, &usbGraphire4 }, /* Graphire4 6x8 BlueTooth */ + + { WACOM_VENDOR_ID, 0xD1, 2540, 2540, &usbBamboo }, /* CTL-460 */ + { WACOM_VENDOR_ID, 0xD4, 2540, 2540, &usbBamboo }, /* CTH-461 */ + { WACOM_VENDOR_ID, 0xD3, 2540, 2540, &usbBamboo }, /* CTL-660 */ + { WACOM_VENDOR_ID, 0xD2, 2540, 2540, &usbBamboo }, /* CTL-461/S */ + { WACOM_VENDOR_ID, 0xD0, 2540, 2540, &usbBamboo }, /* Bamboo Touch */ + + { WACOM_VENDOR_ID, 0x20, 2540, 2540, &usbIntuos }, /* Intuos 4x5 */ + { WACOM_VENDOR_ID, 0x21, 2540, 2540, &usbIntuos }, /* Intuos 6x8 */ + { WACOM_VENDOR_ID, 0x22, 2540, 2540, &usbIntuos }, /* Intuos 9x12 */ + { WACOM_VENDOR_ID, 0x23, 2540, 2540, &usbIntuos }, /* Intuos 12x12 */ + { WACOM_VENDOR_ID, 0x24, 2540, 2540, &usbIntuos }, /* Intuos 12x18 */ + + { WACOM_VENDOR_ID, 0x03, 508, 508, &usbCintiqPartner }, /* PTU600 */ + + { WACOM_VENDOR_ID, 0x30, 508, 508, &usbCintiq }, /* PL400 */ + { WACOM_VENDOR_ID, 0x31, 508, 508, &usbCintiq }, /* PL500 */ + { WACOM_VENDOR_ID, 0x32, 508, 508, &usbCintiq }, /* PL600 */ + { WACOM_VENDOR_ID, 0x33, 508, 508, &usbCintiq }, /* PL600SX */ + { WACOM_VENDOR_ID, 0x34, 508, 508, &usbCintiq }, /* PL550 */ + { WACOM_VENDOR_ID, 0x35, 508, 508, &usbCintiq }, /* PL800 */ + { WACOM_VENDOR_ID, 0x37, 508, 508, &usbCintiq }, /* PL700 */ + { WACOM_VENDOR_ID, 0x38, 508, 508, &usbCintiq }, /* PL510 */ + { WACOM_VENDOR_ID, 0x39, 508, 508, &usbCintiq }, /* PL710 */ + { WACOM_VENDOR_ID, 0xC0, 508, 508, &usbCintiq }, /* DTF720 */ + { WACOM_VENDOR_ID, 0xC2, 508, 508, &usbCintiq }, /* DTF720a */ + { WACOM_VENDOR_ID, 0xC4, 508, 508, &usbCintiq }, /* DTF521 */ + { WACOM_VENDOR_ID, 0xC7, 2540, 2540, &usbCintiq }, /* DTU1931 */ + + { WACOM_VENDOR_ID, 0x41, 2540, 2540, &usbIntuos2 }, /* Intuos2 4x5 */ + { WACOM_VENDOR_ID, 0x42, 2540, 2540, &usbIntuos2 }, /* Intuos2 6x8 */ + { WACOM_VENDOR_ID, 0x43, 2540, 2540, &usbIntuos2 }, /* Intuos2 9x12 */ + { WACOM_VENDOR_ID, 0x44, 2540, 2540, &usbIntuos2 }, /* Intuos2 12x12 */ + { WACOM_VENDOR_ID, 0x45, 2540, 2540, &usbIntuos2 }, /* Intuos2 12x18 */ + { WACOM_VENDOR_ID, 0x47, 2540, 2540, &usbIntuos2 }, /* Intuos2 6x8 */ + + { WACOM_VENDOR_ID, 0x60, 1016, 1016, &usbVolito }, /* Volito */ + + { WACOM_VENDOR_ID, 0x61, 1016, 1016, &usbVolito2 }, /* PenStation */ + { WACOM_VENDOR_ID, 0x62, 1016, 1016, &usbVolito2 }, /* Volito2 4x5 */ + { WACOM_VENDOR_ID, 0x63, 1016, 1016, &usbVolito2 }, /* Volito2 2x3 */ + { WACOM_VENDOR_ID, 0x64, 1016, 1016, &usbVolito2 }, /* PenPartner2 */ + + { WACOM_VENDOR_ID, 0x65, 2540, 2540, &usbBamboo }, /* Bamboo */ + { WACOM_VENDOR_ID, 0x69, 1012, 1012, &usbBamboo1 }, /* Bamboo1 */ + + { WACOM_VENDOR_ID, 0xB0, 5080, 5080, &usbIntuos3 }, /* Intuos3 4x5 */ + { WACOM_VENDOR_ID, 0xB1, 5080, 5080, &usbIntuos3 }, /* Intuos3 6x8 */ + { WACOM_VENDOR_ID, 0xB2, 5080, 5080, &usbIntuos3 }, /* Intuos3 9x12 */ + { WACOM_VENDOR_ID, 0xB3, 5080, 5080, &usbIntuos3 }, /* Intuos3 12x12 */ + { WACOM_VENDOR_ID, 0xB4, 5080, 5080, &usbIntuos3 }, /* Intuos3 12x19 */ + { WACOM_VENDOR_ID, 0xB5, 5080, 5080, &usbIntuos3 }, /* Intuos3 6x11 */ + { WACOM_VENDOR_ID, 0xB7, 5080, 5080, &usbIntuos3 }, /* Intuos3 4x6 */ + + { WACOM_VENDOR_ID, 0xB8, 5080, 5080, &usbIntuos4 }, /* Intuos4 4x6 */ + { WACOM_VENDOR_ID, 0xB9, 5080, 5080, &usbIntuos4 }, /* Intuos4 6x9 */ + { WACOM_VENDOR_ID, 0xBA, 5080, 5080, &usbIntuos4 }, /* Intuos4 8x13 */ + { WACOM_VENDOR_ID, 0xBB, 5080, 5080, &usbIntuos4 }, /* Intuos4 12x19*/ + + { WACOM_VENDOR_ID, 0x3F, 5080, 5080, &usbCintiqV5 }, /* Cintiq 21UX */ + { WACOM_VENDOR_ID, 0xC5, 5080, 5080, &usbCintiqV5 }, /* Cintiq 20WSX */ + { WACOM_VENDOR_ID, 0xC6, 5080, 5080, &usbCintiqV5 }, /* Cintiq 12WX */ + + { WACOM_VENDOR_ID, 0x90, 2540, 2540, &usbTabletPC }, /* TabletPC 0x90 */ + { WACOM_VENDOR_ID, 0x93, 2540, 2540, &usbTabletPC }, /* TabletPC 0x93 */ + { WACOM_VENDOR_ID, 0x9A, 2540, 2540, &usbTabletPC }, /* TabletPC 0x9A */ + { WACOM_VENDOR_ID, 0x9F, 10, 10, &usbTabletPC }, /* CapPlus 0x9F */ + { WACOM_VENDOR_ID, 0xE2, 10, 10, &usbTabletPC }, /* TabletPC 0xE2 */ + { WACOM_VENDOR_ID, 0xE3, 2540, 2540, &usbTabletPC } /* TabletPC 0xE3 */ }; static Bool usbWcmInit(LocalDevicePtr local, char* id, float *version) @@ -435,17 +436,14 @@ static Bool usbWcmInit(LocalDevicePtr local, char* id, float *version) ioctl(local->fd, EVIOCGID, &sID); ioctl(local->fd, EVIOCGNAME(sizeof(id)), id); - /* vendor is wacom */ - if (sID.vendor == WACOM_VENDOR_ID) + for (i = 0; i < sizeof (WacomModelDesc) / sizeof (WacomModelDesc [0]); i++) { - for (i = 0; i < sizeof (WacomModelDesc) / sizeof (WacomModelDesc [0]); i++) + if (sID.vendor == WacomModelDesc[i].vendor_id && + sID.product == WacomModelDesc [i].model_id) { - if (sID.product == WacomModelDesc [i].model_id) - { - common->wcmModel = WacomModelDesc [i].model; - common->wcmResolX = WacomModelDesc [i].xRes; - common->wcmResolY = WacomModelDesc [i].yRes; - } + common->wcmModel = WacomModelDesc [i].model; + common->wcmResolX = WacomModelDesc [i].xRes; + common->wcmResolY = WacomModelDesc [i].yRes; } } -- 1.7.0.1 ------------------------------------------------------------------------------ _______________________________________________ Linuxwacom-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel
