franta-hg@0: /**
franta-hg@0: * DJM-Fix
franta-hg@0: * Copyright © 2020 František Kučera (Frantovo.cz, GlobalCode.info)
franta-hg@0: *
franta-hg@0: * This program is free software: you can redistribute it and/or modify
franta-hg@0: * it under the terms of the GNU General Public License as published by
franta-hg@0: * the Free Software Foundation, version 3 of the License.
franta-hg@0: *
franta-hg@0: * This program is distributed in the hope that it will be useful,
franta-hg@0: * but WITHOUT ANY WARRANTY; without even the implied warranty of
franta-hg@0: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
franta-hg@0: * GNU General Public License for more details.
franta-hg@0: *
franta-hg@0: * You should have received a copy of the GNU General Public License
franta-hg@0: * along with this program. If not, see .
franta-hg@0: */
franta-hg@1: #pragma once
franta-hg@1:
franta-hg@1: #include
franta-hg@1:
franta-hg@12: #include "Logger.h"
franta-hg@12:
franta-hg@1: namespace djmfix {
franta-hg@1:
franta-hg@1: using MidiMessage = std::vector;
franta-hg@2:
franta-hg@2: class MidiSender {
franta-hg@2: public:
franta-hg@2: virtual ~MidiSender() = default;
franta-hg@2: virtual void send(MidiMessage midiMessage) = 0;
franta-hg@2: };
franta-hg@1:
franta-hg@1: class DJMFix {
franta-hg@1: public:
franta-hg@1: virtual ~DJMFix() = default;
franta-hg@2: virtual void setMidiSender(MidiSender* midiSender) = 0;
franta-hg@6: virtual void receive(const MidiMessage& midiMessage) = 0;
franta-hg@1: virtual void start() = 0;
franta-hg@1: virtual void stop() = 0;
franta-hg@1: };
franta-hg@1:
franta-hg@12: DJMFix* create(djmfix::logging::Logger* logger);
franta-hg@1:
franta-hg@1: }