Example #1
0
    def __init__(self, channel=-1, param=-1, value=-1, seq_event=None):
        MidiEvent.__init__(self, self.EVENT_TYPE, seq_event)

        self.channel = channel
        self.param = param
        self.value = value

        if seq_event:
            seq_event_data = seq_event.get_data()
            value = seq_event_data.get(self.PARAM_KEY)
            if value:
                self.param = value

            value = seq_event_data.get(self.CHANNEL_KEY)
            if value:
                self.channel = value

            value = seq_event_data.get(self.VALUE_KEY)
            if value:
                self.value = value

            if self.param == -1 and self.channel == -1 and self.value == -1:
                self.has_error = True
        else:
            self.fill_seq_event()
Example #2
0
 def fill_seq_event(self):
     MidiEvent.fill_seq_event(self)
     if self.channel >= 0:
         event_data = dict()
         if self.param >= 0:
             event_data[self.PARAM_KEY] = self.param
         event_data[self.CHANNEL_KEY] = self.channel
         if self.value >= 0:
             event_data[self.VALUE_KEY] = self.value
         self.seq_event.set_data(event_data)
Example #3
0
    def __init__(self, seq_event=None, sysex_buffer=None):
        MidiEvent.__init__(self, self.EVENT_TYPE, seq_event)

        self.sysex_buffer = sysex_buffer

        if not seq_event is None:
            sysex_data = \
                seq_event.get_data().get(SysexMidiEvent.SYSEX_DATA_KEY)
            if not sysex_data is None:
                self.sysex_buffer = SysexBuffer(sysex_data)
            else:
                self.has_error = True
                print('No data in sysex event')

        if seq_event or sysex_buffer:
            if self.is_valid():
                self.parse_sysex_buffer()
            else:
                self.has_error = True
                print('Invalid sysex buffer => didn\'t parse it')
        else:
            self.fill_seq_event()
Example #4
0
 def is_valid(self):
     result = MidiEvent.is_valid(self)
     if not self.sysex_buffer is None:
         result &= self.sysex_buffer.is_valid
     return result
Example #5
0
 def fill_seq_event(self):
     self.build_sysex_buffer()
     if self.is_valid():
         MidiEvent.fill_seq_event(self)
         self.seq_event.set_data(
             {self.SYSEX_DATA_KEY: self.sysex_buffer.sysex_data})
Example #6
0
 def is_valid(self):
     result = MidiEvent.is_valid(self)
     if self.sysex_buffer:
         result &= self.sysex_buffer.is_valid
     return result