1 #ifndef SOUND_FIREWIRE_AMDTP_AM824_H_INCLUDED
2 #define SOUND_FIREWIRE_AMDTP_AM824_H_INCLUDED
5 #include <sound/rawmidi.h>
7 #include "amdtp-stream.h"
9 #define AM824_IN_PCM_FORMAT_BITS SNDRV_PCM_FMTBIT_S32
11 #define AM824_OUT_PCM_FORMAT_BITS SNDRV_PCM_FMTBIT_S32
14 * This module supports maximum 64 PCM channels for one PCM stream
15 * This is for our convenience.
17 #define AM824_MAX_CHANNELS_FOR_PCM 64
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.
24 * This module supports maximum 1 MIDI conformant data channels.
25 * Then this AMDTP packets can transfer maximum 8 MIDI data streams.
27 #define AM824_MAX_CHANNELS_FOR_MIDI 1
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
);
34 void amdtp_am824_set_pcm_position(struct amdtp_stream
*s
, unsigned int index
,
35 unsigned int position
);
37 void amdtp_am824_set_midi_position(struct amdtp_stream
*s
,
38 unsigned int position
);
40 int amdtp_am824_add_pcm_hw_constraints(struct amdtp_stream
*s
,
41 struct snd_pcm_runtime
*runtime
);
43 void amdtp_am824_midi_trigger(struct amdtp_stream
*s
, unsigned int port
,
44 struct snd_rawmidi_substream
*midi
);
46 int amdtp_am824_init(struct amdtp_stream
*s
, struct fw_unit
*unit
,
47 enum amdtp_stream_direction dir
, enum cip_flags flags
);