djm-fix.cpp
branchv_0
changeset 2 f34476ab597f
parent 1 98274757fcf6
child 5 ef8f4023e32e
--- 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;
 }