Add debug transmitter
This is in preparation to conveniently duplicate debug messages to Window > Log. For cases where stdout/err is not easily accessible.
This commit is contained in:
parent
9ddd83d829
commit
9a4237ba83
@ -30,6 +30,7 @@
|
|||||||
#include <boost/tokenizer.hpp>
|
#include <boost/tokenizer.hpp>
|
||||||
|
|
||||||
#include "pbd/debug.h"
|
#include "pbd/debug.h"
|
||||||
|
#include "pbd/error.h"
|
||||||
|
|
||||||
#include "pbd/i18n.h"
|
#include "pbd/i18n.h"
|
||||||
|
|
||||||
@ -62,6 +63,7 @@ DebugBits PBD::DEBUG::Threads = PBD::new_debug_bit ("threads");
|
|||||||
DebugBits PBD::DEBUG::Locale = PBD::new_debug_bit ("locale");
|
DebugBits PBD::DEBUG::Locale = PBD::new_debug_bit ("locale");
|
||||||
DebugBits PBD::DEBUG::StringConvert = PBD::new_debug_bit ("stringconvert");
|
DebugBits PBD::DEBUG::StringConvert = PBD::new_debug_bit ("stringconvert");
|
||||||
DebugBits PBD::DEBUG::DebugTimestamps = PBD::new_debug_bit ("debugtimestamps");
|
DebugBits PBD::DEBUG::DebugTimestamps = PBD::new_debug_bit ("debugtimestamps");
|
||||||
|
DebugBits PBD::DEBUG::DebugLogToGUI = PBD::new_debug_bit ("debuglogtogui");
|
||||||
|
|
||||||
/* These are debug bits that are used by backends. Since these are loaded dynamically,
|
/* These are debug bits that are used by backends. Since these are loaded dynamically,
|
||||||
after command-line parsing, defining them in code that is part of the backend
|
after command-line parsing, defining them in code that is part of the backend
|
||||||
@ -105,6 +107,10 @@ PBD::debug_print (const char* prefix, string str)
|
|||||||
} else {
|
} else {
|
||||||
printf ("%s: %s", prefix, str.c_str());
|
printf ("%s: %s", prefix, str.c_str());
|
||||||
}
|
}
|
||||||
|
if ((PBD::debug_bits & DEBUG::DebugLogToGUI).any()) {
|
||||||
|
std::replace (str.begin (), str.end (), '\n', ' ');
|
||||||
|
debug << prefix << ": " << str << endmsg;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -18,8 +18,8 @@
|
|||||||
|
|
||||||
#include "pbd/error.h"
|
#include "pbd/error.h"
|
||||||
|
|
||||||
Transmitter PBD::error (Transmitter::Error);
|
Transmitter PBD::debug (Transmitter::Debug);
|
||||||
Transmitter PBD::info (Transmitter::Info);
|
Transmitter PBD::info (Transmitter::Info);
|
||||||
Transmitter PBD::fatal (Transmitter::Fatal);
|
|
||||||
Transmitter PBD::warning (Transmitter::Warning);
|
Transmitter PBD::warning (Transmitter::Warning);
|
||||||
|
Transmitter PBD::error (Transmitter::Error);
|
||||||
|
Transmitter PBD::fatal (Transmitter::Fatal);
|
||||||
|
@ -63,6 +63,7 @@ namespace PBD {
|
|||||||
LIBPBD_API extern DebugBits Locale;
|
LIBPBD_API extern DebugBits Locale;
|
||||||
LIBPBD_API extern DebugBits StringConvert;
|
LIBPBD_API extern DebugBits StringConvert;
|
||||||
LIBPBD_API extern DebugBits DebugTimestamps;
|
LIBPBD_API extern DebugBits DebugTimestamps;
|
||||||
|
LIBPBD_API extern DebugBits DebugLogToGUI;
|
||||||
|
|
||||||
/* See notes in ../debug.cc on why these are defined here */
|
/* See notes in ../debug.cc on why these are defined here */
|
||||||
|
|
||||||
|
@ -22,9 +22,10 @@
|
|||||||
#include "transmitter.h"
|
#include "transmitter.h"
|
||||||
|
|
||||||
namespace PBD {
|
namespace PBD {
|
||||||
LIBPBD_API extern Transmitter error;
|
LIBPBD_API extern Transmitter debug;
|
||||||
LIBPBD_API extern Transmitter info;
|
LIBPBD_API extern Transmitter info;
|
||||||
LIBPBD_API extern Transmitter warning;
|
LIBPBD_API extern Transmitter warning;
|
||||||
|
LIBPBD_API extern Transmitter error;
|
||||||
LIBPBD_API extern Transmitter fatal;
|
LIBPBD_API extern Transmitter fatal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@ class LIBPBD_API Transmitter : public std::stringstream
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
enum Channel {
|
enum Channel {
|
||||||
|
Debug,
|
||||||
Info,
|
Info,
|
||||||
Error,
|
Error,
|
||||||
Warning,
|
Warning,
|
||||||
@ -54,6 +55,7 @@ class LIBPBD_API Transmitter : public std::stringstream
|
|||||||
Channel channel;
|
Channel channel;
|
||||||
PBD::Signal2<void, Channel, const char *> *send;
|
PBD::Signal2<void, Channel, const char *> *send;
|
||||||
|
|
||||||
|
PBD::Signal2<void, Channel, const char *> debug;
|
||||||
PBD::Signal2<void, Channel, const char *> info;
|
PBD::Signal2<void, Channel, const char *> info;
|
||||||
PBD::Signal2<void, Channel, const char *> warning;
|
PBD::Signal2<void, Channel, const char *> warning;
|
||||||
PBD::Signal2<void, Channel, const char *> error;
|
PBD::Signal2<void, Channel, const char *> error;
|
||||||
|
@ -36,15 +36,17 @@ TextReceiver::receive (Transmitter::Channel chn, const char *str)
|
|||||||
const char *prefix = "";
|
const char *prefix = "";
|
||||||
|
|
||||||
switch (chn) {
|
switch (chn) {
|
||||||
case Transmitter::Error:
|
case Transmitter::Debug:
|
||||||
prefix = ": [ERROR]: ";
|
return;
|
||||||
break;
|
|
||||||
case Transmitter::Info:
|
case Transmitter::Info:
|
||||||
prefix = ": [INFO]: ";
|
prefix = ": [INFO]: ";
|
||||||
break;
|
break;
|
||||||
case Transmitter::Warning:
|
case Transmitter::Warning:
|
||||||
prefix = ": [WARNING]: ";
|
prefix = ": [WARNING]: ";
|
||||||
break;
|
break;
|
||||||
|
case Transmitter::Error:
|
||||||
|
prefix = ": [ERROR]: ";
|
||||||
|
break;
|
||||||
case Transmitter::Fatal:
|
case Transmitter::Fatal:
|
||||||
prefix = ": [FATAL]: ";
|
prefix = ": [FATAL]: ";
|
||||||
break;
|
break;
|
||||||
|
@ -40,6 +40,9 @@ Transmitter::Transmitter (Channel c)
|
|||||||
case Info:
|
case Info:
|
||||||
send = &info;
|
send = &info;
|
||||||
break;
|
break;
|
||||||
|
case Debug:
|
||||||
|
send = &debug;
|
||||||
|
break;
|
||||||
case Fatal:
|
case Fatal:
|
||||||
send = &fatal;
|
send = &fatal;
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user