djm-fix.cpp
branchv_0
changeset 5 ef8f4023e32e
parent 2 f34476ab597f
child 10 4d95b089457d
     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));