/* * u_uac1.h -- interface to USB gadget "ALSA AUDIO" utilities * * Copyright (C) 2008 Bryan Wu <cooloney@kernel.org> * Copyright (C) 2008 Analog Devices, Inc * * Enter bugs at http://blackfin.uclinux.org/ * * Licensed under the GPL-2 or later. */ #ifndef __U_AUDIO_H #define __U_AUDIO_H #include <linux/device.h> #include <linux/err.h> #include <linux/usb/audio.h> #include <linux/usb/composite.h> #include <sound/core.h> #include <sound/pcm.h> #include <sound/pcm_params.h> #include "gadget_chips.h" /* * This represents the USB side of an audio card device, managed by a USB * function which provides control and stream interfaces. */ struct gaudio_snd_dev { struct gaudio *card; struct file *filp; struct snd_pcm_substream *substream; int access; int format; int channels; int rate; }; struct gaudio { struct usb_function func; struct usb_gadget *gadget; /* ALSA sound device interfaces */ struct gaudio_snd_dev control; struct gaudio_snd_dev playback; struct gaudio_snd_dev capture; /* TODO */ }; int gaudio_setup(struct gaudio *card); void gaudio_cleanup(void); #endif /* __U_AUDIO_H */