summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wcmConfig.c3
-rw-r--r--src/wcmUSB.c339
-rw-r--r--src/xf86Wacom.h1
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 */