📄 usbquirks.h
字号:
.data = & (const struct snd_usb_midi_endpoint_info) { .out_cables = 0x000f, .in_cables = 0x000f } }},{ /* * For hardware revision 1.05; in the later revisions (1.10 and * 1.21), 0x1031 is the ID for the device without firmware. * Thanks to Olaf Giesbrecht <Olaf_Giesbrecht@yahoo.de> */ USB_DEVICE_VER(0x0763, 0x1031, 0x0100, 0x0109), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "M-Audio", .product_name = "MidiSport 8x8", .ifnum = QUIRK_ANY_INTERFACE, .type = QUIRK_MIDI_MIDIMAN, .data = & (const struct snd_usb_midi_endpoint_info) { .out_cables = 0x01ff, .in_cables = 0x01ff } }},{ USB_DEVICE_VENDOR_SPEC(0x0763, 0x1033), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "M-Audio", .product_name = "MidiSport 8x8", .ifnum = QUIRK_ANY_INTERFACE, .type = QUIRK_MIDI_MIDIMAN, .data = & (const struct snd_usb_midi_endpoint_info) { .out_cables = 0x01ff, .in_cables = 0x01ff } }},{ USB_DEVICE_VENDOR_SPEC(0x0763, 0x1041), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "M-Audio", .product_name = "MidiSport 2x4", .ifnum = QUIRK_ANY_INTERFACE, .type = QUIRK_MIDI_MIDIMAN, .data = & (const struct snd_usb_midi_endpoint_info) { .out_cables = 0x000f, .in_cables = 0x0003 } }},{ USB_DEVICE_VENDOR_SPEC(0x0763, 0x2001), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "M-Audio", .product_name = "Quattro", .ifnum = QUIRK_ANY_INTERFACE, .type = QUIRK_COMPOSITE, .data = & (const struct snd_usb_audio_quirk[]) { /* * Interfaces 0-2 are "Windows-compatible", 16-bit only, * and share endpoints with the other interfaces. * Ignore them. The other interfaces can do 24 bits, * but captured samples are big-endian (see usbaudio.c). */ { .ifnum = 0, .type = QUIRK_IGNORE_INTERFACE }, { .ifnum = 1, .type = QUIRK_IGNORE_INTERFACE }, { .ifnum = 2, .type = QUIRK_IGNORE_INTERFACE }, { .ifnum = 3, .type = QUIRK_IGNORE_INTERFACE }, { .ifnum = 4, .type = QUIRK_AUDIO_STANDARD_INTERFACE }, { .ifnum = 5, .type = QUIRK_AUDIO_STANDARD_INTERFACE }, { .ifnum = 6, .type = QUIRK_IGNORE_INTERFACE }, { .ifnum = 7, .type = QUIRK_AUDIO_STANDARD_INTERFACE }, { .ifnum = 8, .type = QUIRK_AUDIO_STANDARD_INTERFACE }, { .ifnum = 9, .type = QUIRK_MIDI_MIDIMAN, .data = & (const struct snd_usb_midi_endpoint_info) { .out_cables = 0x0001, .in_cables = 0x0001 } }, { .ifnum = -1 } } }},{ USB_DEVICE_VENDOR_SPEC(0x0763, 0x2003), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "M-Audio", .product_name = "AudioPhile", .ifnum = 6, .type = QUIRK_MIDI_MIDIMAN, .data = & (const struct snd_usb_midi_endpoint_info) { .out_cables = 0x0001, .in_cables = 0x0001 } }},{ USB_DEVICE_VENDOR_SPEC(0x0763, 0x2008), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "M-Audio", .product_name = "Ozone", .ifnum = 3, .type = QUIRK_MIDI_MIDIMAN, .data = & (const struct snd_usb_midi_endpoint_info) { .out_cables = 0x0001, .in_cables = 0x0001 } }},{ USB_DEVICE_VENDOR_SPEC(0x0763, 0x200d), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "M-Audio", .product_name = "OmniStudio", .ifnum = QUIRK_ANY_INTERFACE, .type = QUIRK_COMPOSITE, .data = & (const struct snd_usb_audio_quirk[]) { { .ifnum = 0, .type = QUIRK_IGNORE_INTERFACE }, { .ifnum = 1, .type = QUIRK_IGNORE_INTERFACE }, { .ifnum = 2, .type = QUIRK_IGNORE_INTERFACE }, { .ifnum = 3, .type = QUIRK_IGNORE_INTERFACE }, { .ifnum = 4, .type = QUIRK_AUDIO_STANDARD_INTERFACE }, { .ifnum = 5, .type = QUIRK_AUDIO_STANDARD_INTERFACE }, { .ifnum = 6, .type = QUIRK_IGNORE_INTERFACE }, { .ifnum = 7, .type = QUIRK_AUDIO_STANDARD_INTERFACE }, { .ifnum = 8, .type = QUIRK_AUDIO_STANDARD_INTERFACE }, { .ifnum = 9, .type = QUIRK_MIDI_MIDIMAN, .data = & (const struct snd_usb_midi_endpoint_info) { .out_cables = 0x0001, .in_cables = 0x0001 } }, { .ifnum = -1 } } }},{ USB_DEVICE(0x0763, 0x2019), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { /* .vendor_name = "M-Audio", */ /* .product_name = "Ozone Academic", */ .ifnum = QUIRK_ANY_INTERFACE, .type = QUIRK_COMPOSITE, .data = & (const struct snd_usb_audio_quirk[]) { { .ifnum = 0, .type = QUIRK_AUDIO_STANDARD_INTERFACE }, { .ifnum = 1, .type = QUIRK_AUDIO_STANDARD_INTERFACE }, { .ifnum = 2, .type = QUIRK_AUDIO_STANDARD_INTERFACE }, { .ifnum = 3, .type = QUIRK_MIDI_MIDIMAN, .data = & (const struct snd_usb_midi_endpoint_info) { .out_cables = 0x0001, .in_cables = 0x0001 } }, { .ifnum = -1 } } }},/* Casio devices */{ USB_DEVICE(0x07cf, 0x6801), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "Casio", .product_name = "PL-40R", .ifnum = 0, .type = QUIRK_MIDI_YAMAHA }},{ /* this ID is used by several devices without a product ID */ USB_DEVICE(0x07cf, 0x6802), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "Casio", .product_name = "Keyboard", .ifnum = 0, .type = QUIRK_MIDI_YAMAHA }},/* Mark of the Unicorn devices */{ /* thanks to Robert A. Lerche <ral 'at' msbit.com> */ .match_flags = USB_DEVICE_ID_MATCH_VENDOR | USB_DEVICE_ID_MATCH_PRODUCT | USB_DEVICE_ID_MATCH_DEV_SUBCLASS, .idVendor = 0x07fd, .idProduct = 0x0001, .bDeviceSubClass = 2, .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "MOTU", .product_name = "Fastlane", .ifnum = QUIRK_ANY_INTERFACE, .type = QUIRK_COMPOSITE, .data = & (const struct snd_usb_audio_quirk[]) { { .ifnum = 0, .type = QUIRK_MIDI_RAW }, { .ifnum = 1, .type = QUIRK_IGNORE_INTERFACE }, { .ifnum = -1 } } }},{ /* Creative Sound Blaster MP3+ */ USB_DEVICE(0x041e, 0x3010), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "Creative Labs", .product_name = "Sound Blaster MP3+", .ifnum = QUIRK_NO_INTERFACE } },/* Emagic devices */{ USB_DEVICE(0x086a, 0x0001), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "Emagic", /* .product_name = "Unitor8", */ .ifnum = 2, .type = QUIRK_MIDI_EMAGIC, .data = & (const struct snd_usb_midi_endpoint_info) { .out_cables = 0x80ff, .in_cables = 0x80ff } }},{ USB_DEVICE(0x086a, 0x0002), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "Emagic", /* .product_name = "AMT8", */ .ifnum = 2, .type = QUIRK_MIDI_EMAGIC, .data = & (const struct snd_usb_midi_endpoint_info) { .out_cables = 0x80ff, .in_cables = 0x80ff } }},{ USB_DEVICE(0x086a, 0x0003), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "Emagic", /* .product_name = "MT4", */ .ifnum = 2, .type = QUIRK_MIDI_EMAGIC, .data = & (const struct snd_usb_midi_endpoint_info) { .out_cables = 0x800f, .in_cables = 0x8003 } }},/* TerraTec devices */{ USB_DEVICE_VENDOR_SPEC(0x0ccd, 0x0012), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "TerraTec", .product_name = "PHASE 26", .ifnum = 3, .type = QUIRK_MIDI_STANDARD_INTERFACE }},{ USB_DEVICE_VENDOR_SPEC(0x0ccd, 0x0013), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "TerraTec", .product_name = "PHASE 26", .ifnum = 3, .type = QUIRK_MIDI_STANDARD_INTERFACE }},{ USB_DEVICE_VENDOR_SPEC(0x0ccd, 0x0014), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "TerraTec", .product_name = "PHASE 26", .ifnum = 3, .type = QUIRK_MIDI_STANDARD_INTERFACE }},{ USB_DEVICE(0x0ccd, 0x0035), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "Miditech", .product_name = "Play'n Roll", .ifnum = 0, .type = QUIRK_MIDI_CME }},/* Stanton/N2IT Final Scratch v1 device ('Scratchamp') */{ USB_DEVICE(0x103d, 0x0100), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "Stanton", .product_name = "ScratchAmp", .ifnum = QUIRK_NO_INTERFACE }},{ USB_DEVICE(0x103d, 0x0101), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "Stanton", .product_name = "ScratchAmp", .ifnum = QUIRK_NO_INTERFACE }},/* Novation EMS devices */{ USB_DEVICE_VENDOR_SPEC(0x1235, 0x0001), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "Novation", .product_name = "ReMOTE Audio/XStation", .ifnum = 4, .type = QUIRK_MIDI_NOVATION }},{ USB_DEVICE_VENDOR_SPEC(0x1235, 0x0002), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "Novation", .product_name = "Speedio", .ifnum = 3, .type = QUIRK_MIDI_NOVATION }},{ USB_DEVICE_VENDOR_SPEC(0x1235, 0x4661), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "Novation", .product_name = "ReMOTE25", .ifnum = 0, .type = QUIRK_MIDI_NOVATION }},/* */{ /* aka. Serato Scratch Live DJ Box */ USB_DEVICE(0x13e5, 0x0001), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "Rane", .product_name = "SL-1", .ifnum = QUIRK_NO_INTERFACE }},/* Miditech devices */{ USB_DEVICE(0x4752, 0x0011), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .vendor_name = "Miditech", .product_name = "Midistart-2", .ifnum = 0, .type = QUIRK_MIDI_CME }},/* Central Music devices */{ /* this ID used by both Miditech MidiStudio-2 and CME UF-x */ USB_DEVICE(0x7104, 0x2202), .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .ifnum = 0, .type = QUIRK_MIDI_CME }},{ /* * Some USB MIDI devices don't have an audio control interface, * so we have to grab MIDI streaming interfaces here. */ .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS | USB_DEVICE_ID_MATCH_INT_SUBCLASS, .bInterfaceClass = USB_CLASS_AUDIO, .bInterfaceSubClass = USB_SUBCLASS_MIDI_STREAMING, .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { .ifnum = QUIRK_ANY_INTERFACE, .type = QUIRK_MIDI_STANDARD_INTERFACE }},#undef USB_DEVICE_VENDOR_SPEC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -