fix(tracker/gomidi): consume all available midi.Messages

This commit is contained in:
5684185+vsariola@users.noreply.github.com 2024-10-15 00:24:18 +03:00
parent 97e59c5650
commit 3986bbede7

View File

@ -87,6 +87,7 @@ func (m *RTMIDIContext) HandleMessage(msg midi.Message, timestampms int32) {
}
func (c *RTMIDIContext) NextEvent() (event tracker.MIDINoteEvent, ok bool) {
for {
select {
case msg := <-c.events:
var channel uint8
@ -100,10 +101,12 @@ func (c *RTMIDIContext) NextEvent() (event tracker.MIDINoteEvent, ok bool) {
// TODO: handle control messages with something like:
// if msg.GetControlChange(&channel, &controller, &value) {
// ....
// if the message is not any recognized type, ignore it and continue looping
default:
// Note (@LeStahL): This empty select case is needed to make the implementation non-blocking.
}
return tracker.MIDINoteEvent{}, false
}
}
}
func (c *RTMIDIContext) BPM() (bpm float64, ok bool) {