def __init__(self, midi_input_name, midi_output_name, callback_log): self.callback_log = callback_log # LCD has 2 rows with 56 characters each, fill with spaces self._lcd_characters = [' '] * 2 self._lcd_overlay_characters = [' '] * 2 for line in range(2): self._lcd_characters[line] = [' '] * 56 self._lcd_overlay_characters[line] = [' '] * 56 self._show_overlay = [False, False] self._log('Initialising MIDI ports...', True) self._midi_input_name = midi_input_name self._midi_output_name = midi_output_name self.midi = MidiConnection(self.callback_log, self.receive_midi) self.unset_interconnector() self.display_lcd_available = True self.automated_faders_available = True self.display_7seg_available = True self.display_timecode_available = True self.meter_bridge_available = True self.display_7seg_characters = [] for counter in range(4): self.display_7seg_characters.append(' ') self.display_timecode_characters = [] for counter in range(20): self.display_timecode_characters.append(' ')
def __init__(self, mcu_model_id, mcu_connection, version_number, \ midi_input_name, midi_output_name, callback_log): self._callback_log = callback_log self._log('Initialising MIDI ports...', True) self._midi_input_name = midi_input_name self._midi_output_name = midi_output_name self._midi = MidiConnection(callback_log, self.receive_midi) self._midi_channel = 0 self.unset_hardware_controller() self._offline = True # Mackie Control model IDs: # * 0x10: Logic Control # * 0x11: Logic Control XT # * 0x14: Mackie Control # * 0x15: Mackie Control XT self._mcu_model_id = mcu_model_id # define connection type (among others, challenge-response) self._mcu_connection = mcu_connection serial_number = '_pyMCU_' self._serial_number_bytes = [] for char in serial_number: self._serial_number_bytes.append(ord(char)) challenge = 'test' self._challenge_bytes = [] for char in challenge: self._challenge_bytes.append(ord(char)) self._response_bytes = self._calculate_reponse_from_challenge( \ self._challenge_bytes) # make sure that the version number consists of exactly 5 # characters version_number = version_number.ljust(5)[0:5] self._version_number_bytes = [] for char in version_number: self._version_number_bytes.append(ord(char))