Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/sound/firewire/amdtp-am824.h
26378 views
1
/* SPDX-License-Identifier: GPL-2.0 */
2
#ifndef SOUND_FIREWIRE_AMDTP_AM824_H_INCLUDED
3
#define SOUND_FIREWIRE_AMDTP_AM824_H_INCLUDED
4
5
#include <sound/pcm.h>
6
#include <sound/rawmidi.h>
7
8
#include "amdtp-stream.h"
9
10
#define AM824_IN_PCM_FORMAT_BITS SNDRV_PCM_FMTBIT_S32
11
12
#define AM824_OUT_PCM_FORMAT_BITS SNDRV_PCM_FMTBIT_S32
13
14
/*
15
* This module supports maximum 64 PCM channels for one PCM stream
16
* This is for our convenience.
17
*/
18
#define AM824_MAX_CHANNELS_FOR_PCM 64
19
20
/*
21
* AMDTP packet can include channels for MIDI conformant data.
22
* Each MIDI conformant data channel includes 8 MPX-MIDI data stream.
23
* Each MPX-MIDI data stream includes one data stream from/to MIDI ports.
24
*
25
* This module supports maximum 1 MIDI conformant data channels.
26
* Then this AMDTP packets can transfer maximum 8 MIDI data streams.
27
*/
28
#define AM824_MAX_CHANNELS_FOR_MIDI 1
29
30
int amdtp_am824_set_parameters(struct amdtp_stream *s, unsigned int rate,
31
unsigned int pcm_channels,
32
unsigned int midi_ports,
33
bool double_pcm_frames);
34
35
void amdtp_am824_set_pcm_position(struct amdtp_stream *s, unsigned int index,
36
unsigned int position);
37
38
void amdtp_am824_set_midi_position(struct amdtp_stream *s,
39
unsigned int position);
40
41
int amdtp_am824_add_pcm_hw_constraints(struct amdtp_stream *s,
42
struct snd_pcm_runtime *runtime);
43
44
void amdtp_am824_midi_trigger(struct amdtp_stream *s, unsigned int port,
45
struct snd_rawmidi_substream *midi);
46
47
int amdtp_am824_init(struct amdtp_stream *s, struct fw_unit *unit,
48
enum amdtp_stream_direction dir, unsigned int flags);
49
#endif
50
51