29 #define CNT_INTVAL 0x10000
43 switch (dev->
chip.usb_id) {
85 ucontrol->
value.integer.value[0]
88 ucontrol->
value.integer.value[0]
100 int v = ucontrol->
value.integer.value[0];
103 if (dev->
chip.usb_id ==
108 int i = pos & ~CNT_INTVAL;
112 if (dev->
chip.usb_id ==
120 usb_sndbulkpipe(dev->
chip.dev, 8),
170 {
"LED 7seg_1b", 8 },
171 {
"LED 7seg_1c", 9 },
172 {
"LED 7seg_2a", 10 },
173 {
"LED 7seg_2b", 11 },
174 {
"LED 7seg_2c", 12 },
175 {
"LED 7seg_2d", 13 },
176 {
"LED 7seg_2e", 14 },
177 {
"LED 7seg_2f", 15 },
178 {
"LED 7seg_2g", 16 },
179 {
"LED 7seg_3a", 17 },
180 {
"LED 7seg_3b", 18 },
181 {
"LED 7seg_3c", 19 },
182 {
"LED 7seg_3d", 20 },
183 {
"LED 7seg_3e", 21 },
184 {
"LED 7seg_3f", 22 },
185 {
"LED 7seg_3g", 23 }
189 {
"LED 7seg_1a", 0 + 0 },
190 {
"LED 7seg_1b", 0 + 1 },
191 {
"LED 7seg_1c", 0 + 2 },
192 {
"LED 7seg_1d", 0 + 3 },
193 {
"LED 7seg_1e", 0 + 4 },
194 {
"LED 7seg_1f", 0 + 5 },
195 {
"LED 7seg_1g", 0 + 6 },
196 {
"LED 7seg_1p", 0 + 7 },
198 {
"LED 7seg_2a", 8 + 0 },
199 {
"LED 7seg_2b", 8 + 1 },
200 {
"LED 7seg_2c", 8 + 2 },
201 {
"LED 7seg_2d", 8 + 3 },
202 {
"LED 7seg_2e", 8 + 4 },
203 {
"LED 7seg_2f", 8 + 5 },
204 {
"LED 7seg_2g", 8 + 6 },
205 {
"LED 7seg_2p", 8 + 7 },
207 {
"LED 7seg_3a", 16 + 0 },
208 {
"LED 7seg_3b", 16 + 1 },
209 {
"LED 7seg_3c", 16 + 2 },
210 {
"LED 7seg_3d", 16 + 3 },
211 {
"LED 7seg_3e", 16 + 4 },
212 {
"LED 7seg_3f", 16 + 5 },
213 {
"LED 7seg_3g", 16 + 6 },
214 {
"LED 7seg_3p", 16 + 7 },
216 {
"LED 7seg_4a", 24 + 0 },
217 {
"LED 7seg_4b", 24 + 1 },
218 {
"LED 7seg_4c", 24 + 2 },
219 {
"LED 7seg_4d", 24 + 3 },
220 {
"LED 7seg_4e", 24 + 4 },
221 {
"LED 7seg_4f", 24 + 5 },
222 {
"LED 7seg_4g", 24 + 6 },
223 {
"LED 7seg_4p", 24 + 7 },
233 {
"LED pedal", 32 + 8 }
237 {
"LED F1", 8 | CNT_INTVAL },
238 {
"LED F2", 12 | CNT_INTVAL },
239 {
"LED F3", 0 | CNT_INTVAL },
240 {
"LED F4", 4 | CNT_INTVAL },
241 {
"LED F5", 11 | CNT_INTVAL },
242 {
"LED F6", 15 | CNT_INTVAL },
243 {
"LED F7", 3 | CNT_INTVAL },
244 {
"LED F8", 7 | CNT_INTVAL },
245 {
"LED touch1", 10 | CNT_INTVAL },
246 {
"LED touch2", 14 | CNT_INTVAL },
247 {
"LED touch3", 2 | CNT_INTVAL },
248 {
"LED touch4", 6 | CNT_INTVAL },
249 {
"LED touch5", 9 | CNT_INTVAL },
250 {
"LED touch6", 13 | CNT_INTVAL },
251 {
"LED touch7", 1 | CNT_INTVAL },
252 {
"LED touch8", 5 | CNT_INTVAL },
253 {
"LED left", 18 | CNT_INTVAL },
254 {
"LED right", 22 | CNT_INTVAL },
255 {
"LED up", 16 | CNT_INTVAL },
256 {
"LED down", 20 | CNT_INTVAL },
257 {
"LED stop", 23 | CNT_INTVAL },
258 {
"LED play", 21 | CNT_INTVAL },
259 {
"LED record", 19 | CNT_INTVAL },
260 {
"LED listen", 17 | CNT_INTVAL },
261 {
"LED lcd", 30 | CNT_INTVAL },
262 {
"LED menu", 28 | CNT_INTVAL },
263 {
"LED sound", 31 | CNT_INTVAL },
264 {
"LED esc", 29 | CNT_INTVAL },
265 {
"LED view", 27 | CNT_INTVAL },
266 {
"LED enter", 24 | CNT_INTVAL },
267 {
"LED control", 26 | CNT_INTVAL }
271 {
"Current input mode", 0 | CNT_INTVAL },
272 {
"GND lift for TC Vinyl mode", 24 + 0 },
273 {
"GND lift for TC CD/Line mode", 24 + 1 },
274 {
"GND lift for phono mode", 24 + 2 },
275 {
"Software lock", 40 }
279 {
"Current input mode", 0 | CNT_INTVAL }
283 {
"LED FX A: ON", 7 | CNT_INTVAL },
284 {
"LED FX A: 1", 6 | CNT_INTVAL },
285 {
"LED FX A: 2", 5 | CNT_INTVAL },
286 {
"LED FX A: 3", 4 | CNT_INTVAL },
287 {
"LED FX B: ON", 3 | CNT_INTVAL },
288 {
"LED FX B: 1", 2 | CNT_INTVAL },
289 {
"LED FX B: 2", 1 | CNT_INTVAL },
290 {
"LED FX B: 3", 0 | CNT_INTVAL },
292 {
"LED Hotcue", 28 | CNT_INTVAL },
293 {
"LED Shift (white)", 29 | CNT_INTVAL },
294 {
"LED Shift (green)", 30 | CNT_INTVAL },
296 {
"LED Deck A: FX1", 24 | CNT_INTVAL },
297 {
"LED Deck A: FX2", 25 | CNT_INTVAL },
298 {
"LED Deck A: IN", 17 | CNT_INTVAL },
299 {
"LED Deck A: OUT", 16 | CNT_INTVAL },
300 {
"LED Deck A: < BEAT", 19 | CNT_INTVAL },
301 {
"LED Deck A: BEAT >", 18 | CNT_INTVAL },
302 {
"LED Deck A: CUE/ABS", 21 | CNT_INTVAL },
303 {
"LED Deck A: CUP/REL", 20 | CNT_INTVAL },
304 {
"LED Deck A: PLAY", 23 | CNT_INTVAL },
305 {
"LED Deck A: SYNC", 22 | CNT_INTVAL },
307 {
"LED Deck B: FX1", 26 | CNT_INTVAL },
308 {
"LED Deck B: FX2", 27 | CNT_INTVAL },
309 {
"LED Deck B: IN", 15 | CNT_INTVAL },
310 {
"LED Deck B: OUT", 14 | CNT_INTVAL },
311 {
"LED Deck B: < BEAT", 13 | CNT_INTVAL },
312 {
"LED Deck B: BEAT >", 12 | CNT_INTVAL },
313 {
"LED Deck B: CUE/ABS", 11 | CNT_INTVAL },
314 {
"LED Deck B: CUP/REL", 10 | CNT_INTVAL },
315 {
"LED Deck B: PLAY", 9 | CNT_INTVAL },
316 {
"LED Deck B: SYNC", 8 | CNT_INTVAL },
320 {
"LED: Master: Quant", 10 | CNT_INTVAL },
321 {
"LED: Master: Headphone", 11 | CNT_INTVAL },
322 {
"LED: Master: Master", 12 | CNT_INTVAL },
323 {
"LED: Master: Snap", 14 | CNT_INTVAL },
324 {
"LED: Master: Warning", 15 | CNT_INTVAL },
325 {
"LED: Master: Master button", 112 | CNT_INTVAL },
326 {
"LED: Master: Snap button", 113 | CNT_INTVAL },
327 {
"LED: Master: Rec", 118 | CNT_INTVAL },
328 {
"LED: Master: Size", 119 | CNT_INTVAL },
329 {
"LED: Master: Quant button", 120 | CNT_INTVAL },
330 {
"LED: Master: Browser button", 121 | CNT_INTVAL },
331 {
"LED: Master: Play button", 126 | CNT_INTVAL },
332 {
"LED: Master: Undo button", 127 | CNT_INTVAL },
334 {
"LED: Channel A: >", 4 | CNT_INTVAL },
335 {
"LED: Channel A: <", 5 | CNT_INTVAL },
336 {
"LED: Channel A: Meter 1", 97 | CNT_INTVAL },
337 {
"LED: Channel A: Meter 2", 98 | CNT_INTVAL },
338 {
"LED: Channel A: Meter 3", 99 | CNT_INTVAL },
339 {
"LED: Channel A: Meter 4", 100 | CNT_INTVAL },
340 {
"LED: Channel A: Meter 5", 101 | CNT_INTVAL },
341 {
"LED: Channel A: Meter 6", 102 | CNT_INTVAL },
342 {
"LED: Channel A: Meter clip", 103 | CNT_INTVAL },
343 {
"LED: Channel A: Active", 114 | CNT_INTVAL },
344 {
"LED: Channel A: Cue", 116 | CNT_INTVAL },
345 {
"LED: Channel A: FX1", 149 | CNT_INTVAL },
346 {
"LED: Channel A: FX2", 148 | CNT_INTVAL },
348 {
"LED: Channel B: >", 2 | CNT_INTVAL },
349 {
"LED: Channel B: <", 3 | CNT_INTVAL },
350 {
"LED: Channel B: Meter 1", 89 | CNT_INTVAL },
351 {
"LED: Channel B: Meter 2", 90 | CNT_INTVAL },
352 {
"LED: Channel B: Meter 3", 91 | CNT_INTVAL },
353 {
"LED: Channel B: Meter 4", 92 | CNT_INTVAL },
354 {
"LED: Channel B: Meter 5", 93 | CNT_INTVAL },
355 {
"LED: Channel B: Meter 6", 94 | CNT_INTVAL },
356 {
"LED: Channel B: Meter clip", 95 | CNT_INTVAL },
357 {
"LED: Channel B: Active", 122 | CNT_INTVAL },
358 {
"LED: Channel B: Cue", 125 | CNT_INTVAL },
359 {
"LED: Channel B: FX1", 147 | CNT_INTVAL },
360 {
"LED: Channel B: FX2", 146 | CNT_INTVAL },
362 {
"LED: Channel C: >", 6 | CNT_INTVAL },
363 {
"LED: Channel C: <", 7 | CNT_INTVAL },
364 {
"LED: Channel C: Meter 1", 105 | CNT_INTVAL },
365 {
"LED: Channel C: Meter 2", 106 | CNT_INTVAL },
366 {
"LED: Channel C: Meter 3", 107 | CNT_INTVAL },
367 {
"LED: Channel C: Meter 4", 108 | CNT_INTVAL },
368 {
"LED: Channel C: Meter 5", 109 | CNT_INTVAL },
369 {
"LED: Channel C: Meter 6", 110 | CNT_INTVAL },
370 {
"LED: Channel C: Meter clip", 111 | CNT_INTVAL },
371 {
"LED: Channel C: Active", 115 | CNT_INTVAL },
372 {
"LED: Channel C: Cue", 117 | CNT_INTVAL },
373 {
"LED: Channel C: FX1", 151 | CNT_INTVAL },
374 {
"LED: Channel C: FX2", 150 | CNT_INTVAL },
376 {
"LED: Channel D: >", 0 | CNT_INTVAL },
377 {
"LED: Channel D: <", 1 | CNT_INTVAL },
378 {
"LED: Channel D: Meter 1", 81 | CNT_INTVAL },
379 {
"LED: Channel D: Meter 2", 82 | CNT_INTVAL },
380 {
"LED: Channel D: Meter 3", 83 | CNT_INTVAL },
381 {
"LED: Channel D: Meter 4", 84 | CNT_INTVAL },
382 {
"LED: Channel D: Meter 5", 85 | CNT_INTVAL },
383 {
"LED: Channel D: Meter 6", 86 | CNT_INTVAL },
384 {
"LED: Channel D: Meter clip", 87 | CNT_INTVAL },
385 {
"LED: Channel D: Active", 123 | CNT_INTVAL },
386 {
"LED: Channel D: Cue", 124 | CNT_INTVAL },
387 {
"LED: Channel D: FX1", 145 | CNT_INTVAL },
388 {
"LED: Channel D: FX2", 144 | CNT_INTVAL },
390 {
"LED: Deck A: 1 (blue)", 22 | CNT_INTVAL },
391 {
"LED: Deck A: 1 (green)", 23 | CNT_INTVAL },
392 {
"LED: Deck A: 2 (blue)", 20 | CNT_INTVAL },
393 {
"LED: Deck A: 2 (green)", 21 | CNT_INTVAL },
394 {
"LED: Deck A: 3 (blue)", 18 | CNT_INTVAL },
395 {
"LED: Deck A: 3 (green)", 19 | CNT_INTVAL },
396 {
"LED: Deck A: 4 (blue)", 16 | CNT_INTVAL },
397 {
"LED: Deck A: 4 (green)", 17 | CNT_INTVAL },
398 {
"LED: Deck A: Load", 44 | CNT_INTVAL },
399 {
"LED: Deck A: Deck C button", 45 | CNT_INTVAL },
400 {
"LED: Deck A: In", 47 | CNT_INTVAL },
401 {
"LED: Deck A: Out", 46 | CNT_INTVAL },
402 {
"LED: Deck A: Shift", 24 | CNT_INTVAL },
403 {
"LED: Deck A: Sync", 27 | CNT_INTVAL },
404 {
"LED: Deck A: Cue", 26 | CNT_INTVAL },
405 {
"LED: Deck A: Play", 25 | CNT_INTVAL },
406 {
"LED: Deck A: Tempo up", 33 | CNT_INTVAL },
407 {
"LED: Deck A: Tempo down", 32 | CNT_INTVAL },
408 {
"LED: Deck A: Master", 34 | CNT_INTVAL },
409 {
"LED: Deck A: Keylock", 35 | CNT_INTVAL },
410 {
"LED: Deck A: Deck A", 37 | CNT_INTVAL },
411 {
"LED: Deck A: Deck C", 36 | CNT_INTVAL },
412 {
"LED: Deck A: Samples", 38 | CNT_INTVAL },
413 {
"LED: Deck A: On Air", 39 | CNT_INTVAL },
414 {
"LED: Deck A: Sample 1", 31 | CNT_INTVAL },
415 {
"LED: Deck A: Sample 2", 30 | CNT_INTVAL },
416 {
"LED: Deck A: Sample 3", 29 | CNT_INTVAL },
417 {
"LED: Deck A: Sample 4", 28 | CNT_INTVAL },
418 {
"LED: Deck A: Digit 1 - A", 55 | CNT_INTVAL },
419 {
"LED: Deck A: Digit 1 - B", 54 | CNT_INTVAL },
420 {
"LED: Deck A: Digit 1 - C", 53 | CNT_INTVAL },
421 {
"LED: Deck A: Digit 1 - D", 52 | CNT_INTVAL },
422 {
"LED: Deck A: Digit 1 - E", 51 | CNT_INTVAL },
423 {
"LED: Deck A: Digit 1 - F", 50 | CNT_INTVAL },
424 {
"LED: Deck A: Digit 1 - G", 49 | CNT_INTVAL },
425 {
"LED: Deck A: Digit 1 - dot", 48 | CNT_INTVAL },
426 {
"LED: Deck A: Digit 2 - A", 63 | CNT_INTVAL },
427 {
"LED: Deck A: Digit 2 - B", 62 | CNT_INTVAL },
428 {
"LED: Deck A: Digit 2 - C", 61 | CNT_INTVAL },
429 {
"LED: Deck A: Digit 2 - D", 60 | CNT_INTVAL },
430 {
"LED: Deck A: Digit 2 - E", 59 | CNT_INTVAL },
431 {
"LED: Deck A: Digit 2 - F", 58 | CNT_INTVAL },
432 {
"LED: Deck A: Digit 2 - G", 57 | CNT_INTVAL },
433 {
"LED: Deck A: Digit 2 - dot", 56 | CNT_INTVAL },
435 {
"LED: Deck B: 1 (blue)", 78 | CNT_INTVAL },
436 {
"LED: Deck B: 1 (green)", 79 | CNT_INTVAL },
437 {
"LED: Deck B: 2 (blue)", 76 | CNT_INTVAL },
438 {
"LED: Deck B: 2 (green)", 77 | CNT_INTVAL },
439 {
"LED: Deck B: 3 (blue)", 74 | CNT_INTVAL },
440 {
"LED: Deck B: 3 (green)", 75 | CNT_INTVAL },
441 {
"LED: Deck B: 4 (blue)", 72 | CNT_INTVAL },
442 {
"LED: Deck B: 4 (green)", 73 | CNT_INTVAL },
443 {
"LED: Deck B: Load", 180 | CNT_INTVAL },
444 {
"LED: Deck B: Deck D button", 181 | CNT_INTVAL },
445 {
"LED: Deck B: In", 183 | CNT_INTVAL },
446 {
"LED: Deck B: Out", 182 | CNT_INTVAL },
447 {
"LED: Deck B: Shift", 64 | CNT_INTVAL },
448 {
"LED: Deck B: Sync", 67 | CNT_INTVAL },
449 {
"LED: Deck B: Cue", 66 | CNT_INTVAL },
450 {
"LED: Deck B: Play", 65 | CNT_INTVAL },
451 {
"LED: Deck B: Tempo up", 185 | CNT_INTVAL },
452 {
"LED: Deck B: Tempo down", 184 | CNT_INTVAL },
453 {
"LED: Deck B: Master", 186 | CNT_INTVAL },
454 {
"LED: Deck B: Keylock", 187 | CNT_INTVAL },
455 {
"LED: Deck B: Deck B", 189 | CNT_INTVAL },
456 {
"LED: Deck B: Deck D", 188 | CNT_INTVAL },
457 {
"LED: Deck B: Samples", 190 | CNT_INTVAL },
458 {
"LED: Deck B: On Air", 191 | CNT_INTVAL },
459 {
"LED: Deck B: Sample 1", 71 | CNT_INTVAL },
460 {
"LED: Deck B: Sample 2", 70 | CNT_INTVAL },
461 {
"LED: Deck B: Sample 3", 69 | CNT_INTVAL },
462 {
"LED: Deck B: Sample 4", 68 | CNT_INTVAL },
463 {
"LED: Deck B: Digit 1 - A", 175 | CNT_INTVAL },
464 {
"LED: Deck B: Digit 1 - B", 174 | CNT_INTVAL },
465 {
"LED: Deck B: Digit 1 - C", 173 | CNT_INTVAL },
466 {
"LED: Deck B: Digit 1 - D", 172 | CNT_INTVAL },
467 {
"LED: Deck B: Digit 1 - E", 171 | CNT_INTVAL },
468 {
"LED: Deck B: Digit 1 - F", 170 | CNT_INTVAL },
469 {
"LED: Deck B: Digit 1 - G", 169 | CNT_INTVAL },
470 {
"LED: Deck B: Digit 1 - dot", 168 | CNT_INTVAL },
471 {
"LED: Deck B: Digit 2 - A", 167 | CNT_INTVAL },
472 {
"LED: Deck B: Digit 2 - B", 166 | CNT_INTVAL },
473 {
"LED: Deck B: Digit 2 - C", 165 | CNT_INTVAL },
474 {
"LED: Deck B: Digit 2 - D", 164 | CNT_INTVAL },
475 {
"LED: Deck B: Digit 2 - E", 163 | CNT_INTVAL },
476 {
"LED: Deck B: Digit 2 - F", 162 | CNT_INTVAL },
477 {
"LED: Deck B: Digit 2 - G", 161 | CNT_INTVAL },
478 {
"LED: Deck B: Digit 2 - dot", 160 | CNT_INTVAL },
480 {
"LED: FX1: dry/wet", 153 | CNT_INTVAL },
481 {
"LED: FX1: 1", 154 | CNT_INTVAL },
482 {
"LED: FX1: 2", 155 | CNT_INTVAL },
483 {
"LED: FX1: 3", 156 | CNT_INTVAL },
484 {
"LED: FX1: Mode", 157 | CNT_INTVAL },
485 {
"LED: FX2: dry/wet", 129 | CNT_INTVAL },
486 {
"LED: FX2: 1", 130 | CNT_INTVAL },
487 {
"LED: FX2: 2", 131 | CNT_INTVAL },
488 {
"LED: FX2: 3", 132 | CNT_INTVAL },
489 {
"LED: FX2: Mode", 133 | CNT_INTVAL },
498 for (i = 0; i < num; i++, c++) {
499 kcontrol_template.name = c->
name;
500 kcontrol_template.private_value = c->
index;
514 switch (dev->
chip.usb_id) {
516 ret = add_controls(ak1_controller,
521 ret = add_controls(rk2_controller,
526 ret = add_controls(rk3_controller,
532 ret = add_controls(kore_controller,
537 ret = add_controls(a8dj_controller,
542 ret = add_controls(a4dj_controller,
547 ret = add_controls(kontrolx1_controller,
552 ret = add_controls(kontrols4_controller,