diff -r 98274757fcf6 -r f34476ab597f djm-fix.cpp --- a/djm-fix.cpp Fri Dec 18 21:35:36 2020 +0100 +++ b/djm-fix.cpp Fri Dec 18 23:19:32 2020 +0100 @@ -17,19 +17,28 @@ #include #include +#include +#include +#include #include "DJMFix.h" +#include "AlsaBridge.h" + +volatile static bool run = true; + +void interrupt(int signal) { + run = false; + std::cerr << "interrupt()" << std::endl; // TODO: do not mess STDIO +} int main(int argc, char**argv) { - - std::shared_ptr djmFix(djmfix::create([](djmfix::MidiMessage midiMessage) { - std::cerr << "main: will send midiMessage" << std::endl; // TODO: do not mess STDIO - })); + signal(SIGINT, interrupt); + std::unique_ptr djmFix(djmfix::create()); + std::unique_ptr alsaBridge(djmfix::alsa::create(djmFix.get())); - djmFix->start(); - djmFix->receive({0xf0, 0xf7}); - djmFix->stop(); - + alsaBridge->start(); + while (run) std::this_thread::sleep_for(std::chrono::milliseconds(100)); + alsaBridge->stop(); return 0; }