djm-fix.cpp
branchv_0
changeset 12 15d87fdd6e6c
parent 11 5b351628a377
child 13 334b727f7516
     1.1 --- a/djm-fix.cpp	Mon Jan 04 13:38:08 2021 +0100
     1.2 +++ b/djm-fix.cpp	Mon Jan 04 15:45:12 2021 +0100
     1.3 @@ -24,12 +24,12 @@
     1.4  
     1.5  #include "DJMFix.h"
     1.6  #include "AlsaBridge.h"
     1.7 +#include "Logger.h"
     1.8  
     1.9  static std::atomic<bool> run{true};
    1.10  
    1.11  void interrupt(int signal) {
    1.12  	run = false;
    1.13 -	std::cerr << "interrupt()" << std::endl; // TODO: do not mess STDIO
    1.14  }
    1.15  
    1.16  /**
    1.17 @@ -80,19 +80,26 @@
    1.18   */
    1.19  
    1.20  int main(int argc, char**argv) {
    1.21 +	using L = djmfix::logging::Level;
    1.22 +	std::unique_ptr<djmfix::logging::Logger> logger(djmfix::logging::create(std::cerr, L::INFO));
    1.23  	try {
    1.24 +		logger->log(L::INFO, "djm-fix started");
    1.25  		std::string cardNamePattern = argc == 2 ? argv[1] : "Pioneer DJ.*";
    1.26  
    1.27  		signal(SIGINT, interrupt);
    1.28 -		std::unique_ptr<djmfix::DJMFix> djmFix(djmfix::create());
    1.29 -		std::unique_ptr<djmfix::alsa::AlsaBridge> alsaBridge(djmfix::alsa::create(djmFix.get(), cardNamePattern));
    1.30 +		std::unique_ptr<djmfix::DJMFix> djmFix(djmfix::create(logger.get()));
    1.31 +		std::unique_ptr<djmfix::alsa::AlsaBridge> alsaBridge(djmfix::alsa::create(djmFix.get(), cardNamePattern, logger.get()));
    1.32  
    1.33  		alsaBridge->start();
    1.34  		while (run) std::this_thread::sleep_for(std::chrono::milliseconds(100));
    1.35 +		
    1.36 +		std::cerr << std::endl;
    1.37 +		logger->log(L::INFO, "djm-fix stopping");
    1.38 +		
    1.39  		alsaBridge->stop();
    1.40  
    1.41  		return 0;
    1.42  	} catch (const std::exception& e) {
    1.43 -		std::cerr << "ERROR: " << e.what() << std::endl; // TODO: do not mess STDIO
    1.44 +		logger->log(L::SEVERE, e.what());
    1.45  	}
    1.46  }