uaudio.h revision 190633
1229997Sken/* $FreeBSD: head/sys/dev/sound/usb/uaudio.h 190633 2009-04-01 20:23:47Z piso $ */ 2229997Sken 3229997Sken/*- 4232604Strasz * Copyright (c) 2000-2002 Hiroyuki Aizu <aizu@navi.org> 5229997Sken * 6229997Sken * Redistribution and use in source and binary forms, with or without 7232604Strasz * modification, are permitted provided that the following conditions 8232604Strasz * are met: 9232604Strasz * 1. Redistributions of source code must retain the above copyright 10229997Sken * notice, this list of conditions and the following disclaimer. 11229997Sken * 2. Redistributions in binary form must reproduce the above copyright 12229997Sken * notice, this list of conditions and the following disclaimer in the 13229997Sken * documentation and/or other materials provided with the distribution. 14229997Sken * 15229997Sken * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16229997Sken * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17229997Sken * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18229997Sken * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19229997Sken * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20229997Sken * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21229997Sken * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22229997Sken * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23229997Sken * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24229997Sken * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25229997Sken * SUCH DAMAGE. 26229997Sken */ 27229997Sken 28229997Sken/* prototypes from "uaudio.c" used by "uaudio_pcm.c" */ 29229997Sken 30229997Skenstruct uaudio_chan; 31229997Skenstruct uaudio_softc; 32229997Skenstruct snd_dbuf; 33229997Skenstruct snd_mixer; 34229997Skenstruct pcm_channel; 35229997Sken 36229997Skenextern int uaudio_attach_sub(device_t dev, kobj_class_t mixer_class, 37229997Sken kobj_class_t chan_class); 38229997Skenextern int uaudio_detach_sub(device_t dev); 39229997Skenextern void *uaudio_chan_init(struct uaudio_softc *sc, struct snd_dbuf *b, 40229997Sken struct pcm_channel *c, int dir); 41229997Skenextern int uaudio_chan_free(struct uaudio_chan *ch); 42229997Skenextern int uaudio_chan_set_param_blocksize(struct uaudio_chan *ch, 43229997Sken uint32_t blocksize); 44229997Skenextern int uaudio_chan_set_param_fragments(struct uaudio_chan *ch, 45229997Sken uint32_t blocksize, uint32_t blockcount); 46229997Skenextern int uaudio_chan_set_param_speed(struct uaudio_chan *ch, 47229997Sken uint32_t speed); 48229997Skenextern int uaudio_chan_getptr(struct uaudio_chan *ch); 49229997Skenextern struct pcmchan_caps *uaudio_chan_getcaps(struct uaudio_chan *ch); 50229997Skenextern int uaudio_chan_set_param_format(struct uaudio_chan *ch, 51229997Sken uint32_t format); 52264274Smavextern int uaudio_chan_start(struct uaudio_chan *ch); 53229997Skenextern int uaudio_chan_stop(struct uaudio_chan *ch); 54229997Skenextern int uaudio_mixer_init_sub(struct uaudio_softc *sc, 55229997Sken struct snd_mixer *m); 56229997Skenextern int uaudio_mixer_uninit_sub(struct uaudio_softc *sc); 57229997Skenextern void uaudio_mixer_set(struct uaudio_softc *sc, unsigned type, 58229997Sken unsigned left, unsigned right); 59229997Skenextern uint32_t uaudio_mixer_setrecsrc(struct uaudio_softc *sc, uint32_t src); 60229997Sken 61229997Skenint uaudio_get_vendor(device_t dev); 62229997Skenint uaudio_get_product(device_t dev); 63229997Skenint uaudio_get_release(device_t dev); 64229997Sken