26 #include <libsigrokdecode/libsigrokdecode.h> 29 #include <libsigrokcxx/libsigrokcxx.hpp> 31 #include <QApplication> 35 using std::lock_guard;
48 static srd_log_callback prev_srd_log_cb;
49 static void *prev_srd_log_cb_data;
54 qInstallMessageHandler(
nullptr);
56 sr_log_callback_set(prev_sr_log_cb, prev_sr_log_cb_data);
57 prev_sr_log_cb =
nullptr;
58 prev_sr_log_cb_data =
nullptr;
61 srd_log_callback_set(prev_srd_log_cb, prev_srd_log_cb_data);
62 prev_srd_log_cb =
nullptr;
63 prev_srd_log_cb_data =
nullptr;
78 qInstallMessageHandler(
log_pv);
79 sr_log_callback_get(&prev_sr_log_cb, &prev_sr_log_cb_data);
80 sr_log_callback_set(
log_sr,
nullptr);
82 srd_log_callback_get(&prev_srd_log_cb, &prev_srd_log_cb_data);
83 srd_log_callback_set(log_srd,
nullptr);
92 return sr_log_loglevel_get();
97 sr_log_loglevel_set(level);
99 srd_log_loglevel_set(level);
105 return buffer_.join(
"<br />\n");
117 if (text.contains(
"warning", Qt::CaseInsensitive)) {
118 s = QString(
"<font color=\"darkorange\">%1</font>").arg(text);
122 if (text.contains(
"error", Qt::CaseInsensitive)) {
123 s = QString(
"<font color=\"darkred\">%1</font>").arg(text);
129 s = QString(
"<font color=\"darkMagenta\">pv: %1</font>").arg(text);
132 s = QString(
"<font color=\"darkGreen\">sr: %1</font>").arg(text);
135 s = QString(
"<font color=\"olive\">srd: %1</font>").arg(text);
147 if (!QApplication::closingDown())
151 void Logging::log_pv(QtMsgType type,
const QMessageLogContext &context,
const QString &msg)
158 cout << msg.toUtf8().data() << endl;
167 va_copy(args2, args);
172 char *text = g_strdup_vprintf(format, args);
180 int Logging::log_srd(
void *cb_data,
int loglevel,
const char *
format, va_list args)
186 va_copy(args2, args);
188 prev_srd_log_cb(prev_srd_log_cb_data, loglevel, format, args2);
191 char *text = g_strdup_vprintf(format, args);
193 QString s = QString::fromUtf8(text);
194 #if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) 195 for (QString& substring : s.split(
"\n", Qt::SkipEmptyParts))
198 for (QString& substring : s.split(
"\n", QString::SkipEmptyParts))
211 const int delta =
buffer_.size() - value.toInt();
libsigrok allows users to import and export data from files in various formats some of them as generic as others very specific For a list and make sure to check not so common and outright exotic ways to represent data and sigrok tries to suit as many needs as it can To see which formats your version of PulseView just click on the small arrow next to the _Open_ PulseView will ask for the file name to open Once you picked the you may be asked to specify the details of the format
static const QString Key_Log_BufferSize
static const int MAX_BUFFER_SIZE
static int log_sr(void *cb_data, int loglevel, const char *format, va_list args)
T value(details::expression_node< T > *n)
static void * prev_sr_log_cb_data
static sr_log_callback prev_sr_log_cb
void set_log_level(int level)
int get_log_level() const
static void remove_change_handler(GlobalSettingsInterface *cb)
static const int MIN_BUFFER_SIZE
static void log_pv(QtMsgType type, const QMessageLogContext &context, const QString &msg)
void logged_text(QString s)
void on_setting_changed(const QString &key, const QVariant &value)
static void add_change_handler(GlobalSettingsInterface *cb)
void log(const QString &text, int source)