diff options
Diffstat (limited to 'sound/usb/usbaudio.h')
-rw-r--r-- | sound/usb/usbaudio.h | 93 |
1 files changed, 5 insertions, 88 deletions
diff --git a/sound/usb/usbaudio.h b/sound/usb/usbaudio.h index 42c299cbf63a..d679e72a3e5c 100644 --- a/sound/usb/usbaudio.h +++ b/sound/usb/usbaudio.h | |||
@@ -21,15 +21,13 @@ | |||
21 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 21 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
22 | */ | 22 | */ |
23 | 23 | ||
24 | /* maximum number of endpoints per interface */ | ||
25 | #define MIDI_MAX_ENDPOINTS 2 | ||
26 | |||
27 | /* handling of USB vendor/product ID pairs as 32-bit numbers */ | 24 | /* handling of USB vendor/product ID pairs as 32-bit numbers */ |
28 | #define USB_ID(vendor, product) (((vendor) << 16) | (product)) | 25 | #define USB_ID(vendor, product) (((vendor) << 16) | (product)) |
29 | #define USB_ID_VENDOR(id) ((id) >> 16) | 26 | #define USB_ID_VENDOR(id) ((id) >> 16) |
30 | #define USB_ID_PRODUCT(id) ((u16)(id)) | 27 | #define USB_ID_PRODUCT(id) ((u16)(id)) |
31 | 28 | ||
32 | /* | 29 | /* |
30 | * | ||
33 | */ | 31 | */ |
34 | 32 | ||
35 | struct snd_usb_audio { | 33 | struct snd_usb_audio { |
@@ -51,6 +49,10 @@ struct snd_usb_audio { | |||
51 | struct list_head midi_list; /* list of midi interfaces */ | 49 | struct list_head midi_list; /* list of midi interfaces */ |
52 | 50 | ||
53 | struct list_head mixer_list; /* list of mixer interfaces */ | 51 | struct list_head mixer_list; /* list of mixer interfaces */ |
52 | |||
53 | int setup; /* from the 'device_setup' module param */ | ||
54 | int nrpacks; /* from the 'nrpacks' module param */ | ||
55 | int async_unlink; /* from the 'async_unlink' module param */ | ||
54 | }; | 56 | }; |
55 | 57 | ||
56 | /* | 58 | /* |
@@ -89,93 +91,8 @@ struct snd_usb_audio_quirk { | |||
89 | const void *data; | 91 | const void *data; |
90 | }; | 92 | }; |
91 | 93 | ||
92 | /* data for QUIRK_MIDI_FIXED_ENDPOINT */ | ||
93 | struct snd_usb_midi_endpoint_info { | ||
94 | int8_t out_ep; /* ep number, 0 autodetect */ | ||
95 | uint8_t out_interval; /* interval for interrupt endpoints */ | ||
96 | int8_t in_ep; | ||
97 | uint8_t in_interval; | ||
98 | uint16_t out_cables; /* bitmask */ | ||
99 | uint16_t in_cables; /* bitmask */ | ||
100 | }; | ||
101 | |||
102 | /* for QUIRK_MIDI_YAMAHA, data is NULL */ | ||
103 | |||
104 | /* for QUIRK_MIDI_MIDIMAN, data points to a snd_usb_midi_endpoint_info | ||
105 | * structure (out_cables and in_cables only) */ | ||
106 | |||
107 | /* for QUIRK_COMPOSITE, data points to an array of snd_usb_audio_quirk | ||
108 | * structures, terminated with .ifnum = -1 */ | ||
109 | |||
110 | /* for QUIRK_AUDIO_FIXED_ENDPOINT, data points to an audioformat structure */ | ||
111 | |||
112 | /* for QUIRK_AUDIO/MIDI_STANDARD_INTERFACE, data is NULL */ | ||
113 | |||
114 | /* for QUIRK_AUDIO_EDIROL_UAXX, data is NULL */ | ||
115 | |||
116 | /* for QUIRK_IGNORE_INTERFACE, data is NULL */ | ||
117 | |||
118 | /* for QUIRK_MIDI_NOVATION and _RAW, data is NULL */ | ||
119 | |||
120 | /* for QUIRK_MIDI_EMAGIC, data points to a snd_usb_midi_endpoint_info | ||
121 | * structure (out_cables and in_cables only) */ | ||
122 | |||
123 | /* for QUIRK_MIDI_CME, data is NULL */ | ||
124 | |||
125 | /* | ||
126 | */ | ||
127 | |||
128 | /*E-mu USB samplerate control quirk*/ | ||
129 | enum { | ||
130 | EMU_QUIRK_SR_44100HZ = 0, | ||
131 | EMU_QUIRK_SR_48000HZ, | ||
132 | EMU_QUIRK_SR_88200HZ, | ||
133 | EMU_QUIRK_SR_96000HZ, | ||
134 | EMU_QUIRK_SR_176400HZ, | ||
135 | EMU_QUIRK_SR_192000HZ | ||
136 | }; | ||
137 | |||
138 | #define combine_word(s) ((*(s)) | ((unsigned int)(s)[1] << 8)) | 94 | #define combine_word(s) ((*(s)) | ((unsigned int)(s)[1] << 8)) |
139 | #define combine_triple(s) (combine_word(s) | ((unsigned int)(s)[2] << 16)) | 95 | #define combine_triple(s) (combine_word(s) | ((unsigned int)(s)[2] << 16)) |
140 | #define combine_quad(s) (combine_triple(s) | ((unsigned int)(s)[3] << 24)) | 96 | #define combine_quad(s) (combine_triple(s) | ((unsigned int)(s)[3] << 24)) |
141 | 97 | ||
142 | unsigned int snd_usb_combine_bytes(unsigned char *bytes, int size); | ||
143 | |||
144 | void *snd_usb_find_desc(void *descstart, int desclen, void *after, u8 dtype); | ||
145 | void *snd_usb_find_csint_desc(void *descstart, int desclen, void *after, u8 dsubtype); | ||
146 | |||
147 | int snd_usb_ctl_msg(struct usb_device *dev, unsigned int pipe, | ||
148 | __u8 request, __u8 requesttype, __u16 value, __u16 index, | ||
149 | void *data, __u16 size, int timeout); | ||
150 | |||
151 | int snd_usb_create_mixer(struct snd_usb_audio *chip, int ctrlif, | ||
152 | int ignore_error); | ||
153 | void snd_usb_mixer_disconnect(struct list_head *p); | ||
154 | |||
155 | int snd_usbmidi_create(struct snd_card *card, | ||
156 | struct usb_interface *iface, | ||
157 | struct list_head *midi_list, | ||
158 | const struct snd_usb_audio_quirk *quirk); | ||
159 | void snd_usbmidi_input_stop(struct list_head* p); | ||
160 | void snd_usbmidi_input_start(struct list_head* p); | ||
161 | void snd_usbmidi_disconnect(struct list_head *p); | ||
162 | |||
163 | void snd_emuusb_set_samplerate(struct snd_usb_audio *chip, | ||
164 | unsigned char samplerate_id); | ||
165 | |||
166 | /* | ||
167 | * retrieve usb_interface descriptor from the host interface | ||
168 | * (conditional for compatibility with the older API) | ||
169 | */ | ||
170 | #ifndef get_iface_desc | ||
171 | #define get_iface_desc(iface) (&(iface)->desc) | ||
172 | #define get_endpoint(alt,ep) (&(alt)->endpoint[ep].desc) | ||
173 | #define get_ep_desc(ep) (&(ep)->desc) | ||
174 | #define get_cfg_desc(cfg) (&(cfg)->desc) | ||
175 | #endif | ||
176 | |||
177 | #ifndef snd_usb_get_speed | ||
178 | #define snd_usb_get_speed(dev) ((dev)->speed) | ||
179 | #endif | ||
180 | |||
181 | #endif /* __USBAUDIO_H */ | 98 | #endif /* __USBAUDIO_H */ |