2015-09-19 10:21:55 +08:00
|
|
|
#ifndef SOUND_FIREWIRE_AMDTP_AM824_H_INCLUDED
|
|
|
|
#define SOUND_FIREWIRE_AMDTP_AM824_H_INCLUDED
|
|
|
|
|
2015-09-19 10:21:57 +08:00
|
|
|
#include <sound/pcm.h>
|
2015-09-19 10:21:59 +08:00
|
|
|
#include <sound/rawmidi.h>
|
2015-09-19 10:21:57 +08:00
|
|
|
|
2015-09-19 10:21:55 +08:00
|
|
|
#include "amdtp-stream.h"
|
|
|
|
|
2015-09-19 10:22:02 +08:00
|
|
|
#define AM824_IN_PCM_FORMAT_BITS SNDRV_PCM_FMTBIT_S32
|
|
|
|
|
|
|
|
#define AM824_OUT_PCM_FORMAT_BITS (SNDRV_PCM_FMTBIT_S16 | \
|
|
|
|
SNDRV_PCM_FMTBIT_S32)
|
|
|
|
|
|
|
|
/*
|
|
|
|
* This module supports maximum 64 PCM channels for one PCM stream
|
|
|
|
* This is for our convenience.
|
|
|
|
*/
|
|
|
|
#define AM824_MAX_CHANNELS_FOR_PCM 64
|
|
|
|
|
|
|
|
/*
|
|
|
|
* AMDTP packet can include channels for MIDI conformant data.
|
|
|
|
* Each MIDI conformant data channel includes 8 MPX-MIDI data stream.
|
|
|
|
* Each MPX-MIDI data stream includes one data stream from/to MIDI ports.
|
|
|
|
*
|
|
|
|
* This module supports maximum 1 MIDI conformant data channels.
|
|
|
|
* Then this AMDTP packets can transfer maximum 8 MIDI data streams.
|
|
|
|
*/
|
|
|
|
#define AM824_MAX_CHANNELS_FOR_MIDI 1
|
|
|
|
|
2015-09-19 10:21:56 +08:00
|
|
|
int amdtp_am824_set_parameters(struct amdtp_stream *s, unsigned int rate,
|
|
|
|
unsigned int pcm_channels,
|
|
|
|
unsigned int midi_ports,
|
|
|
|
bool double_pcm_frames);
|
|
|
|
|
2015-09-19 10:21:58 +08:00
|
|
|
void amdtp_am824_set_pcm_position(struct amdtp_stream *s, unsigned int index,
|
|
|
|
unsigned int position);
|
|
|
|
|
|
|
|
void amdtp_am824_set_midi_position(struct amdtp_stream *s,
|
|
|
|
unsigned int position);
|
|
|
|
|
2015-09-19 10:21:57 +08:00
|
|
|
int amdtp_am824_add_pcm_hw_constraints(struct amdtp_stream *s,
|
|
|
|
struct snd_pcm_runtime *runtime);
|
|
|
|
|
2015-09-19 10:22:02 +08:00
|
|
|
void amdtp_am824_set_pcm_format(struct amdtp_stream *s,
|
|
|
|
snd_pcm_format_t format);
|
|
|
|
|
2015-09-19 10:21:59 +08:00
|
|
|
void amdtp_am824_midi_trigger(struct amdtp_stream *s, unsigned int port,
|
|
|
|
struct snd_rawmidi_substream *midi);
|
|
|
|
|
2015-09-19 10:21:55 +08:00
|
|
|
int amdtp_am824_init(struct amdtp_stream *s, struct fw_unit *unit,
|
|
|
|
enum amdtp_stream_direction dir, enum cip_flags flags);
|
|
|
|
#endif
|