Mercurial > hg > opencollidoscope
diff CollidoscopeApp/include/Messages.h @ 0:02467299402e
First import
CollidoscopeApp for Raspberry Pi
JackDevice
Teensy code for Collidoscope
| author | Fiore Martin <f.martin@qmul.ac.uk> |
|---|---|
| date | Thu, 30 Jun 2016 14:50:06 +0200 |
| parents | |
| children | 7fb593d53361 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CollidoscopeApp/include/Messages.h Thu Jun 30 14:50:06 2016 +0200 @@ -0,0 +1,77 @@ +#pragma once + + +enum class Command { + // message carrying info about one chunk of recorder audio. + WAVE_CHUNK, + // message sent when a new recording starts. The gui resets the wave upon receiving it. + WAVE_START, + + TRIGGER_UPDATE, + TRIGGER_END, + + NOTE_ON, + NOTE_OFF, + + LOOP_ON, + LOOP_OFF +}; + +/* Messages sent from the audio thread to the graphic wave. + This includes the wave chunks when the audio is recorder in the buffer and + the cursor position when the grains are reset. +*/ +struct RecordWaveMsg +{ + Command cmd; + std::size_t index; + float arg1; + float arg2; +}; + + +inline RecordWaveMsg makeRecordWaveMsg( Command cmd, std::size_t index, float arg1, float arg2 ) +{ + RecordWaveMsg msg; + msg.cmd = cmd; + msg.index = index; + msg.arg1 = arg1; + msg.arg2 = arg2; + + return msg; +} + + +struct CursorTriggerMsg +{ + Command cmd; + int synthID; +}; + +inline CursorTriggerMsg makeCursorTriggerMsg( Command cmd, std::uint8_t synthID ) +{ + CursorTriggerMsg msg; + + msg.cmd = cmd; + msg.synthID = synthID; + + return msg; +} + +struct NoteMsg +{ + Command cmd; + int midiNote; + double rate; +}; + +inline NoteMsg makeNoteMsg( Command cmd, int midiNote, double rate ) +{ + NoteMsg msg; + + msg.cmd = cmd; + msg.midiNote = midiNote; + msg.rate = rate; + + return msg; +} \ No newline at end of file
