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 }