diff options
-rw-r--r-- | src/wcmConfig.c | 3 | ||||
-rw-r--r-- | src/wcmUSB.c | 339 | ||||
-rw-r--r-- | src/xf86Wacom.h | 1 |
3 files changed, 195 insertions, 148 deletions
diff --git a/src/wcmConfig.c b/src/wcmConfig.c index 1955661..2d19944 100644 --- a/src/wcmConfig.c +++ b/src/wcmConfig.c @@ -659,6 +659,9 @@ static pointer wcmPlug(pointer module, pointer options, int* errmaj, int* errmin) { xf86AddInputDriver(&WACOM, module, 0); + + usbListModels(); + return module; } diff --git a/src/wcmUSB.c b/src/wcmUSB.c index f1504cf..068b306 100644 --- a/src/wcmUSB.c +++ b/src/wcmUSB.c @@ -172,172 +172,215 @@ static unsigned short mouse_codes [] = { BTN_SIDE, BTN_EXTRA }; -static struct +static struct WacomModelDesc { const unsigned int vendor_id; const unsigned int model_id; int yRes; /* tablet Y resolution in units/meter */ int xRes; /* tablet X resolution in units/meter */ WacomModelPtr model; + const char *name; } WacomModelDesc [] = { - { WACOM_VENDOR_ID, 0x00, 39370, 39370, &usbPenPartner }, /* PenPartner */ - { WACOM_VENDOR_ID, 0x10, 80000, 80000, &usbGraphire }, /* Graphire */ - { WACOM_VENDOR_ID, 0x11, 80000, 80000, &usbGraphire2 }, /* Graphire2 4x5 */ - { WACOM_VENDOR_ID, 0x12, 80000, 80000, &usbGraphire2 }, /* Graphire2 5x7 */ - { WACOM_VENDOR_ID, 0x13, 80000, 80000, &usbGraphire3 }, /* Graphire3 4x5 */ - { WACOM_VENDOR_ID, 0x14, 80000, 80000, &usbGraphire3 }, /* Graphire3 6x8 */ - { WACOM_VENDOR_ID, 0x15, 80000, 80000, &usbGraphire4 }, /* Graphire4 4x5 */ - { WACOM_VENDOR_ID, 0x16, 80000, 80000, &usbGraphire4 }, /* Graphire4 6x8 */ - { WACOM_VENDOR_ID, 0x17, 100000, 100000, &usbBambooFun }, /* BambooFun 4x5 */ - { WACOM_VENDOR_ID, 0x18, 100000, 100000, &usbBambooFun }, /* BambooFun 6x8 */ - { WACOM_VENDOR_ID, 0x19, 80000, 80000, &usbBamboo1 }, /* Bamboo1 Medium*/ - { WACOM_VENDOR_ID, 0x81, 80000, 80000, &usbGraphire4 }, /* Graphire4 6x8 BlueTooth */ - - { WACOM_VENDOR_ID, 0xD1, 100000, 100000, &usbBamboo }, /* CTL-460 */ - { WACOM_VENDOR_ID, 0xD4, 100000, 100000, &usbBamboo }, /* CTH-461 */ - { WACOM_VENDOR_ID, 0xD3, 100000, 100000, &usbBamboo }, /* CTL-660 */ - { WACOM_VENDOR_ID, 0xD2, 100000, 100000, &usbBamboo }, /* CTL-461/S */ - { WACOM_VENDOR_ID, 0xD0, 100000, 100000, &usbBamboo }, /* Bamboo Touch */ - { WACOM_VENDOR_ID, 0xD6, 100000, 100000, &usbBamboo }, /* CTH-460/K */ - { WACOM_VENDOR_ID, 0xD7, 100000, 100000, &usbBamboo }, /* CTH-461/S */ - { WACOM_VENDOR_ID, 0xD8, 100000, 100000, &usbBamboo }, /* CTH-661/S1 */ - { WACOM_VENDOR_ID, 0xDA, 100000, 100000, &usbBamboo }, /* CTH-461/L */ - { WACOM_VENDOR_ID, 0xDB, 100000, 100000, &usbBamboo }, /* CTH-661/L */ - - { WACOM_VENDOR_ID, 0x20, 100000, 100000, &usbIntuos }, /* Intuos 4x5 */ - { WACOM_VENDOR_ID, 0x21, 100000, 100000, &usbIntuos }, /* Intuos 6x8 */ - { WACOM_VENDOR_ID, 0x22, 100000, 100000, &usbIntuos }, /* Intuos 9x12 */ - { WACOM_VENDOR_ID, 0x23, 100000, 100000, &usbIntuos }, /* Intuos 12x12 */ - { WACOM_VENDOR_ID, 0x24, 100000, 100000, &usbIntuos }, /* Intuos 12x18 */ - - { WACOM_VENDOR_ID, 0x03, 20000, 20000, &usbCintiqPartner }, /* PTU600 */ - - { WACOM_VENDOR_ID, 0x30, 20000, 20000, &usbCintiq }, /* PL400 */ - { WACOM_VENDOR_ID, 0x31, 20000, 20000, &usbCintiq }, /* PL500 */ - { WACOM_VENDOR_ID, 0x32, 20000, 20000, &usbCintiq }, /* PL600 */ - { WACOM_VENDOR_ID, 0x33, 20000, 20000, &usbCintiq }, /* PL600SX */ - { WACOM_VENDOR_ID, 0x34, 20000, 20000, &usbCintiq }, /* PL550 */ - { WACOM_VENDOR_ID, 0x35, 20000, 20000, &usbCintiq }, /* PL800 */ - { WACOM_VENDOR_ID, 0x37, 20000, 20000, &usbCintiq }, /* PL700 */ - { WACOM_VENDOR_ID, 0x38, 20000, 20000, &usbCintiq }, /* PL510 */ - { WACOM_VENDOR_ID, 0x39, 20000, 20000, &usbCintiq }, /* PL710 */ - { WACOM_VENDOR_ID, 0x3A, 20000, 20000, &usbCintiq }, /* DTI520 */ - { WACOM_VENDOR_ID, 0xC0, 20000, 20000, &usbCintiq }, /* DTF720 */ - { WACOM_VENDOR_ID, 0xC2, 20000, 20000, &usbCintiq }, /* DTF720a */ - { WACOM_VENDOR_ID, 0xC4, 20000, 20000, &usbCintiq }, /* DTF521 */ - { WACOM_VENDOR_ID, 0xC7, 100000, 100000, &usbCintiq }, /* DTU1931 */ - { WACOM_VENDOR_ID, 0xCE, 100000, 100000, &usbCintiq }, /* DTU2231 */ - { WACOM_VENDOR_ID, 0xF0, 100000, 100000, &usbCintiq }, /* DTU1631 */ - - { WACOM_VENDOR_ID, 0x41, 100000, 100000, &usbIntuos2 }, /* Intuos2 4x5 */ - { WACOM_VENDOR_ID, 0x42, 100000, 100000, &usbIntuos2 }, /* Intuos2 6x8 */ - { WACOM_VENDOR_ID, 0x43, 100000, 100000, &usbIntuos2 }, /* Intuos2 9x12 */ - { WACOM_VENDOR_ID, 0x44, 100000, 100000, &usbIntuos2 }, /* Intuos2 12x12 */ - { WACOM_VENDOR_ID, 0x45, 100000, 100000, &usbIntuos2 }, /* Intuos2 12x18 */ - { WACOM_VENDOR_ID, 0x47, 100000, 100000, &usbIntuos2 }, /* Intuos2 6x8 */ - - { WACOM_VENDOR_ID, 0x60, 50000, 50000, &usbVolito }, /* Volito */ - - { WACOM_VENDOR_ID, 0x61, 50000, 50000, &usbVolito2 }, /* PenStation */ - { WACOM_VENDOR_ID, 0x62, 50000, 50000, &usbVolito2 }, /* Volito2 4x5 */ - { WACOM_VENDOR_ID, 0x63, 50000, 50000, &usbVolito2 }, /* Volito2 2x3 */ - { WACOM_VENDOR_ID, 0x64, 50000, 50000, &usbVolito2 }, /* PenPartner2 */ - - { WACOM_VENDOR_ID, 0x65, 100000, 100000, &usbBamboo }, /* Bamboo */ - { WACOM_VENDOR_ID, 0x69, 39842, 39842, &usbBamboo1 }, /* Bamboo1 */ - { WACOM_VENDOR_ID, 0x6A, 100000, 100000, &usbBamboo1 }, /* Bamboo1 4x6 */ - { WACOM_VENDOR_ID, 0x6B, 100000, 100000, &usbBamboo1 }, /* Bamboo1 5x8 */ - - { WACOM_VENDOR_ID, 0xB0, 200000, 200000, &usbIntuos3 }, /* Intuos3 4x5 */ - { WACOM_VENDOR_ID, 0xB1, 200000, 200000, &usbIntuos3 }, /* Intuos3 6x8 */ - { WACOM_VENDOR_ID, 0xB2, 200000, 200000, &usbIntuos3 }, /* Intuos3 9x12 */ - { WACOM_VENDOR_ID, 0xB3, 200000, 200000, &usbIntuos3 }, /* Intuos3 12x12 */ - { WACOM_VENDOR_ID, 0xB4, 200000, 200000, &usbIntuos3 }, /* Intuos3 12x19 */ - { WACOM_VENDOR_ID, 0xB5, 200000, 200000, &usbIntuos3 }, /* Intuos3 6x11 */ - { WACOM_VENDOR_ID, 0xB7, 200000, 200000, &usbIntuos3 }, /* Intuos3 4x6 */ - - { WACOM_VENDOR_ID, 0xB8, 200000, 200000, &usbIntuos4 }, /* Intuos4 4x6 */ - { WACOM_VENDOR_ID, 0xB9, 200000, 200000, &usbIntuos4 }, /* Intuos4 6x9 */ - { WACOM_VENDOR_ID, 0xBA, 200000, 200000, &usbIntuos4 }, /* Intuos4 8x13 */ - { WACOM_VENDOR_ID, 0xBB, 200000, 200000, &usbIntuos4 }, /* Intuos4 12x19*/ - { WACOM_VENDOR_ID, 0xBC, 200000, 200000, &usbIntuos4 }, /* Intuos4 WL USB Endpoint */ - { WACOM_VENDOR_ID, 0xBD, 200000, 200000, &usbIntuos4 }, /* Intuos4 WL Bluetooth Endpoint */ - - { WACOM_VENDOR_ID, 0x26, 200000, 200000, &usbIntuos5 }, /* Intuos5 touch S */ - { WACOM_VENDOR_ID, 0x27, 200000, 200000, &usbIntuos5 }, /* Intuos5 touch M */ - { WACOM_VENDOR_ID, 0x28, 200000, 200000, &usbIntuos5 }, /* Intuos5 touch L */ - { WACOM_VENDOR_ID, 0x29, 200000, 200000, &usbIntuos5 }, /* Intuos5 S */ - { WACOM_VENDOR_ID, 0x2A, 200000, 200000, &usbIntuos5 }, /* Intuos5 M */ - - { WACOM_VENDOR_ID, 0x3F, 200000, 200000, &usbCintiqV5 }, /* Cintiq 21UX */ - { WACOM_VENDOR_ID, 0xC5, 200000, 200000, &usbCintiqV5 }, /* Cintiq 20WSX */ - { WACOM_VENDOR_ID, 0xC6, 200000, 200000, &usbCintiqV5 }, /* Cintiq 12WX */ - { WACOM_VENDOR_ID, 0xCC, 200000, 200000, &usbCintiqV5 }, /* Cintiq 21UX2 */ - { WACOM_VENDOR_ID, 0xF4, 200000, 200000, &usbCintiqV5 }, /* Cintiq 24HD */ - { WACOM_VENDOR_ID, 0xFA, 200000, 200000, &usbCintiqV5 }, /* Cintiq 22HD */ - { WACOM_VENDOR_ID, 0xF8, 200000, 200000, &usbCintiqV5 }, /* Cintiq 24HD touch (EMR digitizer) */ - { WACOM_VENDOR_ID, 0x304,200000, 200000, &usbCintiqV5 }, /* Cintiq 13HD */ - { WACOM_VENDOR_ID, 0x57, 200000, 200000, &usbCintiqV5 }, /* DTK2241 */ - { WACOM_VENDOR_ID, 0x59, 200000, 200000, &usbCintiqV5 }, /* DTH2242 */ - { WACOM_VENDOR_ID, 0x5B, 200000, 200000, &usbCintiqV5 }, /* Cintiq 22HDT */ - - { WACOM_VENDOR_ID, 0x90, 100000, 100000, &usbTabletPC }, /* TabletPC 0x90 */ - { WACOM_VENDOR_ID, 0x93, 100000, 100000, &usbTabletPC }, /* TabletPC 0x93 */ - { WACOM_VENDOR_ID, 0x97, 100000, 100000, &usbTabletPC }, /* TabletPC 0x97 */ - { WACOM_VENDOR_ID, 0x9A, 100000, 100000, &usbTabletPC }, /* TabletPC 0x9A */ - { WACOM_VENDOR_ID, 0x9F, 100000, 100000, &usbTabletPC }, /* CapPlus 0x9F */ - { WACOM_VENDOR_ID, 0xE2, 100000, 100000, &usbTabletPC }, /* TabletPC 0xE2 */ - { WACOM_VENDOR_ID, 0xE3, 100000, 100000, &usbTabletPC }, /* TabletPC 0xE3 */ - { WACOM_VENDOR_ID, 0xE5, 100000, 100000, &usbTabletPC }, /* TabletPC 0xE5 */ - { WACOM_VENDOR_ID, 0xE6, 100000, 100000, &usbTabletPC }, /* TabletPC 0xE6 */ - { WACOM_VENDOR_ID, 0xEC, 100000, 100000, &usbTabletPC }, /* TabletPC 0xEC */ - { WACOM_VENDOR_ID, 0xED, 100000, 100000, &usbTabletPC }, /* TabletPC 0xED */ - { WACOM_VENDOR_ID, 0xEF, 100000, 100000, &usbTabletPC }, /* TabletPC 0xEF */ - { WACOM_VENDOR_ID, 0x100,100000, 100000, &usbTabletPC }, /* TabletPC 0x100 */ - { WACOM_VENDOR_ID, 0x101,100000, 100000, &usbTabletPC }, /* TabletPC 0x101 */ - { WACOM_VENDOR_ID, 0x10D,100000, 100000, &usbTabletPC }, /* TabletPC 0x10D */ - { WACOM_VENDOR_ID, 0x4001,100000, 100000, &usbTabletPC }, /* TabletPC 0x4001 */ + { WACOM_VENDOR_ID, 0x00, 39370, 39370, &usbPenPartner, "PenPartner" }, + { WACOM_VENDOR_ID, 0x10, 80000, 80000, &usbGraphire, "Graphire" }, + { WACOM_VENDOR_ID, 0x11, 80000, 80000, &usbGraphire2, "Graphire2 4x5" }, + { WACOM_VENDOR_ID, 0x12, 80000, 80000, &usbGraphire2, "Graphire2 5x7" }, + { WACOM_VENDOR_ID, 0x13, 80000, 80000, &usbGraphire3, "Graphire3 4x5" }, + { WACOM_VENDOR_ID, 0x14, 80000, 80000, &usbGraphire3, "Graphire3 6x8" }, + { WACOM_VENDOR_ID, 0x15, 80000, 80000, &usbGraphire4, "Graphire4 4x5" }, + { WACOM_VENDOR_ID, 0x16, 80000, 80000, &usbGraphire4, "Graphire4 6x8" }, + { WACOM_VENDOR_ID, 0x17, 100000, 100000, &usbBambooFun, "BambooFun 4x5" }, + { WACOM_VENDOR_ID, 0x18, 100000, 100000, &usbBambooFun, "BambooFun 6x8" }, + { WACOM_VENDOR_ID, 0x19, 80000, 80000, &usbBamboo1, "Bamboo1 Medium" }, + { WACOM_VENDOR_ID, 0x81, 80000, 80000, &usbGraphire4, "Graphire4 6x8 BlueTooth" }, + + { WACOM_VENDOR_ID, 0xD1, 100000, 100000, &usbBamboo, "CTL-460" }, + { WACOM_VENDOR_ID, 0xD4, 100000, 100000, &usbBamboo, "CTH-461" }, + { WACOM_VENDOR_ID, 0xD3, 100000, 100000, &usbBamboo, "CTL-660" }, + { WACOM_VENDOR_ID, 0xD2, 100000, 100000, &usbBamboo, "CTL-461/S" }, + { WACOM_VENDOR_ID, 0xD0, 100000, 100000, &usbBamboo, "Bamboo Touch" }, + { WACOM_VENDOR_ID, 0xD6, 100000, 100000, &usbBamboo, "CTH-460/K" }, + { WACOM_VENDOR_ID, 0xD7, 100000, 100000, &usbBamboo, "CTH-461/S" }, + { WACOM_VENDOR_ID, 0xD8, 100000, 100000, &usbBamboo, "CTH-661/S1" }, + { WACOM_VENDOR_ID, 0xDA, 100000, 100000, &usbBamboo, "CTH-461/L" }, + { WACOM_VENDOR_ID, 0xDB, 100000, 100000, &usbBamboo, "CTH-661/L" }, + + { WACOM_VENDOR_ID, 0x20, 100000, 100000, &usbIntuos, "Intuos 4x5" }, + { WACOM_VENDOR_ID, 0x21, 100000, 100000, &usbIntuos, "Intuos 6x8" }, + { WACOM_VENDOR_ID, 0x22, 100000, 100000, &usbIntuos, "Intuos 9x12" }, + { WACOM_VENDOR_ID, 0x23, 100000, 100000, &usbIntuos, "Intuos 12x12" }, + { WACOM_VENDOR_ID, 0x24, 100000, 100000, &usbIntuos, "Intuos 12x18" }, + + { WACOM_VENDOR_ID, 0x03, 20000, 20000, &usbCintiqPartner, "PTU600" }, + + { WACOM_VENDOR_ID, 0x30, 20000, 20000, &usbCintiq, "PL400" }, + { WACOM_VENDOR_ID, 0x31, 20000, 20000, &usbCintiq, "PL500" }, + { WACOM_VENDOR_ID, 0x32, 20000, 20000, &usbCintiq, "PL600" }, + { WACOM_VENDOR_ID, 0x33, 20000, 20000, &usbCintiq, "PL600SX" }, + { WACOM_VENDOR_ID, 0x34, 20000, 20000, &usbCintiq, "PL550" }, + { WACOM_VENDOR_ID, 0x35, 20000, 20000, &usbCintiq, "PL800" }, + { WACOM_VENDOR_ID, 0x37, 20000, 20000, &usbCintiq, "PL700" }, + { WACOM_VENDOR_ID, 0x38, 20000, 20000, &usbCintiq, "PL510" }, + { WACOM_VENDOR_ID, 0x39, 20000, 20000, &usbCintiq, "PL710" }, + { WACOM_VENDOR_ID, 0x3A, 20000, 20000, &usbCintiq, "DTI520" }, + { WACOM_VENDOR_ID, 0xC0, 20000, 20000, &usbCintiq, "DTF720" }, + { WACOM_VENDOR_ID, 0xC2, 20000, 20000, &usbCintiq, "DTF720a" }, + { WACOM_VENDOR_ID, 0xC4, 20000, 20000, &usbCintiq, "DTF521" }, + { WACOM_VENDOR_ID, 0xC7, 100000, 100000, &usbCintiq, "DTU1931" }, + { WACOM_VENDOR_ID, 0xCE, 100000, 100000, &usbCintiq, "DTU2231" }, + { WACOM_VENDOR_ID, 0xF0, 100000, 100000, &usbCintiq, "DTU1631" }, + + { WACOM_VENDOR_ID, 0x41, 100000, 100000, &usbIntuos2, "Intuos2 4x5" }, + { WACOM_VENDOR_ID, 0x42, 100000, 100000, &usbIntuos2, "Intuos2 6x8" }, + { WACOM_VENDOR_ID, 0x43, 100000, 100000, &usbIntuos2, "Intuos2 9x12" }, + { WACOM_VENDOR_ID, 0x44, 100000, 100000, &usbIntuos2, "Intuos2 12x12" }, + { WACOM_VENDOR_ID, 0x45, 100000, 100000, &usbIntuos2, "Intuos2 12x18" }, + { WACOM_VENDOR_ID, 0x47, 100000, 100000, &usbIntuos2, "Intuos2 6x8 " }, + + { WACOM_VENDOR_ID, 0x60, 50000, 50000, &usbVolito, "Volito" }, + + { WACOM_VENDOR_ID, 0x61, 50000, 50000, &usbVolito2, "PenStation" }, + { WACOM_VENDOR_ID, 0x62, 50000, 50000, &usbVolito2, "Volito2 4x5" }, + { WACOM_VENDOR_ID, 0x63, 50000, 50000, &usbVolito2, "Volito2 2x3" }, + { WACOM_VENDOR_ID, 0x64, 50000, 50000, &usbVolito2, "PenPartner2" }, + + { WACOM_VENDOR_ID, 0x65, 100000, 100000, &usbBamboo, "Bamboo" }, + { WACOM_VENDOR_ID, 0x69, 39842, 39842, &usbBamboo1, "Bamboo1" }, + { WACOM_VENDOR_ID, 0x6A, 100000, 100000, &usbBamboo1, "Bamboo1 4x6" }, + { WACOM_VENDOR_ID, 0x6B, 100000, 100000, &usbBamboo1, "Bamboo1 5x8" }, + + { WACOM_VENDOR_ID, 0xB0, 200000, 200000, &usbIntuos3, "Intuos3 4x5" }, + { WACOM_VENDOR_ID, 0xB1, 200000, 200000, &usbIntuos3, "Intuos3 6x8" }, + { WACOM_VENDOR_ID, 0xB2, 200000, 200000, &usbIntuos3, "Intuos3 9x12" }, + { WACOM_VENDOR_ID, 0xB3, 200000, 200000, &usbIntuos3, "Intuos3 12x12" }, + { WACOM_VENDOR_ID, 0xB4, 200000, 200000, &usbIntuos3, "Intuos3 12x19" }, + { WACOM_VENDOR_ID, 0xB5, 200000, 200000, &usbIntuos3, "Intuos3 6x11" }, + { WACOM_VENDOR_ID, 0xB7, 200000, 200000, &usbIntuos3, "Intuos3 4x6" }, + + { WACOM_VENDOR_ID, 0xB8, 200000, 200000, &usbIntuos4, "Intuos4 4x6" }, + { WACOM_VENDOR_ID, 0xB9, 200000, 200000, &usbIntuos4, "Intuos4 6x9" }, + { WACOM_VENDOR_ID, 0xBA, 200000, 200000, &usbIntuos4, "Intuos4 8x13" }, + { WACOM_VENDOR_ID, 0xBB, 200000, 200000, &usbIntuos4, "Intuos4 12x19" }, + { WACOM_VENDOR_ID, 0xBC, 200000, 200000, &usbIntuos4, "Intuos4 WL USB Endpoint" }, + { WACOM_VENDOR_ID, 0xBD, 200000, 200000, &usbIntuos4, "Intuos4 WL Bluetooth Endpoint"}, + + { WACOM_VENDOR_ID, 0x26, 200000, 200000, &usbIntuos5, "Intuos5 touch S" }, + { WACOM_VENDOR_ID, 0x27, 200000, 200000, &usbIntuos5, "Intuos5 touch M" }, + { WACOM_VENDOR_ID, 0x28, 200000, 200000, &usbIntuos5, "Intuos5 touch L" }, + { WACOM_VENDOR_ID, 0x29, 200000, 200000, &usbIntuos5, "Intuos5 S" }, + { WACOM_VENDOR_ID, 0x2A, 200000, 200000, &usbIntuos5, "Intuos5 M" }, + + { WACOM_VENDOR_ID, 0x3F, 200000, 200000, &usbCintiqV5, "Cintiq 21UX" }, + { WACOM_VENDOR_ID, 0xC5, 200000, 200000, &usbCintiqV5, "Cintiq 20WSX" }, + { WACOM_VENDOR_ID, 0xC6, 200000, 200000, &usbCintiqV5, "Cintiq 12WX" }, + { WACOM_VENDOR_ID, 0xCC, 200000, 200000, &usbCintiqV5, "Cintiq 21UX2" }, + { WACOM_VENDOR_ID, 0xF4, 200000, 200000, &usbCintiqV5, "Cintiq 24HD" }, + { WACOM_VENDOR_ID, 0xFA, 200000, 200000, &usbCintiqV5, "Cintiq 22HD" }, + { WACOM_VENDOR_ID, 0xF8, 200000, 200000, &usbCintiqV5, "Cintiq 24HD touch (EMR digitizer)" }, + { WACOM_VENDOR_ID, 0x304,200000, 200000, &usbCintiqV5, "Cintiq 13HD" }, + { WACOM_VENDOR_ID, 0x57, 200000, 200000, &usbCintiqV5, "DTK2241" }, + { WACOM_VENDOR_ID, 0x59, 200000, 200000, &usbCintiqV5, "DTH2242" }, + { WACOM_VENDOR_ID, 0x5B, 200000, 200000, &usbCintiqV5, "Cintiq 22HDT" }, + + { WACOM_VENDOR_ID, 0x90, 100000, 100000, &usbTabletPC, "TabletPC 0x90" }, + { WACOM_VENDOR_ID, 0x93, 100000, 100000, &usbTabletPC, "TabletPC 0x93" }, + { WACOM_VENDOR_ID, 0x97, 100000, 100000, &usbTabletPC, "TabletPC 0x97" }, + { WACOM_VENDOR_ID, 0x9A, 100000, 100000, &usbTabletPC, "TabletPC 0x9A" }, + { WACOM_VENDOR_ID, 0x9F, 100000, 100000, &usbTabletPC, "CapPlus 0x9F" }, + { WACOM_VENDOR_ID, 0xE2, 100000, 100000, &usbTabletPC, "TabletPC 0xE2" }, + { WACOM_VENDOR_ID, 0xE3, 100000, 100000, &usbTabletPC, "TabletPC 0xE3" }, + { WACOM_VENDOR_ID, 0xE5, 100000, 100000, &usbTabletPC, "TabletPC 0xE5" }, + { WACOM_VENDOR_ID, 0xE6, 100000, 100000, &usbTabletPC, "TabletPC 0xE6" }, + { WACOM_VENDOR_ID, 0xEC, 100000, 100000, &usbTabletPC, "TabletPC 0xEC" }, + { WACOM_VENDOR_ID, 0xED, 100000, 100000, &usbTabletPC, "TabletPC 0xED" }, + { WACOM_VENDOR_ID, 0xEF, 100000, 100000, &usbTabletPC, "TabletPC 0xEF" }, + { WACOM_VENDOR_ID, 0x100,100000, 100000, &usbTabletPC, "TabletPC 0x100" }, + { WACOM_VENDOR_ID, 0x101,100000, 100000, &usbTabletPC, "TabletPC 0x101" }, + { WACOM_VENDOR_ID, 0x10D,100000, 100000, &usbTabletPC, "TabletPC 0x10D" }, + { WACOM_VENDOR_ID, 0x4001,100000, 100000, &usbTabletPC, "TabletPC 0x4001" }, /* IDs from Waltop's driver, available http://www.waltop.com.tw/download.asp?lv=0&id=2. Accessed 8 Apr 2010, driver release date 2009/08/11, fork of linuxwacom 0.8.4. Some more info would be nice for the ID's below... */ - { WALTOP_VENDOR_ID, 0x24, 80000, 80000, &usbGraphire }, - { WALTOP_VENDOR_ID, 0x25, 80000, 80000, &usbGraphire2 }, - { WALTOP_VENDOR_ID, 0x26, 80000, 80000, &usbGraphire2 }, - { WALTOP_VENDOR_ID, 0x27, 80000, 80000, &usbGraphire3 }, - { WALTOP_VENDOR_ID, 0x28, 80000, 80000, &usbGraphire3 }, - { WALTOP_VENDOR_ID, 0x30, 80000, 80000, &usbGraphire4 }, - { WALTOP_VENDOR_ID, 0x31, 80000, 80000, &usbGraphire4 }, - { WALTOP_VENDOR_ID, 0x32, 100000, 100000, &usbBambooFun }, - { WALTOP_VENDOR_ID, 0x33, 100000, 100000, &usbBambooFun }, - { WALTOP_VENDOR_ID, 0x34, 80000, 80000, &usbBamboo1 }, - { WALTOP_VENDOR_ID, 0x35, 80000, 80000, &usbGraphire4 }, - { WALTOP_VENDOR_ID, 0x36, 80000, 80000, &usbGraphire4 }, - { WALTOP_VENDOR_ID, 0x37, 80000, 80000, &usbGraphire4 }, - { WALTOP_VENDOR_ID, 0x38, 100000, 100000, &usbBambooFun }, - { WALTOP_VENDOR_ID, 0x39, 100000, 100000, &usbBambooFun }, - { WALTOP_VENDOR_ID, 0x51, 100000, 100000, &usbBamboo }, - { WALTOP_VENDOR_ID, 0x52, 100000, 100000, &usbBamboo }, - - { WALTOP_VENDOR_ID, 0x53, 100000, 100000, &usbBamboo }, - { WALTOP_VENDOR_ID, 0x54, 100000, 100000, &usbBamboo }, - { WALTOP_VENDOR_ID, 0x55, 100000, 100000, &usbBamboo }, - { WALTOP_VENDOR_ID, 0x56, 100000, 100000, &usbBamboo }, - { WALTOP_VENDOR_ID, 0x57, 100000, 100000, &usbBamboo }, - { WALTOP_VENDOR_ID, 0x58, 100000, 100000, &usbBamboo }, - { WALTOP_VENDOR_ID, 0x500, 100000, 100000, &usbBamboo }, - { WALTOP_VENDOR_ID, 0x501, 100000, 100000, &usbBamboo }, - { WALTOP_VENDOR_ID, 0x502, 200000, 200000, &usbIntuos4 }, - { WALTOP_VENDOR_ID, 0x503, 200000, 200000, &usbIntuos4 }, + { WALTOP_VENDOR_ID, 0x24, 80000, 80000, &usbGraphire, NULL }, + { WALTOP_VENDOR_ID, 0x25, 80000, 80000, &usbGraphire2, NULL }, + { WALTOP_VENDOR_ID, 0x26, 80000, 80000, &usbGraphire2, NULL }, + { WALTOP_VENDOR_ID, 0x27, 80000, 80000, &usbGraphire3, NULL }, + { WALTOP_VENDOR_ID, 0x28, 80000, 80000, &usbGraphire3, NULL }, + { WALTOP_VENDOR_ID, 0x30, 80000, 80000, &usbGraphire4, NULL }, + { WALTOP_VENDOR_ID, 0x31, 80000, 80000, &usbGraphire4, NULL }, + { WALTOP_VENDOR_ID, 0x32, 100000, 100000, &usbBambooFun, NULL }, + { WALTOP_VENDOR_ID, 0x33, 100000, 100000, &usbBambooFun, NULL }, + { WALTOP_VENDOR_ID, 0x34, 80000, 80000, &usbBamboo1, NULL }, + { WALTOP_VENDOR_ID, 0x35, 80000, 80000, &usbGraphire4, NULL }, + { WALTOP_VENDOR_ID, 0x36, 80000, 80000, &usbGraphire4, NULL }, + { WALTOP_VENDOR_ID, 0x37, 80000, 80000, &usbGraphire4, NULL }, + { WALTOP_VENDOR_ID, 0x38, 100000, 100000, &usbBambooFun, NULL }, + { WALTOP_VENDOR_ID, 0x39, 100000, 100000, &usbBambooFun, NULL }, + { WALTOP_VENDOR_ID, 0x51, 100000, 100000, &usbBamboo, NULL }, + { WALTOP_VENDOR_ID, 0x52, 100000, 100000, &usbBamboo, NULL }, + + { WALTOP_VENDOR_ID, 0x53, 100000, 100000, &usbBamboo, NULL }, + { WALTOP_VENDOR_ID, 0x54, 100000, 100000, &usbBamboo, NULL }, + { WALTOP_VENDOR_ID, 0x55, 100000, 100000, &usbBamboo, NULL }, + { WALTOP_VENDOR_ID, 0x56, 100000, 100000, &usbBamboo, NULL }, + { WALTOP_VENDOR_ID, 0x57, 100000, 100000, &usbBamboo, NULL }, + { WALTOP_VENDOR_ID, 0x58, 100000, 100000, &usbBamboo, NULL }, + { WALTOP_VENDOR_ID, 0x500, 100000, 100000, &usbBamboo, NULL }, + { WALTOP_VENDOR_ID, 0x501, 100000, 100000, &usbBamboo, NULL }, + { WALTOP_VENDOR_ID, 0x502, 200000, 200000, &usbIntuos4, NULL }, + { WALTOP_VENDOR_ID, 0x503, 200000, 200000, &usbIntuos4, NULL }, /* N-Trig devices */ - { NTRIG_VENDOR_ID, 0x01, 44173, 36772, &usbTabletPC }, + { NTRIG_VENDOR_ID, 0x01, 44173, 36772, &usbTabletPC, NULL }, /* Add in Lenovo W700 Palmrest digitizer */ - { LENOVO_VENDOR_ID, 0x6004, 100000, 100000, &usbTabletPC } /* Pen-only */ + { LENOVO_VENDOR_ID, 0x6004, 100000, 100000, &usbTabletPC, NULL } /* Pen-only */ }; +void usbListModels(void) +{ + int i; + char *usbnames[ARRAY_SIZE(WacomModelDesc)] = {0}; + SymTabRec models[ARRAY_SIZE(WacomModelDesc) + 1]; + + for (i = 0; i < ARRAY_SIZE(WacomModelDesc); i++) + { + struct WacomModelDesc *m = &WacomModelDesc[i]; + + models[i].token = i; + if (m->name) + models[i].name = m->name; + else { + /* SymTabRec has a const char *name so we can't free + without compiler warnings. keep allocated stuff + in separate array. + */ + usbnames[i] = malloc(64); + if (!usbnames[i]) { + /* if malloc fails, xf86PrintChipsets() terminates + here because models->name is NULL. then again, + malloc failed, so the rest is academic. */ + models[i].name = NULL; + break; + } + sprintf(usbnames[i], "usb:%04x:%04x", m->vendor_id, m->model_id); + models[i].name = usbnames[i]; + } + } + + models[ARRAY_SIZE(models) - 1].name = NULL; + + xf86PrintChipsets("wacom", + "Driver for Wacom graphics tablets", + models); + + for (i = 0; i < ARRAY_SIZE(usbnames); i++) + free(usbnames[i]); +} + + static Bool usbWcmInit(InputInfoPtr pInfo, char* id, float *version) { int i; diff --git a/src/xf86Wacom.h b/src/xf86Wacom.h index b9e8957..587bf48 100644 --- a/src/xf86Wacom.h +++ b/src/xf86Wacom.h @@ -182,6 +182,7 @@ extern void set_absolute(InputInfoPtr pInfo, Bool absolute); extern WacomCommonPtr wcmRefCommon(WacomCommonPtr common); extern void wcmFreeCommon(WacomCommonPtr *common); extern WacomCommonPtr wcmNewCommon(void); +extern void usbListModels(void); enum WacomSuppressMode { SUPPRESS_NONE = 8, /* Process event normally */ |