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(' ')
Beispiel #2
0
    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))