Linux Audio

Check our new training course

Loading...
 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
31struct 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
41struct 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
53int gaudio_setup(struct gaudio *card);
54void gaudio_cleanup(void);
55
56#endif /* __U_AUDIO_H */