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 29 int 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 34 void amdtp_am824_set_pcm_position(struct amdtp_stream *s, unsigned int index, 35 unsigned int position); 36 37 void amdtp_am824_set_midi_position(struct amdtp_stream *s, 38 unsigned int position); 39 40 int amdtp_am824_add_pcm_hw_constraints(struct amdtp_stream *s, 41 struct snd_pcm_runtime *runtime); 42 43 void amdtp_am824_midi_trigger(struct amdtp_stream *s, unsigned int port, 44 struct snd_rawmidi_substream *midi); 45 46 int amdtp_am824_init(struct amdtp_stream *s, struct fw_unit *unit, 47 enum amdtp_stream_direction dir, enum cip_flags flags); 48 #endif 49