djm-fix.cpp
branchv_0
changeset 5 ef8f4023e32e
parent 2 f34476ab597f
child 10 4d95b089457d
--- a/djm-fix.cpp	Fri Dec 18 23:58:03 2020 +0100
+++ b/djm-fix.cpp	Sat Dec 19 17:33:16 2020 +0100
@@ -20,11 +20,12 @@
 #include <chrono>
 #include <thread>
 #include <csignal>
+#include <atomic>
 
 #include "DJMFix.h"
 #include "AlsaBridge.h"
 
-volatile static bool run = true;
+static std::atomic<bool> run{true};
 
 void interrupt(int signal) {
 	run = false;
@@ -32,9 +33,11 @@
 }
 
 int main(int argc, char**argv) {
+	std::string deviceName = argc == 2 ? argv[1] : "hw:1"; // FIXME: parse CLI options + automatic device search
+	
 	signal(SIGINT, interrupt);
 	std::unique_ptr<djmfix::DJMFix> djmFix(djmfix::create());
-	std::unique_ptr<djmfix::alsa::AlsaBridge> alsaBridge(djmfix::alsa::create(djmFix.get()));
+	std::unique_ptr<djmfix::alsa::AlsaBridge> alsaBridge(djmfix::alsa::create(djmFix.get(), deviceName));
 
 	alsaBridge->start();
 	while (run) std::this_thread::sleep_for(std::chrono::milliseconds(100));