diff -r 98274757fcf6 -r f34476ab597f AlsaBridge.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/AlsaBridge.cpp Fri Dec 18 23:19:32 2020 +0100 @@ -0,0 +1,56 @@ +/** + * DJM-Fix + * Copyright © 2020 František Kučera (Frantovo.cz, GlobalCode.info) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include + +#include "AlsaBridge.h" + +namespace djmfix { +namespace alsa { + +class AlsaBridgeImpl : public AlsaBridge, private djmfix::MidiSender { +private: + djmfix::DJMFix* djmFix; +public: + + AlsaBridgeImpl(djmfix::DJMFix* djmFix) : djmFix(djmFix) { + djmFix->setMidiSender(this); + } + + virtual ~AlsaBridgeImpl() { + std::cerr << "~AlsaBridgeImpl()" << std::endl; // TODO: do not mess STDIO + } + + virtual void start() override { + djmFix->start(); + } + + virtual void stop() override { + djmFix->stop(); + } + + virtual void send(MidiMessage midiMessage) override { + std::cerr << "AlsaBridgeImpl::send()" << std::endl; // TODO: do not mess STDIO + } + +}; + +AlsaBridge* create(djmfix::DJMFix* djmFix) { + return new AlsaBridgeImpl(djmFix); +} + +} +}