Compare commits

...

2 Commits

Author SHA1 Message Date
3d2d305fee Merge remote-tracking branch 'origin/master' 2025-05-15 16:16:01 +02:00
6be7ae5172 Add MidiMessageHandler for managing MIDI message handlers
Introduced `MidiMessageHandler` with support for adding and invoking handlers based on byte inputs. This enables more flexible and organized handling of MIDI messages within the application.
2025-05-15 16:15:56 +02:00

View File

@@ -0,0 +1,16 @@
package nl.astraeus.vst
typealias MidiHandler = (Byte, Byte, Byte) -> Unit
object MidiMessageHandler {
val handlers = mutableMapOf<Byte, MutableMap<Byte, MidiHandler>>()
fun addHandler(byte1: Byte, byte2: Byte = 0, handler: MidiHandler) {
handlers.getOrPut(byte1) { mutableMapOf() }[byte2] = handler
}
fun handle(byte1: Byte, byte2: Byte, byte3: Byte) {
handlers[byte1]?.get(byte2)?.invoke(byte1, byte2, byte3)
}
}