linux/drivers/usb/gadget/u_uac1.h
<<
>>
Prefs
   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
  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 */
  57