1.1 --- a/djm-fix.cpp Fri Dec 18 23:58:03 2020 +0100
1.2 +++ b/djm-fix.cpp Sat Dec 19 17:33:16 2020 +0100
1.3 @@ -20,11 +20,12 @@
1.4 #include <chrono>
1.5 #include <thread>
1.6 #include <csignal>
1.7 +#include <atomic>
1.8
1.9 #include "DJMFix.h"
1.10 #include "AlsaBridge.h"
1.11
1.12 -volatile static bool run = true;
1.13 +static std::atomic<bool> run{true};
1.14
1.15 void interrupt(int signal) {
1.16 run = false;
1.17 @@ -32,9 +33,11 @@
1.18 }
1.19
1.20 int main(int argc, char**argv) {
1.21 + std::string deviceName = argc == 2 ? argv[1] : "hw:1"; // FIXME: parse CLI options + automatic device search
1.22 +
1.23 signal(SIGINT, interrupt);
1.24 std::unique_ptr<djmfix::DJMFix> djmFix(djmfix::create());
1.25 - std::unique_ptr<djmfix::alsa::AlsaBridge> alsaBridge(djmfix::alsa::create(djmFix.get()));
1.26 + std::unique_ptr<djmfix::alsa::AlsaBridge> alsaBridge(djmfix::alsa::create(djmFix.get(), deviceName));
1.27
1.28 alsaBridge->start();
1.29 while (run) std::this_thread::sleep_for(std::chrono::milliseconds(100));