djm-fix.cpp
branchv_0
changeset 12 15d87fdd6e6c
parent 11 5b351628a377
child 13 334b727f7516
--- a/djm-fix.cpp	Mon Jan 04 13:38:08 2021 +0100
+++ b/djm-fix.cpp	Mon Jan 04 15:45:12 2021 +0100
@@ -24,12 +24,12 @@
 
 #include "DJMFix.h"
 #include "AlsaBridge.h"
+#include "Logger.h"
 
 static std::atomic<bool> run{true};
 
 void interrupt(int signal) {
 	run = false;
-	std::cerr << "interrupt()" << std::endl; // TODO: do not mess STDIO
 }
 
 /**
@@ -80,19 +80,26 @@
  */
 
 int main(int argc, char**argv) {
+	using L = djmfix::logging::Level;
+	std::unique_ptr<djmfix::logging::Logger> logger(djmfix::logging::create(std::cerr, L::INFO));
 	try {
+		logger->log(L::INFO, "djm-fix started");
 		std::string cardNamePattern = argc == 2 ? argv[1] : "Pioneer DJ.*";
 
 		signal(SIGINT, interrupt);
-		std::unique_ptr<djmfix::DJMFix> djmFix(djmfix::create());
-		std::unique_ptr<djmfix::alsa::AlsaBridge> alsaBridge(djmfix::alsa::create(djmFix.get(), cardNamePattern));
+		std::unique_ptr<djmfix::DJMFix> djmFix(djmfix::create(logger.get()));
+		std::unique_ptr<djmfix::alsa::AlsaBridge> alsaBridge(djmfix::alsa::create(djmFix.get(), cardNamePattern, logger.get()));
 
 		alsaBridge->start();
 		while (run) std::this_thread::sleep_for(std::chrono::milliseconds(100));
+		
+		std::cerr << std::endl;
+		logger->log(L::INFO, "djm-fix stopping");
+		
 		alsaBridge->stop();
 
 		return 0;
 	} catch (const std::exception& e) {
-		std::cerr << "ERROR: " << e.what() << std::endl; // TODO: do not mess STDIO
+		logger->log(L::SEVERE, e.what());
 	}
 }