2 * Line6 Linux USB driver - 0.9.1beta
4 * Copyright (C) 2005-2008 Markus Grabner (grabner@icg.tugraz.at)
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as
8 * published by the Free Software Foundation, version 2.
15 #define LINE6_VENDOR_ID 0x0e41
17 #define USB_INTERVALS_PER_SECOND 1000
22 #define LINE6_DEVID_BASSPODXT 0x4250
23 #define LINE6_DEVID_BASSPODXTLIVE 0x4642
24 #define LINE6_DEVID_BASSPODXTPRO 0x4252
25 #define LINE6_DEVID_GUITARPORT 0x4750
26 #define LINE6_DEVID_POCKETPOD 0x5051
27 #define LINE6_DEVID_PODHD300 0x5057
28 #define LINE6_DEVID_PODHD400 0x5058
29 #define LINE6_DEVID_PODHD500 0x414D
30 #define LINE6_DEVID_PODSTUDIO_GX 0x4153
31 #define LINE6_DEVID_PODSTUDIO_UX1 0x4150
32 #define LINE6_DEVID_PODSTUDIO_UX2 0x4151
33 #define LINE6_DEVID_PODX3 0x414a
34 #define LINE6_DEVID_PODX3LIVE 0x414b
35 #define LINE6_DEVID_PODXT 0x5044
36 #define LINE6_DEVID_PODXTLIVE 0x4650
37 #define LINE6_DEVID_PODXTPRO 0x5050
38 #define LINE6_DEVID_TONEPORT_GX 0x4147
39 #define LINE6_DEVID_TONEPORT_UX1 0x4141
40 #define LINE6_DEVID_TONEPORT_UX2 0x4142
41 #define LINE6_DEVID_VARIAX 0x534d
43 #define LINE6_BIT(x) LINE6_BIT_ ## x = 1 << LINE6_INDEX_ ## x
46 LINE6_INDEX_BASSPODXT
,
47 LINE6_INDEX_BASSPODXTLIVE
,
48 LINE6_INDEX_BASSPODXTPRO
,
49 LINE6_INDEX_GUITARPORT
,
50 LINE6_INDEX_POCKETPOD
,
54 LINE6_INDEX_PODSTUDIO_GX
,
55 LINE6_INDEX_PODSTUDIO_UX1
,
56 LINE6_INDEX_PODSTUDIO_UX2
,
58 LINE6_INDEX_PODX3LIVE
,
60 LINE6_INDEX_PODXTLIVE
,
62 LINE6_INDEX_TONEPORT_GX
,
63 LINE6_INDEX_TONEPORT_UX1
,
64 LINE6_INDEX_TONEPORT_UX2
,
68 LINE6_BIT(BASSPODXTLIVE
),
69 LINE6_BIT(BASSPODXTPRO
),
70 LINE6_BIT(GUITARPORT
),
75 LINE6_BIT(PODSTUDIO_GX
),
76 LINE6_BIT(PODSTUDIO_UX1
),
77 LINE6_BIT(PODSTUDIO_UX2
),
83 LINE6_BIT(TONEPORT_GX
),
84 LINE6_BIT(TONEPORT_UX1
),
85 LINE6_BIT(TONEPORT_UX2
),
88 LINE6_BITS_PRO
= LINE6_BIT_BASSPODXTPRO
| LINE6_BIT_PODXTPRO
,
89 LINE6_BITS_LIVE
= LINE6_BIT_BASSPODXTLIVE
| LINE6_BIT_PODXTLIVE
|
91 LINE6_BITS_PODXTALL
= LINE6_BIT_PODXT
| LINE6_BIT_PODXTLIVE
|
93 LINE6_BITS_PODX3ALL
= LINE6_BIT_PODX3
| LINE6_BIT_PODX3LIVE
,
94 LINE6_BITS_PODHDALL
= LINE6_BIT_PODHD300
|
97 LINE6_BITS_BASSPODXTALL
= LINE6_BIT_BASSPODXT
|
98 LINE6_BIT_BASSPODXTLIVE
|
99 LINE6_BIT_BASSPODXTPRO
102 /* device supports settings parameter via USB */
103 #define LINE6_BIT_CONTROL (1 << 0)
104 /* device supports PCM input/output via USB */
105 #define LINE6_BIT_PCM (1 << 1)
106 /* device support hardware monitoring */
107 #define LINE6_BIT_HWMON (1 << 2)
109 #define LINE6_BIT_CTRL_PCM_HW (LINE6_BIT_CONTROL | \
113 #define LINE6_FALLBACK_INTERVAL 10
114 #define LINE6_FALLBACK_MAXPACKETSIZE 16