2015-09-19 05:21:55 +03:00
# ifndef SOUND_FIREWIRE_AMDTP_AM824_H_INCLUDED
# define SOUND_FIREWIRE_AMDTP_AM824_H_INCLUDED
2015-09-19 05:21:57 +03:00
# include <sound/pcm.h>
2015-09-19 05:21:59 +03:00
# include <sound/rawmidi.h>
2015-09-19 05:21:57 +03:00
2015-09-19 05:21:55 +03:00
# include "amdtp-stream.h"
2015-09-19 05:22:02 +03: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 05:21:56 +03: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 05:21:58 +03: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 05:21:57 +03:00
int amdtp_am824_add_pcm_hw_constraints ( struct amdtp_stream * s ,
struct snd_pcm_runtime * runtime ) ;
2015-09-19 05:22:02 +03:00
void amdtp_am824_set_pcm_format ( struct amdtp_stream * s ,
snd_pcm_format_t format ) ;
2015-09-19 05:21:59 +03:00
void amdtp_am824_midi_trigger ( struct amdtp_stream * s , unsigned int port ,
struct snd_rawmidi_substream * midi ) ;
2015-09-19 05:21:55 +03:00
int amdtp_am824_init ( struct amdtp_stream * s , struct fw_unit * unit ,
enum amdtp_stream_direction dir , enum cip_flags flags ) ;
# endif