From 509c65ced76316cff66230676a584e93792a04d2 Mon Sep 17 00:00:00 2001 From: Jim Broadus Date: Sat, 18 Apr 2020 15:23:51 -0700 Subject: [PATCH] tagreader: Add debug handler for taglib Pass taglib debug messages through qLog instead of printing directly to stderr. --- ext/libclementine-tagreader/tagreader.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/ext/libclementine-tagreader/tagreader.cpp b/ext/libclementine-tagreader/tagreader.cpp index dbe0784a8..3bf784c96 100644 --- a/ext/libclementine-tagreader/tagreader.cpp +++ b/ext/libclementine-tagreader/tagreader.cpp @@ -47,6 +47,7 @@ #include #include #include +#include #include #include #include @@ -87,6 +88,22 @@ class TagLibFileRefFactory : public FileRefFactory { } }; +// Handler to push TagLib messages to qLog instead of printing to stderr. +class TagReaderDebugListener : public TagLib::DebugListener { + private: + TagReaderDebugListener() { + // Install handler. + TagLib::setDebugListener(this); + } + + virtual void printMessage(const TagLib::String &msg) override { + // Remove trailing newline. + qLog(Debug).noquote() << TStringToQString(msg).trimmed(); + } + static TagReaderDebugListener listener_; +}; +TagReaderDebugListener TagReaderDebugListener::listener_; + namespace { TagLib::String StdStringToTaglibString(const std::string& s) {