TX = 1
class Decoder(srd.Decoder):
- api_version = 1
+ api_version = 2
id = 'midi'
name = 'MIDI'
longname = 'Musical Instrument Digital Interface'
self.es_block = None
def start(self):
- # self.out_python = self.register(srd.OUTPUT_PYTHON)
self.out_ann = self.register(srd.OUTPUT_ANN)
def putx(self, data):
c = self.cmd
if len(c) < 3:
return
- self.es_block = self.ss
+ self.es_block = self.es
msg, chan, note, velocity = c[0] & 0xf0, (c[0] & 0x0f) + 1, c[1], c[2]
s = 'note off' if (velocity == 0) else status_bytes[msg]
self.putx([0, ['Channel %d: %s (note = %d, velocity = %d)' % \
def handle_sysrealtime_msg(self, newbyte):
# System realtime message: 0b11111ttt (t = message type)
- self.es_block = self.ss
+ self.es_block = self.es
self.putx([0, ['System realtime message: %s' % status_bytes[newbyte]]])
self.cmd, self.state = [], 'IDLE'
self.handle_syscommon_msg(pdata)
elif self.state == 'HANDLE SYSREALTIME MSG':
self.handle_sysrealtime_msg(pdata)
- else:
- raise Exception('Invalid state: %s' % self.state)
-