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.
This commit is contained in:
2025-05-15 16:15:56 +02:00
parent e61a1ef7c9
commit 6be7ae5172

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)
}
}