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:
16
src/commonMain/kotlin/nl/astraeus/vst/MidiMessageHandler.kt
Normal file
16
src/commonMain/kotlin/nl/astraeus/vst/MidiMessageHandler.kt
Normal 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)
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user