--- 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 <memory>
#include <iostream>
+#include <chrono>
+#include <thread>
+#include <csignal>
#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> 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> djmFix(djmfix::create());
+ std::unique_ptr<djmfix::alsa::AlsaBridge> 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;
}