• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * u_uac1.h -- interface to USB gadget "ALSA AUDIO" utilities
3  *
4  * Copyright (C) 2008 Bryan Wu <cooloney@kernel.org>
5  * Copyright (C) 2008 Analog Devices, Inc
6  *
7  * Enter bugs at http://blackfin.uclinux.org/
8  *
9  * Licensed under the GPL-2 or later.
10  */
11 
12 #ifndef __U_AUDIO_H
13 #define __U_AUDIO_H
14 
15 #include <linux/device.h>
16 #include <linux/err.h>
17 #include <linux/usb/audio.h>
18 #include <linux/usb/composite.h>
19 
20 #include <sound/core.h>
21 #include <sound/pcm.h>
22 #include <sound/pcm_params.h>
23 
24 #include "gadget_chips.h"
25 
26 /*
27  * This represents the USB side of an audio card device, managed by a USB
28  * function which provides control and stream interfaces.
29  */
30 
31 struct gaudio_snd_dev {
32 	struct gaudio			*card;
33 	struct file			*filp;
34 	struct snd_pcm_substream	*substream;
35 	int				access;
36 	int				format;
37 	int				channels;
38 	int				rate;
39 };
40 
41 struct gaudio {
42 	struct usb_function		func;
43 	struct usb_gadget		*gadget;
44 
45 	/* ALSA sound device interfaces */
46 	struct gaudio_snd_dev		control;
47 	struct gaudio_snd_dev		playback;
48 	struct gaudio_snd_dev		capture;
49 
50 	/* TODO */
51 };
52 
53 int gaudio_setup(struct gaudio *card);
54 void gaudio_cleanup(void);
55 
56 #endif /* __U_AUDIO_H */
57