--- 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));