summaryrefslogtreecommitdiffstats
path: root/sound/firewire/tascam/tascam.h
diff options
context:
space:
mode:
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>2015-10-12 12:10:22 +0200
committerTakashi Iwai <tiwai@suse.de>2015-10-12 14:16:18 +0200
commit3beab0f844fadefe16b6383f6ff7b76147db686b (patch)
tree2da68e0b1249ea19085191773ee5712430352da4 /sound/firewire/tascam/tascam.h
parentALSA: firewire-tascam: add support for incoming MIDI messages by asynchronous... (diff)
downloadlinux-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.h8
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