linux/sound/firewire/amdtp-am824.h
<<
>>
Prefs
   1#ifndef SOUND_FIREWIRE_AMDTP_AM824_H_INCLUDED
   2#define SOUND_FIREWIRE_AMDTP_AM824_H_INCLUDED
   3
   4#include <sound/pcm.h>
   5#include <sound/rawmidi.h>
   6
   7#include "amdtp-stream.h"
   8
   9#define AM824_IN_PCM_FORMAT_BITS        SNDRV_PCM_FMTBIT_S32
  10
  11#define AM824_OUT_PCM_FORMAT_BITS       SNDRV_PCM_FMTBIT_S32
  12
  13/*
  14 * This module supports maximum 64 PCM channels for one PCM stream
  15 * This is for our convenience.
  16 */
  17#define AM824_MAX_CHANNELS_FOR_PCM      64
  18
  19/*
  20 * AMDTP packet can include channels for MIDI conformant data.
  21 * Each MIDI conformant data channel includes 8 MPX-MIDI data stream.
  22 * Each MPX-MIDI data stream includes one data stream from/to MIDI ports.
  23 *
  24 * This module supports maximum 1 MIDI conformant data channels.
  25 * Then this AMDTP packets can transfer maximum 8 MIDI data streams.
  26 */
  27#define AM824_MAX_CHANNELS_FOR_MIDI     1
  28
  29int amdtp_am824_set_parameters(struct amdtp_stream *s, unsigned int rate,
  30                               unsigned int pcm_channels,
  31                               unsigned int midi_ports,
  32                               bool double_pcm_frames);
  33
  34void amdtp_am824_set_pcm_position(struct amdtp_stream *s, unsigned int index,
  35                                 unsigned int position);
  36
  37void amdtp_am824_set_midi_position(struct amdtp_stream *s,
  38                                   unsigned int position);
  39
  40int amdtp_am824_add_pcm_hw_constraints(struct amdtp_stream *s,
  41                                       struct snd_pcm_runtime *runtime);
  42
  43void amdtp_am824_midi_trigger(struct amdtp_stream *s, unsigned int port,
  44                              struct snd_rawmidi_substream *midi);
  45
  46int amdtp_am824_init(struct amdtp_stream *s, struct fw_unit *unit,
  47                     enum amdtp_stream_direction dir, enum cip_flags flags);
  48#endif
  49