import mido

class MidiWrapper:
    def __init__(self):
        self._inPort = None
        self._outPort = None
        self._callback = None

    def setCallback(self, callback):
        self._callback = callback

    def connect(self, deviceName):
        self._inPort = mido.open_input(deviceName)
        self._inPort.callback = self._callback
        self._outPort = mido.open_output(deviceName)

    def sendMessage(self, note, velocity, channel):
        if self._outPort is not None:
            msg = mido.Message('note_on', channel=channel, velocity=velocity, note=note)
            self._outPort.send(msg)