![Takashi Sakamoto](/assets/img/avatar_default.png)
In IEC 61883-6, several types of data are available in AM824 format. The data is transferred in each data channel. The position of data channel in data block differs depending on model. Current implementation has an array to map the index of data channel in an data block to the position of actual data channel. The implementation allows each driver to access the mapping directly. In later commit, the mapping is in specific structure pushed into an opaque pointer. Helper functions are required. This commit adds the helper functions for this purpose. In IEC 61883-6, AM824 format supports many data types, while this specification easily causes over-engineering. Current AM824 implementation is allowed to handle two types of data, Multi Bit Linear Audio data (=PCM samples) and MIDI conformant data (=MIDI messages). Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
25 lines
771 B
C
25 lines
771 B
C
#ifndef SOUND_FIREWIRE_AMDTP_AM824_H_INCLUDED
|
|
#define SOUND_FIREWIRE_AMDTP_AM824_H_INCLUDED
|
|
|
|
#include <sound/pcm.h>
|
|
|
|
#include "amdtp-stream.h"
|
|
|
|
int amdtp_am824_set_parameters(struct amdtp_stream *s, unsigned int rate,
|
|
unsigned int pcm_channels,
|
|
unsigned int midi_ports,
|
|
bool double_pcm_frames);
|
|
|
|
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);
|
|
|
|
int amdtp_am824_add_pcm_hw_constraints(struct amdtp_stream *s,
|
|
struct snd_pcm_runtime *runtime);
|
|
|
|
int amdtp_am824_init(struct amdtp_stream *s, struct fw_unit *unit,
|
|
enum amdtp_stream_direction dir, enum cip_flags flags);
|
|
#endif
|