diff options
author | Takashi Sakamoto <o-takashi@sakamocchi.jp> | 2015-10-12 12:10:22 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2015-10-12 14:16:18 +0200 |
commit | 3beab0f844fadefe16b6383f6ff7b76147db686b (patch) | |
tree | 2da68e0b1249ea19085191773ee5712430352da4 /sound/firewire/tascam/tascam.h | |
parent | ALSA: firewire-tascam: add support for incoming MIDI messages by asynchronous... (diff) | |
download | linux-3beab0f844fadefe16b6383f6ff7b76147db686b.tar.xz linux-3beab0f844fadefe16b6383f6ff7b76147db686b.zip |
ALSA: firewire-tascam: add support for outgoing MIDI messages by asynchronous transaction
TASCAM FireWire series use asynchronous transaction to receive MIDI
messages. The transaction should be sent to a certain address.
This commit supports the outgoing MIDI messages. The messages in the
transaction includes some quirks:
* One MIDI message is transferred in one quadlet transaction, except for
system exclusives.
* MIDI running status is not allowed, thus transactions always include
status byte.
* The basic data format is the same as transferring MIDI messages
supported in previous commit.
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/firewire/tascam/tascam.h')
-rw-r--r-- | sound/firewire/tascam/tascam.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sound/firewire/tascam/tascam.h b/sound/firewire/tascam/tascam.h index b0e602bb5c8f..c2f0c74ab558 100644 --- a/sound/firewire/tascam/tascam.h +++ b/sound/firewire/tascam/tascam.h @@ -67,6 +67,14 @@ struct snd_tscm { /* For MIDI message incoming transactions. */ struct fw_address_handler async_handler; struct snd_rawmidi_substream *tx_midi_substreams[TSCM_MIDI_IN_PORT_MAX]; + + /* For MIDI message outgoing transactions. */ + struct snd_fw_async_midi_port out_ports[TSCM_MIDI_OUT_PORT_MAX]; + u8 running_status[TSCM_MIDI_OUT_PORT_MAX]; + bool on_sysex[TSCM_MIDI_OUT_PORT_MAX]; + + /* For control messages. */ + struct snd_firewire_tascam_status *status; }; #define TSCM_ADDR_BASE 0xffff00000000ull |