PulseView  unreleased development snapshot
A Qt-based sigrok GUI
logging.hpp
Go to the documentation of this file.
1 /*
2  * This file is part of the PulseView project.
3  *
4  * Copyright (C) 2018 Soeren Apel <soeren@apelpie.net>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef PULSEVIEW_PV_LOGGING_HPP
21 #define PULSEVIEW_PV_LOGGING_HPP
22 
23 #include "globalsettings.hpp"
24 
25 #include <mutex>
26 
27 #include <QtGlobal>
28 #include <QObject>
29 #include <QString>
30 #include <QStringList>
31 
32 using std::mutex;
33 
34 namespace pv {
35 
36 class Logging : public QObject, public GlobalSettingsInterface
37 {
38  Q_OBJECT
39 
40 public:
41  enum LogSource {
45  };
46 
47  static const int MIN_BUFFER_SIZE;
48  static const int MAX_BUFFER_SIZE;
49 
50 public:
51  ~Logging();
52  void init();
53 
54  int get_log_level() const;
55  void set_log_level(int level);
56 
57  QString get_log() const;
58 
59  void log(const QString &text, int source);
60 
61  static void log_pv(QtMsgType type, const QMessageLogContext &context, const QString &msg);
62 
63  static int log_sr(void *cb_data, int loglevel, const char *format, va_list args);
64 
65 #ifdef ENABLE_DECODE
66  static int log_srd(void *cb_data, int loglevel, const char *format, va_list args);
67 #endif
68 
69 private:
70  void on_setting_changed(const QString &key, const QVariant &value);
71 
72 Q_SIGNALS:
73  void logged_text(QString s);
74 
75 private:
77  QStringList buffer_;
78  mutable mutex log_mutex_;
79 };
80 
81 extern Logging logging;
82 
83 } // namespace pv
84 
85 #endif // PULSEVIEW_PV_LOGGING_HPP
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
Logging logging
Definition: logging.cpp:39
static const int MAX_BUFFER_SIZE
Definition: logging.hpp:48
static int log_sr(void *cb_data, int loglevel, const char *format, va_list args)
Definition: logging.cpp:161
T value(details::expression_node< T > *n)
Definition: exprtk.hpp:12358
void set_log_level(int level)
Definition: logging.cpp:95
mutex log_mutex_
Definition: logging.hpp:78
int get_log_level() const
Definition: logging.cpp:89
QString get_log() const
Definition: logging.cpp:103
static const int MIN_BUFFER_SIZE
Definition: logging.hpp:47
static void log_pv(QtMsgType type, const QMessageLogContext &context, const QString &msg)
Definition: logging.cpp:151
void init()
Definition: logging.cpp:69
void logged_text(QString s)
void on_setting_changed(const QString &key, const QVariant &value)
Definition: logging.cpp:207
QStringList buffer_
Definition: logging.hpp:77
int buffer_size_
Definition: logging.hpp:76
void log(const QString &text, int source)
Definition: logging.cpp:108