Commit | Line | Data |
---|---|---|
c6994e6f BW |
1 | /* |
2 | * u_audio.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(struct gaudio *card); | |
55 | ||
56 | #endif /* __U_AUDIO_H */ |