Renamed C++ headers to .hpp
authorJoel Holdsworth <joel@airwebreathe.org.uk>
Sat, 22 Nov 2014 08:53:27 +0000 (08:53 +0000)
committerJoel Holdsworth <joel@airwebreathe.org.uk>
Sat, 22 Nov 2014 14:32:09 +0000 (14:32 +0000)
190 files changed:
CMakeLists.txt
android/loghandler.cpp
android/loghandler.h [deleted file]
android/loghandler.hpp [new file with mode: 0644]
main.cpp
pv/application.cpp
pv/application.h [deleted file]
pv/application.hpp [new file with mode: 0644]
pv/data/analog.cpp
pv/data/analog.h [deleted file]
pv/data/analog.hpp [new file with mode: 0644]
pv/data/analogsnapshot.cpp
pv/data/analogsnapshot.h [deleted file]
pv/data/analogsnapshot.hpp [new file with mode: 0644]
pv/data/decode/annotation.cpp
pv/data/decode/annotation.h [deleted file]
pv/data/decode/annotation.hpp [new file with mode: 0644]
pv/data/decode/decoder.cpp
pv/data/decode/decoder.h [deleted file]
pv/data/decode/decoder.hpp [new file with mode: 0644]
pv/data/decode/row.cpp
pv/data/decode/row.h [deleted file]
pv/data/decode/row.hpp [new file with mode: 0644]
pv/data/decode/rowdata.cpp
pv/data/decode/rowdata.h [deleted file]
pv/data/decode/rowdata.hpp [new file with mode: 0644]
pv/data/decoderstack.cpp
pv/data/decoderstack.h [deleted file]
pv/data/decoderstack.hpp [new file with mode: 0644]
pv/data/logic.cpp
pv/data/logic.h [deleted file]
pv/data/logic.hpp [new file with mode: 0644]
pv/data/logicsnapshot.cpp
pv/data/logicsnapshot.h [deleted file]
pv/data/logicsnapshot.hpp [new file with mode: 0644]
pv/data/signaldata.cpp
pv/data/signaldata.h [deleted file]
pv/data/signaldata.hpp [new file with mode: 0644]
pv/data/snapshot.cpp
pv/data/snapshot.h [deleted file]
pv/data/snapshot.hpp [new file with mode: 0644]
pv/devicemanager.cpp
pv/devicemanager.h [deleted file]
pv/devicemanager.hpp [new file with mode: 0644]
pv/dialogs/about.cpp
pv/dialogs/about.h [deleted file]
pv/dialogs/about.hpp [new file with mode: 0644]
pv/dialogs/connect.cpp
pv/dialogs/connect.h [deleted file]
pv/dialogs/connect.hpp [new file with mode: 0644]
pv/dialogs/storeprogress.cpp
pv/dialogs/storeprogress.h [deleted file]
pv/dialogs/storeprogress.hpp [new file with mode: 0644]
pv/mainwindow.cpp
pv/mainwindow.h [deleted file]
pv/mainwindow.hpp [new file with mode: 0644]
pv/popups/channels.cpp
pv/popups/channels.h [deleted file]
pv/popups/channels.hpp [new file with mode: 0644]
pv/popups/deviceoptions.cpp
pv/popups/deviceoptions.h [deleted file]
pv/popups/deviceoptions.hpp [new file with mode: 0644]
pv/prop/binding/binding.cpp
pv/prop/binding/binding.h [deleted file]
pv/prop/binding/binding.hpp [new file with mode: 0644]
pv/prop/binding/decoderoptions.cpp
pv/prop/binding/decoderoptions.h [deleted file]
pv/prop/binding/decoderoptions.hpp [new file with mode: 0644]
pv/prop/binding/deviceoptions.cpp
pv/prop/binding/deviceoptions.h [deleted file]
pv/prop/binding/deviceoptions.hpp [new file with mode: 0644]
pv/prop/bool.cpp
pv/prop/bool.h [deleted file]
pv/prop/bool.hpp [new file with mode: 0644]
pv/prop/double.cpp
pv/prop/double.h [deleted file]
pv/prop/double.hpp [new file with mode: 0644]
pv/prop/enum.cpp
pv/prop/enum.h [deleted file]
pv/prop/enum.hpp [new file with mode: 0644]
pv/prop/int.cpp
pv/prop/int.h [deleted file]
pv/prop/int.hpp [new file with mode: 0644]
pv/prop/property.cpp
pv/prop/property.h [deleted file]
pv/prop/property.hpp [new file with mode: 0644]
pv/prop/string.cpp
pv/prop/string.h [deleted file]
pv/prop/string.hpp [new file with mode: 0644]
pv/sigsession.cpp
pv/sigsession.h [deleted file]
pv/sigsession.hpp [new file with mode: 0644]
pv/storesession.cpp
pv/storesession.h [deleted file]
pv/storesession.hpp [new file with mode: 0644]
pv/toolbars/samplingbar.cpp
pv/toolbars/samplingbar.h [deleted file]
pv/toolbars/samplingbar.hpp [new file with mode: 0644]
pv/util.cpp
pv/util.h [deleted file]
pv/util.hpp [new file with mode: 0644]
pv/view/analogsignal.cpp
pv/view/analogsignal.h [deleted file]
pv/view/analogsignal.hpp [new file with mode: 0644]
pv/view/cursor.cpp
pv/view/cursor.h [deleted file]
pv/view/cursor.hpp [new file with mode: 0644]
pv/view/cursorheader.cpp
pv/view/cursorheader.h [deleted file]
pv/view/cursorheader.hpp [new file with mode: 0644]
pv/view/cursorpair.cpp
pv/view/cursorpair.h [deleted file]
pv/view/cursorpair.hpp [new file with mode: 0644]
pv/view/decodetrace.cpp
pv/view/decodetrace.h [deleted file]
pv/view/decodetrace.hpp [new file with mode: 0644]
pv/view/header.cpp
pv/view/header.h [deleted file]
pv/view/header.hpp [new file with mode: 0644]
pv/view/logicsignal.cpp
pv/view/logicsignal.h [deleted file]
pv/view/logicsignal.hpp [new file with mode: 0644]
pv/view/marginwidget.cpp
pv/view/marginwidget.h [deleted file]
pv/view/marginwidget.hpp [new file with mode: 0644]
pv/view/rowitem.cpp
pv/view/rowitem.h [deleted file]
pv/view/rowitem.hpp [new file with mode: 0644]
pv/view/rowitemiterator.h [deleted file]
pv/view/rowitemiterator.hpp [new file with mode: 0644]
pv/view/rowitemowner.cpp
pv/view/rowitemowner.h [deleted file]
pv/view/rowitemowner.hpp [new file with mode: 0644]
pv/view/ruler.cpp
pv/view/ruler.h [deleted file]
pv/view/ruler.hpp [new file with mode: 0644]
pv/view/selectableitem.cpp
pv/view/selectableitem.h [deleted file]
pv/view/selectableitem.hpp [new file with mode: 0644]
pv/view/signal.cpp
pv/view/signal.h [deleted file]
pv/view/signal.hpp [new file with mode: 0644]
pv/view/timemarker.cpp
pv/view/timemarker.h [deleted file]
pv/view/timemarker.hpp [new file with mode: 0644]
pv/view/trace.cpp
pv/view/trace.h [deleted file]
pv/view/trace.hpp [new file with mode: 0644]
pv/view/tracegroup.cpp
pv/view/tracegroup.h [deleted file]
pv/view/tracegroup.hpp [new file with mode: 0644]
pv/view/tracepalette.cpp
pv/view/tracepalette.h [deleted file]
pv/view/tracepalette.hpp [new file with mode: 0644]
pv/view/view.cpp
pv/view/view.h [deleted file]
pv/view/view.hpp [new file with mode: 0644]
pv/view/viewport.cpp
pv/view/viewport.h [deleted file]
pv/view/viewport.hpp [new file with mode: 0644]
pv/widgets/colourbutton.cpp
pv/widgets/colourbutton.h [deleted file]
pv/widgets/colourbutton.hpp [new file with mode: 0644]
pv/widgets/colourpopup.cpp
pv/widgets/colourpopup.h [deleted file]
pv/widgets/colourpopup.hpp [new file with mode: 0644]
pv/widgets/decodergroupbox.cpp
pv/widgets/decodergroupbox.h [deleted file]
pv/widgets/decodergroupbox.hpp [new file with mode: 0644]
pv/widgets/decodermenu.cpp
pv/widgets/decodermenu.h [deleted file]
pv/widgets/decodermenu.hpp [new file with mode: 0644]
pv/widgets/popup.cpp
pv/widgets/popup.h [deleted file]
pv/widgets/popup.hpp [new file with mode: 0644]
pv/widgets/popuptoolbutton.cpp
pv/widgets/popuptoolbutton.h [deleted file]
pv/widgets/popuptoolbutton.hpp [new file with mode: 0644]
pv/widgets/sweeptimingwidget.cpp
pv/widgets/sweeptimingwidget.h [deleted file]
pv/widgets/sweeptimingwidget.hpp [new file with mode: 0644]
pv/widgets/wellarray.cpp
pv/widgets/wellarray.h [deleted file]
pv/widgets/wellarray.hpp [new file with mode: 0644]
signalhandler.cpp
signalhandler.h [deleted file]
signalhandler.hpp [new file with mode: 0644]
test/CMakeLists.txt
test/data/analogsnapshot.cpp
test/data/logicsnapshot.cpp

index 136880e0d276eb1423fc2965f901a9a5fc4626f7..05c6270c5ded577531ae15bb1138731f66b4c092 100644 (file)
@@ -193,42 +193,42 @@ set(pulseview_SOURCES
 
 # This list includes only QObject derived class headers.
 set(pulseview_HEADERS
-       pv/mainwindow.h
-       pv/sigsession.h
-       pv/storesession.h
-       pv/dialogs/about.h
-       pv/dialogs/connect.h
-       pv/dialogs/storeprogress.h
-       pv/popups/channels.h
-       pv/popups/deviceoptions.h
-       pv/prop/bool.h
-       pv/prop/double.h
-       pv/prop/enum.h
-       pv/prop/int.h
-       pv/prop/property.h
-       pv/prop/string.h
-       pv/prop/binding/deviceoptions.h
-       pv/toolbars/samplingbar.h
-       pv/view/cursor.h
-       pv/view/cursorheader.h
-       pv/view/header.h
-       pv/view/logicsignal.h
-       pv/view/marginwidget.h
-       pv/view/rowitem.h
-       pv/view/ruler.h
-       pv/view/selectableitem.h
-       pv/view/signal.h
-       pv/view/timemarker.h
-       pv/view/trace.h
-       pv/view/tracegroup.h
-       pv/view/view.h
-       pv/view/viewport.h
-       pv/widgets/colourbutton.h
-       pv/widgets/colourpopup.h
-       pv/widgets/popup.h
-       pv/widgets/popuptoolbutton.h
-       pv/widgets/sweeptimingwidget.h
-       pv/widgets/wellarray.h
+       pv/mainwindow.hpp
+       pv/sigsession.hpp
+       pv/storesession.hpp
+       pv/dialogs/about.hpp
+       pv/dialogs/connect.hpp
+       pv/dialogs/storeprogress.hpp
+       pv/popups/channels.hpp
+       pv/popups/deviceoptions.hpp
+       pv/prop/bool.hpp
+       pv/prop/double.hpp
+       pv/prop/enum.hpp
+       pv/prop/int.hpp
+       pv/prop/property.hpp
+       pv/prop/string.hpp
+       pv/prop/binding/deviceoptions.hpp
+       pv/toolbars/samplingbar.hpp
+       pv/view/cursor.hpp
+       pv/view/cursorheader.hpp
+       pv/view/header.hpp
+       pv/view/logicsignal.hpp
+       pv/view/marginwidget.hpp
+       pv/view/rowitem.hpp
+       pv/view/ruler.hpp
+       pv/view/selectableitem.hpp
+       pv/view/signal.hpp
+       pv/view/timemarker.hpp
+       pv/view/trace.hpp
+       pv/view/tracegroup.hpp
+       pv/view/view.hpp
+       pv/view/viewport.hpp
+       pv/widgets/colourbutton.hpp
+       pv/widgets/colourpopup.hpp
+       pv/widgets/popup.hpp
+       pv/widgets/popuptoolbutton.hpp
+       pv/widgets/sweeptimingwidget.hpp
+       pv/widgets/wellarray.hpp
 )
 
 set(pulseview_FORMS
@@ -241,7 +241,7 @@ set(pulseview_RESOURCES
 
 if(ENABLE_SIGNALS)
        list(APPEND pulseview_SOURCES signalhandler.cpp)
-       list(APPEND pulseview_HEADERS signalhandler.h)
+       list(APPEND pulseview_HEADERS signalhandler.hpp)
 endif()
 
 if(ENABLE_DECODE)
@@ -258,10 +258,10 @@ if(ENABLE_DECODE)
        )
 
        list(APPEND pulseview_HEADERS
-               pv/data/decoderstack.h
-               pv/view/decodetrace.h
-               pv/widgets/decodergroupbox.h
-               pv/widgets/decodermenu.h
+               pv/data/decoderstack.hpp
+               pv/view/decodetrace.hpp
+               pv/widgets/decodergroupbox.hpp
+               pv/widgets/decodermenu.hpp
        )
 endif()
 
index 3cd2e3b7e5c444e12d1eb19f155dcb98ac31a7c2..8e7806c89f95716616b7f67d906ad885eb6a2948 100644 (file)
@@ -26,7 +26,7 @@
 #include <stdint.h>
 #include <libsigrok/libsigrok.h>
 
-#include "android/loghandler.h"
+#include "android/loghandler.hpp"
 
 namespace pv {
 
diff --git a/android/loghandler.h b/android/loghandler.h
deleted file mode 100644 (file)
index e49158a..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2014 Marcus Comstedt <marcus@mc.pp.se>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef PULSEVIEW_ANDROID_LOGHANDLER_H
-#define PULSEVIEW_ANDROID_LOGHANDLER_H
-
-#include <stdarg.h>
-
-namespace pv {
-
-class AndroidLogHandler
-{
-private:
-       static int sr_callback(void *cb_data, int loglevel, const char *format, va_list args);
-       static int srd_callback(void *cb_data, int loglevel, const char *format, va_list args);
-
-public:
-       static void install_callbacks();
-};
-
-} // namespace pv
-
-#endif // PULSEVIEW_ANDROID_LOGHANDLER_H
diff --git a/android/loghandler.hpp b/android/loghandler.hpp
new file mode 100644 (file)
index 0000000..e49158a
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2014 Marcus Comstedt <marcus@mc.pp.se>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef PULSEVIEW_ANDROID_LOGHANDLER_H
+#define PULSEVIEW_ANDROID_LOGHANDLER_H
+
+#include <stdarg.h>
+
+namespace pv {
+
+class AndroidLogHandler
+{
+private:
+       static int sr_callback(void *cb_data, int loglevel, const char *format, va_list args);
+       static int srd_callback(void *cb_data, int loglevel, const char *format, va_list args);
+
+public:
+       static void install_callbacks();
+};
+
+} // namespace pv
+
+#endif // PULSEVIEW_ANDROID_LOGHANDLER_H
index c0ac04b475d49b9ac2330856ceded776ab34e292..8fac92340c1326b3aafd38a5d678b69a06b9046a 100644 (file)
--- a/main.cpp
+++ b/main.cpp
 #include <QDebug>
 
 #ifdef ENABLE_SIGNALS
-#include "signalhandler.h"
+#include "signalhandler.hpp"
 #endif
 
-#include "pv/application.h"
-#include "pv/devicemanager.h"
-#include "pv/mainwindow.h"
+#include "pv/application.hpp"
+#include "pv/devicemanager.hpp"
+#include "pv/mainwindow.hpp"
 #ifdef ANDROID
 #include <libsigrokandroidutils/libsigrokandroidutils.h>
-#include "android/loghandler.h"
+#include "android/loghandler.hpp"
 #endif
 
 #include "config.h"
index 66991dd985b3b5cd3d0765926784e5ec7e34847f..41f00f8cf1d918795701bb9b363b51096ed5aaeb 100644 (file)
@@ -18,7 +18,7 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include "application.h"
+#include "application.hpp"
 #include "config.h"
 
 #include <iostream>
diff --git a/pv/application.h b/pv/application.h
deleted file mode 100644 (file)
index 5a80ec8..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2014 Martin Ling <martin-sigrok@earth.li>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_APPLICATION_H
-#define PULSEVIEW_PV_APPLICATION_H
-
-#include <QApplication>
-
-class Application : public QApplication
-{
-public:
-       Application(int &argc, char* argv[]);
-private:
-       bool notify(QObject *receiver, QEvent *event);
-};
-
-#endif // PULSEVIEW_PV_APPLICATION_H
diff --git a/pv/application.hpp b/pv/application.hpp
new file mode 100644 (file)
index 0000000..5a80ec8
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2014 Martin Ling <martin-sigrok@earth.li>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_APPLICATION_H
+#define PULSEVIEW_PV_APPLICATION_H
+
+#include <QApplication>
+
+class Application : public QApplication
+{
+public:
+       Application(int &argc, char* argv[]);
+private:
+       bool notify(QObject *receiver, QEvent *event);
+};
+
+#endif // PULSEVIEW_PV_APPLICATION_H
index eb25629fe68fa0f5f94d165ca6f5d7a0a66e222e..30cf5013033dd0f9cc8b002031769b109495c4b5 100644 (file)
@@ -20,8 +20,8 @@
 
 #include <cassert>
 
-#include "analog.h"
-#include "analogsnapshot.h"
+#include "analog.hpp"
+#include "analogsnapshot.hpp"
 
 using std::deque;
 using std::max;
diff --git a/pv/data/analog.h b/pv/data/analog.h
deleted file mode 100644 (file)
index b89dd22..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_DATA_ANALOG_H
-#define PULSEVIEW_PV_DATA_ANALOG_H
-
-#include "signaldata.h"
-
-#include <deque>
-#include <memory>
-
-namespace pv {
-namespace data {
-
-class AnalogSnapshot;
-
-class Analog : public SignalData
-{
-public:
-       Analog();
-
-       void push_snapshot(
-               std::shared_ptr<AnalogSnapshot> &snapshot);
-
-       std::deque< std::shared_ptr<AnalogSnapshot> >&
-               get_snapshots();
-
-       void clear();
-
-       uint64_t get_max_sample_count() const;
-
-private:
-       std::deque< std::shared_ptr<AnalogSnapshot> > snapshots_;
-};
-
-} // namespace data
-} // namespace pv
-
-#endif // PULSEVIEW_PV_DATA_ANALOG_H
diff --git a/pv/data/analog.hpp b/pv/data/analog.hpp
new file mode 100644 (file)
index 0000000..cfc964e
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_DATA_ANALOG_H
+#define PULSEVIEW_PV_DATA_ANALOG_H
+
+#include "signaldata.hpp"
+
+#include <deque>
+#include <memory>
+
+namespace pv {
+namespace data {
+
+class AnalogSnapshot;
+
+class Analog : public SignalData
+{
+public:
+       Analog();
+
+       void push_snapshot(
+               std::shared_ptr<AnalogSnapshot> &snapshot);
+
+       std::deque< std::shared_ptr<AnalogSnapshot> >&
+               get_snapshots();
+
+       void clear();
+
+       uint64_t get_max_sample_count() const;
+
+private:
+       std::deque< std::shared_ptr<AnalogSnapshot> > snapshots_;
+};
+
+} // namespace data
+} // namespace pv
+
+#endif // PULSEVIEW_PV_DATA_ANALOG_H
index df3cb42d5b7b511da22ba77056c41f6de5e018be..589b1aa4b628e5f0e3ae8a7376651e09bbdec45d 100644 (file)
@@ -27,7 +27,7 @@
 
 #include <algorithm>
 
-#include "analogsnapshot.h"
+#include "analogsnapshot.hpp"
 
 using std::lock_guard;
 using std::recursive_mutex;
diff --git a/pv/data/analogsnapshot.h b/pv/data/analogsnapshot.h
deleted file mode 100644 (file)
index 9e2e782..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_DATA_ANALOGSNAPSHOT_H
-#define PULSEVIEW_PV_DATA_ANALOGSNAPSHOT_H
-
-#include "snapshot.h"
-
-#include <utility>
-#include <vector>
-
-namespace AnalogSnapshotTest {
-struct Basic;
-}
-
-namespace pv {
-namespace data {
-
-class AnalogSnapshot : public Snapshot
-{
-public:
-       struct EnvelopeSample
-       {
-               float min;
-               float max;
-       };
-
-       struct EnvelopeSection
-       {
-               uint64_t start;
-               unsigned int scale;
-               uint64_t length;
-               EnvelopeSample *samples;
-       };
-
-private:
-       struct Envelope
-       {
-               uint64_t length;
-               uint64_t data_length;
-               EnvelopeSample *samples;
-       };
-
-private:
-       static const unsigned int ScaleStepCount = 10;
-       static const int EnvelopeScalePower;
-       static const int EnvelopeScaleFactor;
-       static const float LogEnvelopeScaleFactor;
-       static const uint64_t EnvelopeDataUnit;
-
-public:
-       AnalogSnapshot(uint64_t expected_num_samples = 0);
-
-       virtual ~AnalogSnapshot();
-
-       void append_interleaved_samples(const float *data,
-               size_t sample_count, size_t stride);
-
-       const float* get_samples(int64_t start_sample,
-               int64_t end_sample) const;
-
-       void get_envelope_section(EnvelopeSection &s,
-               uint64_t start, uint64_t end, float min_length) const;
-
-private:
-       void reallocate_envelope(Envelope &l);
-
-       void append_payload_to_envelope_levels();
-
-private:
-       struct Envelope envelope_levels_[ScaleStepCount];
-
-       friend struct AnalogSnapshotTest::Basic;
-};
-
-} // namespace data
-} // namespace pv
-
-#endif // PULSEVIEW_PV_DATA_ANALOGSNAPSHOT_H
diff --git a/pv/data/analogsnapshot.hpp b/pv/data/analogsnapshot.hpp
new file mode 100644 (file)
index 0000000..3c6f99c
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_DATA_ANALOGSNAPSHOT_H
+#define PULSEVIEW_PV_DATA_ANALOGSNAPSHOT_H
+
+#include "snapshot.hpp"
+
+#include <utility>
+#include <vector>
+
+namespace AnalogSnapshotTest {
+struct Basic;
+}
+
+namespace pv {
+namespace data {
+
+class AnalogSnapshot : public Snapshot
+{
+public:
+       struct EnvelopeSample
+       {
+               float min;
+               float max;
+       };
+
+       struct EnvelopeSection
+       {
+               uint64_t start;
+               unsigned int scale;
+               uint64_t length;
+               EnvelopeSample *samples;
+       };
+
+private:
+       struct Envelope
+       {
+               uint64_t length;
+               uint64_t data_length;
+               EnvelopeSample *samples;
+       };
+
+private:
+       static const unsigned int ScaleStepCount = 10;
+       static const int EnvelopeScalePower;
+       static const int EnvelopeScaleFactor;
+       static const float LogEnvelopeScaleFactor;
+       static const uint64_t EnvelopeDataUnit;
+
+public:
+       AnalogSnapshot(uint64_t expected_num_samples = 0);
+
+       virtual ~AnalogSnapshot();
+
+       void append_interleaved_samples(const float *data,
+               size_t sample_count, size_t stride);
+
+       const float* get_samples(int64_t start_sample,
+               int64_t end_sample) const;
+
+       void get_envelope_section(EnvelopeSection &s,
+               uint64_t start, uint64_t end, float min_length) const;
+
+private:
+       void reallocate_envelope(Envelope &l);
+
+       void append_payload_to_envelope_levels();
+
+private:
+       struct Envelope envelope_levels_[ScaleStepCount];
+
+       friend struct AnalogSnapshotTest::Basic;
+};
+
+} // namespace data
+} // namespace pv
+
+#endif // PULSEVIEW_PV_DATA_ANALOGSNAPSHOT_H
index 9b07efbc5f2844724fb91cbcd1dc18149e8dce60..6287edce70f60fccd12ee13313cbeb0b6e7671d7 100644 (file)
@@ -25,7 +25,7 @@ extern "C" {
 #include <cassert>
 #include <vector>
 
-#include "annotation.h"
+#include "annotation.hpp"
 
 namespace pv {
 namespace data {
diff --git a/pv/data/decode/annotation.h b/pv/data/decode/annotation.h
deleted file mode 100644 (file)
index f1e2ef3..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_VIEW_DECODE_ANNOTATION_H
-#define PULSEVIEW_PV_VIEW_DECODE_ANNOTATION_H
-
-#include <stdint.h>
-
-#include <QString>
-
-struct srd_proto_data;
-
-namespace pv {
-namespace data {
-namespace decode {
-
-class Annotation
-{
-public:
-       Annotation(const srd_proto_data *const pdata);
-
-       uint64_t start_sample() const;
-       uint64_t end_sample() const;
-       int format() const;
-       const std::vector<QString>& annotations() const;
-
-private:
-       uint64_t start_sample_;
-       uint64_t end_sample_;
-       int format_;
-       std::vector<QString> annotations_;
-};
-
-} // namespace decode
-} // namespace data
-} // namespace pv
-
-#endif // PULSEVIEW_PV_VIEW_DECODE_ANNOTATION_H
diff --git a/pv/data/decode/annotation.hpp b/pv/data/decode/annotation.hpp
new file mode 100644 (file)
index 0000000..f1e2ef3
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_VIEW_DECODE_ANNOTATION_H
+#define PULSEVIEW_PV_VIEW_DECODE_ANNOTATION_H
+
+#include <stdint.h>
+
+#include <QString>
+
+struct srd_proto_data;
+
+namespace pv {
+namespace data {
+namespace decode {
+
+class Annotation
+{
+public:
+       Annotation(const srd_proto_data *const pdata);
+
+       uint64_t start_sample() const;
+       uint64_t end_sample() const;
+       int format() const;
+       const std::vector<QString>& annotations() const;
+
+private:
+       uint64_t start_sample_;
+       uint64_t end_sample_;
+       int format_;
+       std::vector<QString> annotations_;
+};
+
+} // namespace decode
+} // namespace data
+} // namespace pv
+
+#endif // PULSEVIEW_PV_VIEW_DECODE_ANNOTATION_H
index e2db774283496c6d3d1d58dfa068317433050b56..c5fffa6764385dbe6265f9441b32b312f06fcf70 100644 (file)
@@ -23,9 +23,9 @@
 #include <libsigrok/libsigrok.hpp>
 #include <libsigrokdecode/libsigrokdecode.h>
 
-#include "decoder.h"
+#include "decoder.hpp"
 
-#include <pv/view/logicsignal.h>
+#include <pv/view/logicsignal.hpp>
 
 using std::set;
 using std::map;
diff --git a/pv/data/decode/decoder.h b/pv/data/decode/decoder.h
deleted file mode 100644 (file)
index fbe5905..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_DATA_DECODE_DECODER_H
-#define PULSEVIEW_PV_DATA_DECODE_DECODER_H
-
-#include <map>
-#include <memory>
-#include <set>
-
-#include <glib.h>
-
-struct srd_decoder;
-struct srd_decoder_inst;
-struct srd_channel;
-struct srd_session;
-
-namespace pv {
-
-namespace view {
-class LogicSignal;
-}
-
-namespace data {
-
-class Logic;
-
-namespace decode {
-
-class Decoder
-{
-public:
-       Decoder(const srd_decoder *const decoder);
-
-       virtual ~Decoder();
-
-       const srd_decoder* decoder() const;
-
-       bool shown() const;
-       void show(bool show = true);
-
-       const std::map<const srd_channel*,
-               std::shared_ptr<view::LogicSignal> >& channels() const;
-       void set_channels(std::map<const srd_channel*,
-               std::shared_ptr<view::LogicSignal> > channels);
-
-       const std::map<std::string, GVariant*>& options() const;
-
-       void set_option(const char *id, GVariant *value);
-
-       bool have_required_channels() const;
-
-       srd_decoder_inst* create_decoder_inst(
-               srd_session *session, int unit_size) const;
-
-       std::set< std::shared_ptr<pv::data::Logic> > get_data();        
-
-private:
-       const srd_decoder *const decoder_;
-
-       bool shown_;
-
-       std::map<const srd_channel*, std::shared_ptr<pv::view::LogicSignal> >
-               channels_;
-       std::map<std::string, GVariant*> options_;
-};
-
-} // namespace decode
-} // namespace data
-} // namespace pv
-
-#endif // PULSEVIEW_PV_DATA_DECODE_DECODER_H
diff --git a/pv/data/decode/decoder.hpp b/pv/data/decode/decoder.hpp
new file mode 100644 (file)
index 0000000..fbe5905
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_DATA_DECODE_DECODER_H
+#define PULSEVIEW_PV_DATA_DECODE_DECODER_H
+
+#include <map>
+#include <memory>
+#include <set>
+
+#include <glib.h>
+
+struct srd_decoder;
+struct srd_decoder_inst;
+struct srd_channel;
+struct srd_session;
+
+namespace pv {
+
+namespace view {
+class LogicSignal;
+}
+
+namespace data {
+
+class Logic;
+
+namespace decode {
+
+class Decoder
+{
+public:
+       Decoder(const srd_decoder *const decoder);
+
+       virtual ~Decoder();
+
+       const srd_decoder* decoder() const;
+
+       bool shown() const;
+       void show(bool show = true);
+
+       const std::map<const srd_channel*,
+               std::shared_ptr<view::LogicSignal> >& channels() const;
+       void set_channels(std::map<const srd_channel*,
+               std::shared_ptr<view::LogicSignal> > channels);
+
+       const std::map<std::string, GVariant*>& options() const;
+
+       void set_option(const char *id, GVariant *value);
+
+       bool have_required_channels() const;
+
+       srd_decoder_inst* create_decoder_inst(
+               srd_session *session, int unit_size) const;
+
+       std::set< std::shared_ptr<pv::data::Logic> > get_data();        
+
+private:
+       const srd_decoder *const decoder_;
+
+       bool shown_;
+
+       std::map<const srd_channel*, std::shared_ptr<pv::view::LogicSignal> >
+               channels_;
+       std::map<std::string, GVariant*> options_;
+};
+
+} // namespace decode
+} // namespace data
+} // namespace pv
+
+#endif // PULSEVIEW_PV_DATA_DECODE_DECODER_H
index 8e3a6512f8b55119f38219333165a686e98d62f9..e36051c36f3947cd3fbb26e3f3750a3b83a31749 100644 (file)
@@ -18,7 +18,7 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include "row.h"
+#include "row.hpp"
 
 #include <libsigrokdecode/libsigrokdecode.h>
 
diff --git a/pv/data/decode/row.h b/pv/data/decode/row.h
deleted file mode 100644 (file)
index 221d9c9..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2014 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_DATA_DECODE_ROW_H
-#define PULSEVIEW_PV_DATA_DECODE_ROW_H
-
-#include <vector>
-
-#include "annotation.h"
-
-struct srd_decoder;
-struct srd_decoder_annotation_row;
-
-namespace pv {
-namespace data {
-namespace decode {
-
-class Row
-{
-public:
-       Row();
-
-       Row(const srd_decoder *decoder,
-               const srd_decoder_annotation_row *row = NULL);
-
-       const srd_decoder* decoder() const;
-       const srd_decoder_annotation_row* row() const;
-
-       const QString title() const;
-
-       bool operator<(const Row &other) const;
-
-private:
-       const srd_decoder *decoder_;
-       const srd_decoder_annotation_row *row_;
-};
-
-} // decode
-} // data
-} // pv
-
-#endif // PULSEVIEW_PV_DATA_DECODE_ROW_H
diff --git a/pv/data/decode/row.hpp b/pv/data/decode/row.hpp
new file mode 100644 (file)
index 0000000..3a163fb
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2014 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_DATA_DECODE_ROW_H
+#define PULSEVIEW_PV_DATA_DECODE_ROW_H
+
+#include <vector>
+
+#include "annotation.hpp"
+
+struct srd_decoder;
+struct srd_decoder_annotation_row;
+
+namespace pv {
+namespace data {
+namespace decode {
+
+class Row
+{
+public:
+       Row();
+
+       Row(const srd_decoder *decoder,
+               const srd_decoder_annotation_row *row = NULL);
+
+       const srd_decoder* decoder() const;
+       const srd_decoder_annotation_row* row() const;
+
+       const QString title() const;
+
+       bool operator<(const Row &other) const;
+
+private:
+       const srd_decoder *decoder_;
+       const srd_decoder_annotation_row *row_;
+};
+
+} // decode
+} // data
+} // pv
+
+#endif // PULSEVIEW_PV_DATA_DECODE_ROW_H
index b4ccd64d087cb882a4819618a4e30f0ca9ca1593..9402e707503e63772c9c18a39d5ea98415ed433e 100644 (file)
@@ -18,7 +18,7 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include "rowdata.h"
+#include "rowdata.hpp"
 
 using std::vector;
 
diff --git a/pv/data/decode/rowdata.h b/pv/data/decode/rowdata.h
deleted file mode 100644 (file)
index 265c4e3..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2014 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_DATA_DECODE_ROWDATA_H
-#define PULSEVIEW_PV_DATA_DECODE_ROWDATA_H
-
-#include <vector>
-
-#include "annotation.h"
-
-namespace pv {
-namespace data {
-namespace decode {
-
-class RowData
-{
-public:
-       RowData();
-
-public:
-       uint64_t get_max_sample() const;
-
-       /**
-        * Extracts sorted annotations between two period into a vector.
-        */
-       void get_annotation_subset(
-               std::vector<pv::data::decode::Annotation> &dest,
-               uint64_t start_sample, uint64_t end_sample) const;
-
-       void push_annotation(const Annotation &a);
-
-private:
-       std::vector<Annotation> annotations_;
-};
-
-}
-} // data
-} // pv
-
-#endif // PULSEVIEW_PV_DATA_DECODE_ROWDATA_H
diff --git a/pv/data/decode/rowdata.hpp b/pv/data/decode/rowdata.hpp
new file mode 100644 (file)
index 0000000..568b1bb
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2014 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_DATA_DECODE_ROWDATA_H
+#define PULSEVIEW_PV_DATA_DECODE_ROWDATA_H
+
+#include <vector>
+
+#include "annotation.hpp"
+
+namespace pv {
+namespace data {
+namespace decode {
+
+class RowData
+{
+public:
+       RowData();
+
+public:
+       uint64_t get_max_sample() const;
+
+       /**
+        * Extracts sorted annotations between two period into a vector.
+        */
+       void get_annotation_subset(
+               std::vector<pv::data::decode::Annotation> &dest,
+               uint64_t start_sample, uint64_t end_sample) const;
+
+       void push_annotation(const Annotation &a);
+
+private:
+       std::vector<Annotation> annotations_;
+};
+
+}
+} // data
+} // pv
+
+#endif // PULSEVIEW_PV_DATA_DECODE_ROWDATA_H
index 3d7341261dc896e5f0c0f23876eb212023bb7d0d..5e30faa73c810e7d64e9bfb936e7cb6e8656daa8 100644 (file)
 
 #include <QDebug>
 
-#include "decoderstack.h"
-
-#include <pv/data/logic.h>
-#include <pv/data/logicsnapshot.h>
-#include <pv/data/decode/decoder.h>
-#include <pv/data/decode/annotation.h>
-#include <pv/sigsession.h>
-#include <pv/view/logicsignal.h>
+#include "decoderstack.hpp"
+
+#include <pv/data/logic.hpp>
+#include <pv/data/logicsnapshot.hpp>
+#include <pv/data/decode/decoder.hpp>
+#include <pv/data/decode/annotation.hpp>
+#include <pv/sigsession.hpp>
+#include <pv/view/logicsignal.hpp>
 
 using std::lock_guard;
 using std::mutex;
diff --git a/pv/data/decoderstack.h b/pv/data/decoderstack.h
deleted file mode 100644 (file)
index c50f385..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_DATA_DECODERSTACK_H
-#define PULSEVIEW_PV_DATA_DECODERSTACK_H
-
-#include "signaldata.h"
-
-#include <atomic>
-#include <condition_variable>
-#include <list>
-#include <map>
-#include <memory>
-#include <thread>
-
-#include <boost/optional.hpp>
-
-#include <QObject>
-#include <QString>
-
-#include <pv/data/decode/row.h>
-#include <pv/data/decode/rowdata.h>
-
-struct srd_decoder;
-struct srd_decoder_annotation_row;
-struct srd_channel;
-struct srd_proto_data;
-struct srd_session;
-
-namespace DecoderStackTest {
-struct TwoDecoderStack;
-}
-
-namespace pv {
-
-class SigSession;
-
-namespace view {
-class LogicSignal;
-}
-
-namespace data {
-
-class LogicSnapshot;
-
-namespace decode {
-class Annotation;
-class Decoder;
-}
-
-class Logic;
-
-class DecoderStack : public QObject, public SignalData
-{
-       Q_OBJECT
-
-private:
-       static const double DecodeMargin;
-       static const double DecodeThreshold;
-       static const int64_t DecodeChunkLength;
-       static const unsigned int DecodeNotifyPeriod;
-
-public:
-       DecoderStack(pv::SigSession &session_,
-               const srd_decoder *const decoder);
-
-       virtual ~DecoderStack();
-
-       const std::list< std::shared_ptr<decode::Decoder> >& stack() const;
-       void push(std::shared_ptr<decode::Decoder> decoder);
-       void remove(int index);
-
-       int64_t samples_decoded() const;
-
-       std::vector<decode::Row> get_visible_rows() const;
-
-       /**
-        * Extracts sorted annotations between two period into a vector.
-        */
-       void get_annotation_subset(
-               std::vector<pv::data::decode::Annotation> &dest,
-               const decode::Row &row, uint64_t start_sample,
-               uint64_t end_sample) const;
-
-       QString error_message();
-
-       void clear();
-
-       uint64_t get_max_sample_count() const;
-
-       void begin_decode();
-
-private:
-       boost::optional<int64_t> wait_for_data() const;
-
-       void decode_data(const int64_t sample_count,
-               const unsigned int unit_size, srd_session *const session);
-
-       void decode_proc();
-
-       static void annotation_callback(srd_proto_data *pdata,
-               void *decoder);
-
-private Q_SLOTS:
-       void on_new_frame();
-
-       void on_data_received();
-
-       void on_frame_ended();
-
-Q_SIGNALS:
-       void new_decode_data();
-
-private:
-       pv::SigSession &session_;
-
-       /**
-        * This mutex prevents more than one decode operation occuring
-        * concurrently.
-        * @todo A proper solution should be implemented to allow multiple
-        * decode operations.
-        */
-       static std::mutex global_decode_mutex_;
-
-       std::list< std::shared_ptr<decode::Decoder> > stack_;
-
-       std::shared_ptr<pv::data::LogicSnapshot> snapshot_;
-
-       mutable std::mutex input_mutex_;
-       mutable std::condition_variable input_cond_;
-       int64_t sample_count_;
-       bool frame_complete_;
-
-       mutable std::mutex output_mutex_;
-       int64_t samples_decoded_;
-
-       std::map<const decode::Row, decode::RowData> rows_;
-
-       std::map<std::pair<const srd_decoder*, int>, decode::Row> class_rows_;
-
-       QString error_message_;
-
-       std::thread decode_thread_;
-       std::atomic<bool> interrupt_;
-
-       friend struct DecoderStackTest::TwoDecoderStack;
-};
-
-} // namespace data
-} // namespace pv
-
-#endif // PULSEVIEW_PV_DATA_DECODERSTACK_H
diff --git a/pv/data/decoderstack.hpp b/pv/data/decoderstack.hpp
new file mode 100644 (file)
index 0000000..979a56f
--- /dev/null
@@ -0,0 +1,169 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_DATA_DECODERSTACK_H
+#define PULSEVIEW_PV_DATA_DECODERSTACK_H
+
+#include "signaldata.hpp"
+
+#include <atomic>
+#include <condition_variable>
+#include <list>
+#include <map>
+#include <memory>
+#include <thread>
+
+#include <boost/optional.hpp>
+
+#include <QObject>
+#include <QString>
+
+#include <pv/data/decode/row.hpp>
+#include <pv/data/decode/rowdata.hpp>
+
+struct srd_decoder;
+struct srd_decoder_annotation_row;
+struct srd_channel;
+struct srd_proto_data;
+struct srd_session;
+
+namespace DecoderStackTest {
+struct TwoDecoderStack;
+}
+
+namespace pv {
+
+class SigSession;
+
+namespace view {
+class LogicSignal;
+}
+
+namespace data {
+
+class LogicSnapshot;
+
+namespace decode {
+class Annotation;
+class Decoder;
+}
+
+class Logic;
+
+class DecoderStack : public QObject, public SignalData
+{
+       Q_OBJECT
+
+private:
+       static const double DecodeMargin;
+       static const double DecodeThreshold;
+       static const int64_t DecodeChunkLength;
+       static const unsigned int DecodeNotifyPeriod;
+
+public:
+       DecoderStack(pv::SigSession &session_,
+               const srd_decoder *const decoder);
+
+       virtual ~DecoderStack();
+
+       const std::list< std::shared_ptr<decode::Decoder> >& stack() const;
+       void push(std::shared_ptr<decode::Decoder> decoder);
+       void remove(int index);
+
+       int64_t samples_decoded() const;
+
+       std::vector<decode::Row> get_visible_rows() const;
+
+       /**
+        * Extracts sorted annotations between two period into a vector.
+        */
+       void get_annotation_subset(
+               std::vector<pv::data::decode::Annotation> &dest,
+               const decode::Row &row, uint64_t start_sample,
+               uint64_t end_sample) const;
+
+       QString error_message();
+
+       void clear();
+
+       uint64_t get_max_sample_count() const;
+
+       void begin_decode();
+
+private:
+       boost::optional<int64_t> wait_for_data() const;
+
+       void decode_data(const int64_t sample_count,
+               const unsigned int unit_size, srd_session *const session);
+
+       void decode_proc();
+
+       static void annotation_callback(srd_proto_data *pdata,
+               void *decoder);
+
+private Q_SLOTS:
+       void on_new_frame();
+
+       void on_data_received();
+
+       void on_frame_ended();
+
+Q_SIGNALS:
+       void new_decode_data();
+
+private:
+       pv::SigSession &session_;
+
+       /**
+        * This mutex prevents more than one decode operation occuring
+        * concurrently.
+        * @todo A proper solution should be implemented to allow multiple
+        * decode operations.
+        */
+       static std::mutex global_decode_mutex_;
+
+       std::list< std::shared_ptr<decode::Decoder> > stack_;
+
+       std::shared_ptr<pv::data::LogicSnapshot> snapshot_;
+
+       mutable std::mutex input_mutex_;
+       mutable std::condition_variable input_cond_;
+       int64_t sample_count_;
+       bool frame_complete_;
+
+       mutable std::mutex output_mutex_;
+       int64_t samples_decoded_;
+
+       std::map<const decode::Row, decode::RowData> rows_;
+
+       std::map<std::pair<const srd_decoder*, int>, decode::Row> class_rows_;
+
+       QString error_message_;
+
+       std::thread decode_thread_;
+       std::atomic<bool> interrupt_;
+
+       friend struct DecoderStackTest::TwoDecoderStack;
+};
+
+} // namespace data
+} // namespace pv
+
+#endif // PULSEVIEW_PV_DATA_DECODERSTACK_H
index b7b6cace08287eff88be95d951cdfbe16823f4c2..8f1d294d5c7e9c27f10de34e960d1c9ee6f5570f 100644 (file)
@@ -20,8 +20,8 @@
 
 #include <cassert>
 
-#include "logic.h"
-#include "logicsnapshot.h"
+#include "logic.hpp"
+#include "logicsnapshot.hpp"
 
 using std::deque;
 using std::max;
diff --git a/pv/data/logic.h b/pv/data/logic.h
deleted file mode 100644 (file)
index d8ee530..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_DATA_LOGIC_H
-#define PULSEVIEW_PV_DATA_LOGIC_H
-
-#include "signaldata.h"
-
-#include <deque>
-#include <memory>
-
-namespace pv {
-namespace data {
-
-class LogicSnapshot;
-
-class Logic : public SignalData
-{
-public:
-       Logic(unsigned int num_channels);
-
-       int get_num_channels() const;
-
-       void push_snapshot(
-               std::shared_ptr<LogicSnapshot> &snapshot);
-
-       std::deque< std::shared_ptr<LogicSnapshot> >&
-               get_snapshots();
-
-       void clear();
-
-       uint64_t get_max_sample_count() const;
-
-private:
-       const unsigned int num_channels_;
-       std::deque< std::shared_ptr<LogicSnapshot> > snapshots_;
-};
-
-} // namespace data
-} // namespace pv
-
-#endif // PULSEVIEW_PV_DATA_LOGIC_H
diff --git a/pv/data/logic.hpp b/pv/data/logic.hpp
new file mode 100644 (file)
index 0000000..51e12cb
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_DATA_LOGIC_H
+#define PULSEVIEW_PV_DATA_LOGIC_H
+
+#include "signaldata.hpp"
+
+#include <deque>
+#include <memory>
+
+namespace pv {
+namespace data {
+
+class LogicSnapshot;
+
+class Logic : public SignalData
+{
+public:
+       Logic(unsigned int num_channels);
+
+       int get_num_channels() const;
+
+       void push_snapshot(
+               std::shared_ptr<LogicSnapshot> &snapshot);
+
+       std::deque< std::shared_ptr<LogicSnapshot> >&
+               get_snapshots();
+
+       void clear();
+
+       uint64_t get_max_sample_count() const;
+
+private:
+       const unsigned int num_channels_;
+       std::deque< std::shared_ptr<LogicSnapshot> > snapshots_;
+};
+
+} // namespace data
+} // namespace pv
+
+#endif // PULSEVIEW_PV_DATA_LOGIC_H
index 31093c27ea1fc3221ad903f995dad22ddb5eff4a..82d900749c027cc1bdbbb159e826310285889618 100644 (file)
@@ -25,8 +25,7 @@
 #include <stdlib.h>
 #include <math.h>
 
-#include "config.h"
-#include "logicsnapshot.h"
+#include "logicsnapshot.hpp"
 
 #include <libsigrok/libsigrok.hpp>
 
diff --git a/pv/data/logicsnapshot.h b/pv/data/logicsnapshot.h
deleted file mode 100644 (file)
index db4d97b..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_DATA_LOGICSNAPSHOT_H
-#define PULSEVIEW_PV_DATA_LOGICSNAPSHOT_H
-
-#include "snapshot.h"
-
-#include <utility>
-#include <vector>
-
-namespace sigrok {
-       class Logic;
-}
-
-namespace LogicSnapshotTest {
-struct Pow2;
-struct Basic;
-struct LargeData;
-struct Pulses;
-struct LongPulses;
-}
-
-namespace pv {
-namespace data {
-
-class LogicSnapshot : public Snapshot
-{
-private:
-       struct MipMapLevel
-       {
-               uint64_t length;
-               uint64_t data_length;
-               void *data;
-       };
-
-private:
-       static const unsigned int ScaleStepCount = 10;
-       static const int MipMapScalePower;
-       static const int MipMapScaleFactor;
-       static const float LogMipMapScaleFactor;
-       static const uint64_t MipMapDataUnit;
-
-public:
-       typedef std::pair<int64_t, bool> EdgePair;
-
-public:
-       LogicSnapshot(std::shared_ptr<sigrok::Logic> logic,
-                     uint64_t expected_num_samples = 0);
-
-       virtual ~LogicSnapshot();
-
-       void append_payload(std::shared_ptr<sigrok::Logic> logic);
-
-       void get_samples(uint8_t *const data,
-               int64_t start_sample, int64_t end_sample) const;
-
-private:
-       uint64_t unpack_sample(const uint8_t *ptr) const;
-       void pack_sample(uint8_t *ptr, uint64_t value);
-       
-       void reallocate_mipmap_level(MipMapLevel &m);
-
-       void append_payload_to_mipmap();
-
-       uint64_t get_sample(uint64_t index) const;
-
-public:
-       /**
-        * Parses a logic data snapshot to generate a list of transitions
-        * in a time interval to a given level of detail.
-        * @param[out] edges The vector to place the edges into.
-        * @param[in] start The start sample index.
-        * @param[in] end The end sample index.
-        * @param[in] min_length The minimum number of samples that
-        * can be resolved at this level of detail.
-        * @param[in] sig_index The index of the signal.
-        **/
-       void get_subsampled_edges(std::vector<EdgePair> &edges,
-               uint64_t start, uint64_t end,
-               float min_length, int sig_index);
-
-private:
-       uint64_t get_subsample(int level, uint64_t offset) const;
-
-       static uint64_t pow2_ceil(uint64_t x, unsigned int power);
-
-private:
-       struct MipMapLevel mip_map_[ScaleStepCount];
-       uint64_t last_append_sample_;
-
-       friend struct LogicSnapshotTest::Pow2;
-       friend struct LogicSnapshotTest::Basic;
-       friend struct LogicSnapshotTest::LargeData;
-       friend struct LogicSnapshotTest::Pulses;
-       friend struct LogicSnapshotTest::LongPulses;
-};
-
-} // namespace data
-} // namespace pv
-
-#endif // PULSEVIEW_PV_DATA_LOGICSNAPSHOT_H
diff --git a/pv/data/logicsnapshot.hpp b/pv/data/logicsnapshot.hpp
new file mode 100644 (file)
index 0000000..619048d
--- /dev/null
@@ -0,0 +1,119 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_DATA_LOGICSNAPSHOT_H
+#define PULSEVIEW_PV_DATA_LOGICSNAPSHOT_H
+
+#include "snapshot.hpp"
+
+#include <utility>
+#include <vector>
+
+namespace sigrok {
+       class Logic;
+}
+
+namespace LogicSnapshotTest {
+struct Pow2;
+struct Basic;
+struct LargeData;
+struct Pulses;
+struct LongPulses;
+}
+
+namespace pv {
+namespace data {
+
+class LogicSnapshot : public Snapshot
+{
+private:
+       struct MipMapLevel
+       {
+               uint64_t length;
+               uint64_t data_length;
+               void *data;
+       };
+
+private:
+       static const unsigned int ScaleStepCount = 10;
+       static const int MipMapScalePower;
+       static const int MipMapScaleFactor;
+       static const float LogMipMapScaleFactor;
+       static const uint64_t MipMapDataUnit;
+
+public:
+       typedef std::pair<int64_t, bool> EdgePair;
+
+public:
+       LogicSnapshot(std::shared_ptr<sigrok::Logic> logic,
+                     uint64_t expected_num_samples = 0);
+
+       virtual ~LogicSnapshot();
+
+       void append_payload(std::shared_ptr<sigrok::Logic> logic);
+
+       void get_samples(uint8_t *const data,
+               int64_t start_sample, int64_t end_sample) const;
+
+private:
+       uint64_t unpack_sample(const uint8_t *ptr) const;
+       void pack_sample(uint8_t *ptr, uint64_t value);
+       
+       void reallocate_mipmap_level(MipMapLevel &m);
+
+       void append_payload_to_mipmap();
+
+       uint64_t get_sample(uint64_t index) const;
+
+public:
+       /**
+        * Parses a logic data snapshot to generate a list of transitions
+        * in a time interval to a given level of detail.
+        * @param[out] edges The vector to place the edges into.
+        * @param[in] start The start sample index.
+        * @param[in] end The end sample index.
+        * @param[in] min_length The minimum number of samples that
+        * can be resolved at this level of detail.
+        * @param[in] sig_index The index of the signal.
+        **/
+       void get_subsampled_edges(std::vector<EdgePair> &edges,
+               uint64_t start, uint64_t end,
+               float min_length, int sig_index);
+
+private:
+       uint64_t get_subsample(int level, uint64_t offset) const;
+
+       static uint64_t pow2_ceil(uint64_t x, unsigned int power);
+
+private:
+       struct MipMapLevel mip_map_[ScaleStepCount];
+       uint64_t last_append_sample_;
+
+       friend struct LogicSnapshotTest::Pow2;
+       friend struct LogicSnapshotTest::Basic;
+       friend struct LogicSnapshotTest::LargeData;
+       friend struct LogicSnapshotTest::Pulses;
+       friend struct LogicSnapshotTest::LongPulses;
+};
+
+} // namespace data
+} // namespace pv
+
+#endif // PULSEVIEW_PV_DATA_LOGICSNAPSHOT_H
index 456edf140e77023040ae8b7e8c64323262698d63..42409b8299c6bf69abdd5de3123f9878e2a901e6 100644 (file)
@@ -18,7 +18,7 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include "signaldata.h"
+#include "signaldata.hpp"
 
 namespace pv {
 namespace data {
diff --git a/pv/data/signaldata.h b/pv/data/signaldata.h
deleted file mode 100644 (file)
index 885f843..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_DATA_SIGNALDATA_H
-#define PULSEVIEW_PV_DATA_SIGNALDATA_H
-
-#include <stdint.h>
-
-namespace pv {
-namespace data {
-
-class SignalData
-{
-public:
-       SignalData();
-       virtual ~SignalData() {}
-
-public:
-       double samplerate() const;
-       void set_samplerate(double samplerate);
-
-       double get_start_time() const;
-
-       virtual void clear() = 0;
-
-       virtual uint64_t get_max_sample_count() const = 0;
-
-protected:
-       double start_time_;
-       double samplerate_;
-};
-
-} // namespace data
-} // namespace pv
-
-#endif // PULSEVIEW_PV_DATA_SIGNALDATA_H
diff --git a/pv/data/signaldata.hpp b/pv/data/signaldata.hpp
new file mode 100644 (file)
index 0000000..885f843
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_DATA_SIGNALDATA_H
+#define PULSEVIEW_PV_DATA_SIGNALDATA_H
+
+#include <stdint.h>
+
+namespace pv {
+namespace data {
+
+class SignalData
+{
+public:
+       SignalData();
+       virtual ~SignalData() {}
+
+public:
+       double samplerate() const;
+       void set_samplerate(double samplerate);
+
+       double get_start_time() const;
+
+       virtual void clear() = 0;
+
+       virtual uint64_t get_max_sample_count() const = 0;
+
+protected:
+       double start_time_;
+       double samplerate_;
+};
+
+} // namespace data
+} // namespace pv
+
+#endif // PULSEVIEW_PV_DATA_SIGNALDATA_H
index 80b9fb3792e09e25a099edd631461ba67f411569..58da4dbd56f48f65077a0be4264cfd8dcc69aa49 100644 (file)
@@ -18,7 +18,7 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include "snapshot.h"
+#include "snapshot.hpp"
 
 #include <assert.h>
 #include <stdlib.h>
diff --git a/pv/data/snapshot.h b/pv/data/snapshot.h
deleted file mode 100644 (file)
index 29d0eed..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_DATA_SNAPSHOT_H
-#define PULSEVIEW_PV_DATA_SNAPSHOT_H
-
-#include <thread>
-#include <mutex>
-#include <vector>
-
-namespace pv {
-namespace data {
-
-class Snapshot
-{
-public:
-       Snapshot(unsigned int unit_size);
-
-       virtual ~Snapshot();
-
-       uint64_t get_sample_count() const;
-
-       unsigned int unit_size() const;
-
-       /**
-        * @brief Increase the capacity of the snapshot.
-        *
-        * Increasing the capacity allows samples to be appended without needing
-        * to reallocate memory.
-        *
-        * For the best efficiency @c set_capacity() should be called once before
-        * @c append_data() is called to set up the snapshot with the expected number
-        * of samples that will be appended in total.
-        *
-        * @note The capacity will automatically be increased when @c append_data()
-        * is called if there is not enough capacity in the buffer to store the samples.
-        *
-        * @param[in] new_capacity The new capacity of the snapshot. If this value is
-        *      smaller or equal than the current capacity then the method has no effect.
-        */
-       void set_capacity(uint64_t new_capacity);
-
-       /**
-        * @brief Get the current capacity of the snapshot.
-        *
-        * The capacity can be increased by calling @c set_capacity().
-        *
-        * @return The current capacity of the snapshot.
-        */
-       uint64_t capacity() const;
-
-protected:
-       void append_data(void *data, uint64_t samples);
-
-protected:
-       mutable std::recursive_mutex mutex_;
-       std::vector<uint8_t> data_;
-       uint64_t sample_count_;
-       uint64_t capacity_;
-       unsigned int unit_size_;
-};
-
-} // namespace data
-} // namespace pv
-
-#endif // PULSEVIEW_PV_DATA_SNAPSHOT_H
diff --git a/pv/data/snapshot.hpp b/pv/data/snapshot.hpp
new file mode 100644 (file)
index 0000000..29d0eed
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_DATA_SNAPSHOT_H
+#define PULSEVIEW_PV_DATA_SNAPSHOT_H
+
+#include <thread>
+#include <mutex>
+#include <vector>
+
+namespace pv {
+namespace data {
+
+class Snapshot
+{
+public:
+       Snapshot(unsigned int unit_size);
+
+       virtual ~Snapshot();
+
+       uint64_t get_sample_count() const;
+
+       unsigned int unit_size() const;
+
+       /**
+        * @brief Increase the capacity of the snapshot.
+        *
+        * Increasing the capacity allows samples to be appended without needing
+        * to reallocate memory.
+        *
+        * For the best efficiency @c set_capacity() should be called once before
+        * @c append_data() is called to set up the snapshot with the expected number
+        * of samples that will be appended in total.
+        *
+        * @note The capacity will automatically be increased when @c append_data()
+        * is called if there is not enough capacity in the buffer to store the samples.
+        *
+        * @param[in] new_capacity The new capacity of the snapshot. If this value is
+        *      smaller or equal than the current capacity then the method has no effect.
+        */
+       void set_capacity(uint64_t new_capacity);
+
+       /**
+        * @brief Get the current capacity of the snapshot.
+        *
+        * The capacity can be increased by calling @c set_capacity().
+        *
+        * @return The current capacity of the snapshot.
+        */
+       uint64_t capacity() const;
+
+protected:
+       void append_data(void *data, uint64_t samples);
+
+protected:
+       mutable std::recursive_mutex mutex_;
+       std::vector<uint8_t> data_;
+       uint64_t sample_count_;
+       uint64_t capacity_;
+       unsigned int unit_size_;
+};
+
+} // namespace data
+} // namespace pv
+
+#endif // PULSEVIEW_PV_DATA_SNAPSHOT_H
index 2f446c45115a8b0ce0d94d5c0b9f344a2e962782..7a016d1bd985090c9b89a2db880253e3cbce73f7 100644 (file)
@@ -18,8 +18,8 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include "devicemanager.h"
-#include "sigsession.h"
+#include "devicemanager.hpp"
+#include "sigsession.hpp"
 
 #include <cassert>
 #include <stdexcept>
diff --git a/pv/devicemanager.h b/pv/devicemanager.h
deleted file mode 100644 (file)
index 823cb2b..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_DEVICEMANAGER_H
-#define PULSEVIEW_PV_DEVICEMANAGER_H
-
-#include <list>
-#include <map>
-#include <memory>
-#include <string>
-
-namespace Glib {
-       class VariantBase;
-}
-
-namespace sigrok {
-       class ConfigKey;
-       class Context;
-       class Driver;
-       class Device;
-       class HardwareDevice;
-}
-
-namespace pv {
-
-class SigSession;
-
-class DeviceManager
-{
-public:
-       DeviceManager(std::shared_ptr<sigrok::Context> context);
-
-       ~DeviceManager();
-
-       std::shared_ptr<sigrok::Context> context();
-
-       const std::list< std::shared_ptr<sigrok::HardwareDevice> >&
-               devices() const;
-
-       std::list< std::shared_ptr<sigrok::HardwareDevice> > driver_scan(
-               std::shared_ptr<sigrok::Driver> driver,
-               std::map<const sigrok::ConfigKey *, Glib::VariantBase> drvopts);
-
-       const std::map<std::string, std::string> get_device_info(
-               const std::shared_ptr<sigrok::Device> device);
-
-       const std::shared_ptr<sigrok::HardwareDevice> find_device_from_info(
-               const std::map<std::string, std::string> search_info);
-
-       const std::string build_display_name(std::shared_ptr<sigrok::Device> device);
-
-       const std::string get_display_name(std::shared_ptr<sigrok::Device> dev);
-
-       void update_display_name(std::shared_ptr<sigrok::Device> dev);
-
-private:
-       bool compare_devices(std::shared_ptr<sigrok::Device> a,
-               std::shared_ptr<sigrok::Device> b);
-
-protected:
-       std::shared_ptr<sigrok::Context> context_;
-       std::list< std::shared_ptr<sigrok::HardwareDevice> > devices_;
-       std::map< std::shared_ptr<sigrok::Device>, std::string > display_names_;
-};
-
-} // namespace pv
-
-#endif // PULSEVIEW_PV_DEVICEMANAGER_H
diff --git a/pv/devicemanager.hpp b/pv/devicemanager.hpp
new file mode 100644 (file)
index 0000000..823cb2b
--- /dev/null
@@ -0,0 +1,85 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_DEVICEMANAGER_H
+#define PULSEVIEW_PV_DEVICEMANAGER_H
+
+#include <list>
+#include <map>
+#include <memory>
+#include <string>
+
+namespace Glib {
+       class VariantBase;
+}
+
+namespace sigrok {
+       class ConfigKey;
+       class Context;
+       class Driver;
+       class Device;
+       class HardwareDevice;
+}
+
+namespace pv {
+
+class SigSession;
+
+class DeviceManager
+{
+public:
+       DeviceManager(std::shared_ptr<sigrok::Context> context);
+
+       ~DeviceManager();
+
+       std::shared_ptr<sigrok::Context> context();
+
+       const std::list< std::shared_ptr<sigrok::HardwareDevice> >&
+               devices() const;
+
+       std::list< std::shared_ptr<sigrok::HardwareDevice> > driver_scan(
+               std::shared_ptr<sigrok::Driver> driver,
+               std::map<const sigrok::ConfigKey *, Glib::VariantBase> drvopts);
+
+       const std::map<std::string, std::string> get_device_info(
+               const std::shared_ptr<sigrok::Device> device);
+
+       const std::shared_ptr<sigrok::HardwareDevice> find_device_from_info(
+               const std::map<std::string, std::string> search_info);
+
+       const std::string build_display_name(std::shared_ptr<sigrok::Device> device);
+
+       const std::string get_display_name(std::shared_ptr<sigrok::Device> dev);
+
+       void update_display_name(std::shared_ptr<sigrok::Device> dev);
+
+private:
+       bool compare_devices(std::shared_ptr<sigrok::Device> a,
+               std::shared_ptr<sigrok::Device> b);
+
+protected:
+       std::shared_ptr<sigrok::Context> context_;
+       std::list< std::shared_ptr<sigrok::HardwareDevice> > devices_;
+       std::map< std::shared_ptr<sigrok::Device>, std::string > display_names_;
+};
+
+} // namespace pv
+
+#endif // PULSEVIEW_PV_DEVICEMANAGER_H
index 05daff8a2698c99b11c1e88c7dcb61292a9a5775..5517beb3225273330c66214e40dc115aba62f110 100644 (file)
@@ -24,7 +24,7 @@
 
 #include <QTextDocument>
 
-#include "about.h"
+#include "about.hpp"
 #include <ui_about.h>
 
 #include <libsigrok/libsigrok.hpp>
diff --git a/pv/dialogs/about.h b/pv/dialogs/about.h
deleted file mode 100644 (file)
index 6656f9c..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_ABOUT_H
-#define PULSEVIEW_PV_ABOUT_H
-
-#include <QDialog>
-
-#include <memory>
-
-class QTextDocument;
-
-namespace sigrok {
-       class Context;
-}
-
-namespace Ui {
-class About;
-}
-
-namespace pv {
-namespace dialogs {
-
-class About : public QDialog
-{
-       Q_OBJECT
-
-public:
-       explicit About(std::shared_ptr<sigrok::Context> context, QWidget *parent = 0);
-       ~About();
-
-private:
-       Ui::About *ui;
-       std::auto_ptr<QTextDocument> supportedDoc;
-};
-
-} // namespace dialogs
-} // namespace pv
-
-#endif // PULSEVIEW_PV_ABOUT_H
diff --git a/pv/dialogs/about.hpp b/pv/dialogs/about.hpp
new file mode 100644 (file)
index 0000000..6656f9c
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_ABOUT_H
+#define PULSEVIEW_PV_ABOUT_H
+
+#include <QDialog>
+
+#include <memory>
+
+class QTextDocument;
+
+namespace sigrok {
+       class Context;
+}
+
+namespace Ui {
+class About;
+}
+
+namespace pv {
+namespace dialogs {
+
+class About : public QDialog
+{
+       Q_OBJECT
+
+public:
+       explicit About(std::shared_ptr<sigrok::Context> context, QWidget *parent = 0);
+       ~About();
+
+private:
+       Ui::About *ui;
+       std::auto_ptr<QTextDocument> supportedDoc;
+};
+
+} // namespace dialogs
+} // namespace pv
+
+#endif // PULSEVIEW_PV_ABOUT_H
index 5535f46d7d87a28797d50b670ab54606b05df11a..2700672af501e9456e4ed95ae391cfbea5dcdc33 100644 (file)
@@ -22,9 +22,9 @@
 
 #include <libsigrok/libsigrok.hpp>
 
-#include "connect.h"
+#include "connect.hpp"
 
-#include "pv/devicemanager.h"
+#include "pv/devicemanager.hpp"
 
 using std::list;
 using std::map;
diff --git a/pv/dialogs/connect.h b/pv/dialogs/connect.h
deleted file mode 100644 (file)
index b46da06..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012-2013 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_CONNECT_H
-#define PULSEVIEW_PV_CONNECT_H
-
-#include <memory>
-
-#include <QComboBox>
-#include <QDialog>
-#include <QDialogButtonBox>
-#include <QFormLayout>
-#include <QLineEdit>
-#include <QListWidget>
-#include <QPushButton>
-#include <QVBoxLayout>
-
-namespace sigrok {
-       class Driver;
-       class HardwareDevice;
-}
-
-Q_DECLARE_METATYPE(std::shared_ptr<sigrok::Driver>);
-Q_DECLARE_METATYPE(std::shared_ptr<sigrok::HardwareDevice>);
-
-namespace pv {
-
-class DeviceManager;
-
-namespace dialogs {
-
-class Connect : public QDialog
-{
-       Q_OBJECT
-
-public:
-       Connect(QWidget *parent, pv::DeviceManager &device_manager);
-
-       std::shared_ptr<sigrok::HardwareDevice> get_selected_device() const;
-
-private:
-       void populate_drivers();
-
-       void unset_connection();
-
-       void set_serial_connection();
-
-private Q_SLOTS:
-       void device_selected(int index);
-
-       void scan_pressed();
-
-private:
-       pv::DeviceManager &device_manager_;
-
-       QVBoxLayout layout_;
-
-       QWidget form_;
-       QFormLayout form_layout_;
-
-       QComboBox drivers_;
-
-       QLineEdit serial_device_;
-
-       QPushButton scan_button_;
-       QListWidget device_list_;
-
-       QDialogButtonBox button_box_;
-};
-
-} // namespace dialogs
-} // namespace pv
-
-#endif // PULSEVIEW_PV_CONNECT_H
diff --git a/pv/dialogs/connect.hpp b/pv/dialogs/connect.hpp
new file mode 100644 (file)
index 0000000..b46da06
--- /dev/null
@@ -0,0 +1,91 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012-2013 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_CONNECT_H
+#define PULSEVIEW_PV_CONNECT_H
+
+#include <memory>
+
+#include <QComboBox>
+#include <QDialog>
+#include <QDialogButtonBox>
+#include <QFormLayout>
+#include <QLineEdit>
+#include <QListWidget>
+#include <QPushButton>
+#include <QVBoxLayout>
+
+namespace sigrok {
+       class Driver;
+       class HardwareDevice;
+}
+
+Q_DECLARE_METATYPE(std::shared_ptr<sigrok::Driver>);
+Q_DECLARE_METATYPE(std::shared_ptr<sigrok::HardwareDevice>);
+
+namespace pv {
+
+class DeviceManager;
+
+namespace dialogs {
+
+class Connect : public QDialog
+{
+       Q_OBJECT
+
+public:
+       Connect(QWidget *parent, pv::DeviceManager &device_manager);
+
+       std::shared_ptr<sigrok::HardwareDevice> get_selected_device() const;
+
+private:
+       void populate_drivers();
+
+       void unset_connection();
+
+       void set_serial_connection();
+
+private Q_SLOTS:
+       void device_selected(int index);
+
+       void scan_pressed();
+
+private:
+       pv::DeviceManager &device_manager_;
+
+       QVBoxLayout layout_;
+
+       QWidget form_;
+       QFormLayout form_layout_;
+
+       QComboBox drivers_;
+
+       QLineEdit serial_device_;
+
+       QPushButton scan_button_;
+       QListWidget device_list_;
+
+       QDialogButtonBox button_box_;
+};
+
+} // namespace dialogs
+} // namespace pv
+
+#endif // PULSEVIEW_PV_CONNECT_H
index 6c2640969bbbf515da10c5f62b641b39cdfd6634..7cc40a75667994405d4ab26a937872ddb4819128 100644 (file)
@@ -22,7 +22,7 @@
 
 #include <QMessageBox>
 
-#include "storeprogress.h"
+#include "storeprogress.hpp"
 
 namespace pv {
 namespace dialogs {
diff --git a/pv/dialogs/storeprogress.h b/pv/dialogs/storeprogress.h
deleted file mode 100644 (file)
index 497099e..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2014 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_DIALOGS_SAVEPROGRESS_H
-#define PULSEVIEW_PV_DIALOGS_SAVEPROGRESS_H
-
-#include <memory>
-#include <set>
-
-#include <QProgressDialog>
-
-#include <pv/storesession.h>
-
-namespace pv {
-
-class SigSession;
-
-namespace dialogs {
-
-class StoreProgress : public QProgressDialog
-{
-       Q_OBJECT
-
-public:
-       StoreProgress(const QString &file_name, const SigSession &session,
-               QWidget *parent = 0);
-
-       virtual ~StoreProgress();
-
-       void run();
-
-private:
-       void show_error();
-
-       void closeEvent(QCloseEvent*);
-
-private Q_SLOTS:
-       void on_progress_updated();
-
-private:
-       pv::StoreSession session_;
-};
-
-} // dialogs
-} // pv
-
-#endif // PULSEVIEW_PV_DIALOGS_SAVEPROGRESS_H
diff --git a/pv/dialogs/storeprogress.hpp b/pv/dialogs/storeprogress.hpp
new file mode 100644 (file)
index 0000000..ca14dfb
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2014 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_DIALOGS_SAVEPROGRESS_H
+#define PULSEVIEW_PV_DIALOGS_SAVEPROGRESS_H
+
+#include <memory>
+#include <set>
+
+#include <QProgressDialog>
+
+#include <pv/storesession.hpp>
+
+namespace pv {
+
+class SigSession;
+
+namespace dialogs {
+
+class StoreProgress : public QProgressDialog
+{
+       Q_OBJECT
+
+public:
+       StoreProgress(const QString &file_name, const SigSession &session,
+               QWidget *parent = 0);
+
+       virtual ~StoreProgress();
+
+       void run();
+
+private:
+       void show_error();
+
+       void closeEvent(QCloseEvent*);
+
+private Q_SLOTS:
+       void on_progress_updated();
+
+private:
+       pv::StoreSession session_;
+};
+
+} // dialogs
+} // pv
+
+#endif // PULSEVIEW_PV_DIALOGS_SAVEPROGRESS_H
index d1418b5921befe0dfdf85b0ac5dedfa07fd6310c..a43b575a989446ede299f6b56662c7369d4c33ce 100644 (file)
 #include <QVBoxLayout>
 #include <QWidget>
 
-#include "mainwindow.h"
-
-#include "devicemanager.h"
-#include "dialogs/about.h"
-#include "dialogs/connect.h"
-#include "dialogs/storeprogress.h"
-#include "toolbars/samplingbar.h"
-#include "view/logicsignal.h"
-#include "view/view.h"
+#include "mainwindow.hpp"
+
+#include "devicemanager.hpp"
+#include "dialogs/about.hpp"
+#include "dialogs/connect.hpp"
+#include "dialogs/storeprogress.hpp"
+#include "toolbars/samplingbar.hpp"
+#include "view/logicsignal.hpp"
+#include "view/view.hpp"
 #ifdef ENABLE_DECODE
-#include "widgets/decodermenu.h"
+#include "widgets/decodermenu.hpp"
 #endif
 
 #include <inttypes.h>
diff --git a/pv/mainwindow.h b/pv/mainwindow.h
deleted file mode 100644 (file)
index 94a6c42..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_MAINWINDOW_H
-#define PULSEVIEW_PV_MAINWINDOW_H
-
-#include <list>
-#include <memory>
-
-#include <QMainWindow>
-
-#include "sigsession.h"
-
-struct srd_decoder;
-
-class QVBoxLayout;
-
-namespace pv {
-
-class DeviceManager;
-
-namespace toolbars {
-class ContextBar;
-class SamplingBar;
-}
-
-namespace view {
-class View;
-}
-
-namespace widgets {
-class DecoderMenu;
-}
-
-class MainWindow : public QMainWindow
-{
-       Q_OBJECT
-
-public:
-       explicit MainWindow(DeviceManager &device_manager,
-               const char *open_file_name = NULL,
-               QWidget *parent = 0);
-
-private:
-       void setup_ui();
-
-       void save_ui_settings();
-
-       void restore_ui_settings();
-
-       void session_error(const QString text, const QString info_text);
-
-       /**
-        * Updates the device list in the sampling bar
-        */
-       void update_device_list();
-
-       void closeEvent(QCloseEvent *event);
-
-private Q_SLOTS:
-       void load_file(QString file_name);
-
-       void show_session_error(
-               const QString text, const QString info_text);
-
-       void on_actionOpen_triggered();
-       void on_actionSaveAs_triggered();
-       void on_actionQuit_triggered();
-
-       void on_actionConnect_triggered();
-
-       void on_actionViewZoomIn_triggered();
-
-       void on_actionViewZoomOut_triggered();
-
-       void on_actionViewZoomFit_triggered();
-
-       void on_actionViewZoomOneToOne_triggered();
-
-       void on_actionViewShowCursors_triggered();
-
-       void on_actionAbout_triggered();
-
-       void add_decoder(srd_decoder *decoder);
-
-       void run_stop();
-
-       void capture_state_changed(int state);
-
-private:
-       /**
-        * Name of the setting used to remember the directory
-        * containing the last file that was opened.
-        */
-       static const char *SettingOpenDirectory;
-
-       /**
-        * Name of the setting used to remember the directory
-        * containing the last file that was saved.
-        */
-       static const char *SettingSaveDirectory;
-
-       DeviceManager &device_manager_;
-
-       SigSession session_;
-
-       pv::view::View *view_;
-
-       QWidget *central_widget_;
-       QVBoxLayout *vertical_layout_;
-
-       toolbars::SamplingBar *sampling_bar_;
-};
-
-} // namespace pv
-
-#endif // PULSEVIEW_PV_MAINWINDOW_H
diff --git a/pv/mainwindow.hpp b/pv/mainwindow.hpp
new file mode 100644 (file)
index 0000000..9a000c2
--- /dev/null
@@ -0,0 +1,134 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_MAINWINDOW_H
+#define PULSEVIEW_PV_MAINWINDOW_H
+
+#include <list>
+#include <memory>
+
+#include <QMainWindow>
+
+#include "sigsession.hpp"
+
+struct srd_decoder;
+
+class QVBoxLayout;
+
+namespace pv {
+
+class DeviceManager;
+
+namespace toolbars {
+class ContextBar;
+class SamplingBar;
+}
+
+namespace view {
+class View;
+}
+
+namespace widgets {
+class DecoderMenu;
+}
+
+class MainWindow : public QMainWindow
+{
+       Q_OBJECT
+
+public:
+       explicit MainWindow(DeviceManager &device_manager,
+               const char *open_file_name = NULL,
+               QWidget *parent = 0);
+
+private:
+       void setup_ui();
+
+       void save_ui_settings();
+
+       void restore_ui_settings();
+
+       void session_error(const QString text, const QString info_text);
+
+       /**
+        * Updates the device list in the sampling bar
+        */
+       void update_device_list();
+
+       void closeEvent(QCloseEvent *event);
+
+private Q_SLOTS:
+       void load_file(QString file_name);
+
+       void show_session_error(
+               const QString text, const QString info_text);
+
+       void on_actionOpen_triggered();
+       void on_actionSaveAs_triggered();
+       void on_actionQuit_triggered();
+
+       void on_actionConnect_triggered();
+
+       void on_actionViewZoomIn_triggered();
+
+       void on_actionViewZoomOut_triggered();
+
+       void on_actionViewZoomFit_triggered();
+
+       void on_actionViewZoomOneToOne_triggered();
+
+       void on_actionViewShowCursors_triggered();
+
+       void on_actionAbout_triggered();
+
+       void add_decoder(srd_decoder *decoder);
+
+       void run_stop();
+
+       void capture_state_changed(int state);
+
+private:
+       /**
+        * Name of the setting used to remember the directory
+        * containing the last file that was opened.
+        */
+       static const char *SettingOpenDirectory;
+
+       /**
+        * Name of the setting used to remember the directory
+        * containing the last file that was saved.
+        */
+       static const char *SettingSaveDirectory;
+
+       DeviceManager &device_manager_;
+
+       SigSession session_;
+
+       pv::view::View *view_;
+
+       QWidget *central_widget_;
+       QVBoxLayout *vertical_layout_;
+
+       toolbars::SamplingBar *sampling_bar_;
+};
+
+} // namespace pv
+
+#endif // PULSEVIEW_PV_MAINWINDOW_H
index beacfb436d8eaf0166522e233ca822316277716c..4598f1239185219a9ce088ae7dccbd4d16ada088 100644 (file)
 #include <QGridLayout>
 #include <QLabel>
 
-#include "channels.h"
+#include "channels.hpp"
 
-#include <pv/prop/binding/deviceoptions.h>
-#include <pv/sigsession.h>
-#include <pv/view/signal.h>
+#include <pv/prop/binding/deviceoptions.hpp>
+#include <pv/sigsession.hpp>
+#include <pv/view/signal.hpp>
 
 #include <libsigrok/libsigrok.hpp>
 
diff --git a/pv/popups/channels.h b/pv/popups/channels.h
deleted file mode 100644 (file)
index 667db93..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_POPUPS_CHANNELS_H
-#define PULSEVIEW_PV_POPUPS_CHANNELS_H
-
-#include <map>
-#include <memory>
-#include <vector>
-
-#include <QFormLayout>
-#include <QHBoxLayout>
-#include <QPushButton>
-#include <QSignalMapper>
-
-#include <pv/widgets/popup.h>
-
-class QCheckBox;
-class QGridLayout;
-
-namespace sigrok {
-       class ChannelGroup;
-}
-
-namespace pv {
-
-class SigSession;
-
-namespace prop {
-namespace binding {
-class DeviceOptions;
-}
-}
-
-namespace view {
-class Signal;
-}
-
-namespace popups {
-
-class Channels : public pv::widgets::Popup
-{
-       Q_OBJECT
-
-public:
-       Channels(SigSession &session_, QWidget *parent);
-
-private:
-       void set_all_channels(bool set);
-
-       void populate_group(std::shared_ptr<sigrok::ChannelGroup> group,
-               const std::vector< std::shared_ptr<pv::view::Signal> > sigs);
-
-       QGridLayout* create_channel_group_grid(
-               const std::vector< std::shared_ptr<pv::view::Signal> > sigs);
-
-private:
-       void showEvent(QShowEvent *e);
-
-private Q_SLOTS:
-       void on_channel_checked(QWidget *widget);
-
-       void enable_all_channels();
-       void disable_all_channels();
-
-private:
-       pv::SigSession &session_;
-
-       QFormLayout layout_;
-
-       bool updating_channels_;
-
-       std::vector< std::shared_ptr<pv::prop::binding::DeviceOptions> >
-                group_bindings_;
-       std::map< QCheckBox*, std::shared_ptr<pv::view::Signal> >
-               check_box_signal_map_;
-
-       QHBoxLayout buttons_bar_;
-       QPushButton enable_all_channels_;
-       QPushButton disable_all_channels_;
-
-       QSignalMapper check_box_mapper_;
-};
-
-} // popups
-} // pv
-
-#endif // PULSEVIEW_PV_POPUPS_CHANNELS_H
diff --git a/pv/popups/channels.hpp b/pv/popups/channels.hpp
new file mode 100644 (file)
index 0000000..e472fdf
--- /dev/null
@@ -0,0 +1,105 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_POPUPS_CHANNELS_H
+#define PULSEVIEW_PV_POPUPS_CHANNELS_H
+
+#include <map>
+#include <memory>
+#include <vector>
+
+#include <QFormLayout>
+#include <QHBoxLayout>
+#include <QPushButton>
+#include <QSignalMapper>
+
+#include <pv/widgets/popup.hpp>
+
+class QCheckBox;
+class QGridLayout;
+
+namespace sigrok {
+       class ChannelGroup;
+}
+
+namespace pv {
+
+class SigSession;
+
+namespace prop {
+namespace binding {
+class DeviceOptions;
+}
+}
+
+namespace view {
+class Signal;
+}
+
+namespace popups {
+
+class Channels : public pv::widgets::Popup
+{
+       Q_OBJECT
+
+public:
+       Channels(SigSession &session_, QWidget *parent);
+
+private:
+       void set_all_channels(bool set);
+
+       void populate_group(std::shared_ptr<sigrok::ChannelGroup> group,
+               const std::vector< std::shared_ptr<pv::view::Signal> > sigs);
+
+       QGridLayout* create_channel_group_grid(
+               const std::vector< std::shared_ptr<pv::view::Signal> > sigs);
+
+private:
+       void showEvent(QShowEvent *e);
+
+private Q_SLOTS:
+       void on_channel_checked(QWidget *widget);
+
+       void enable_all_channels();
+       void disable_all_channels();
+
+private:
+       pv::SigSession &session_;
+
+       QFormLayout layout_;
+
+       bool updating_channels_;
+
+       std::vector< std::shared_ptr<pv::prop::binding::DeviceOptions> >
+                group_bindings_;
+       std::map< QCheckBox*, std::shared_ptr<pv::view::Signal> >
+               check_box_signal_map_;
+
+       QHBoxLayout buttons_bar_;
+       QPushButton enable_all_channels_;
+       QPushButton disable_all_channels_;
+
+       QSignalMapper check_box_mapper_;
+};
+
+} // popups
+} // pv
+
+#endif // PULSEVIEW_PV_POPUPS_CHANNELS_H
index bdc0ab23ed48366353fc14c0b01daaa899d1fbdd..a92b0aea8058f966a33ad68726c8a2474e61e758 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include "deviceoptions.h"
+#include "deviceoptions.hpp"
 
 #include <QFormLayout>
 #include <QListWidget>
 
-#include <pv/prop/property.h>
+#include <pv/prop/property.hpp>
 
 #include <libsigrok/libsigrok.hpp>
 
diff --git a/pv/popups/deviceoptions.h b/pv/popups/deviceoptions.h
deleted file mode 100644 (file)
index 5fb60fc..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_POPUPS_DEVICEOPTIONS_H
-#define PULSEVIEW_PV_POPUPS_DEVICEOPTIONS_H
-
-#include <QGroupBox>
-#include <QVBoxLayout>
-
-#include <pv/prop/binding/deviceoptions.h>
-#include <pv/widgets/popup.h>
-
-namespace sigrok {
-       class Device;
-}
-
-namespace pv {
-namespace popups {
-
-class DeviceOptions : public pv::widgets::Popup
-{
-       Q_OBJECT
-
-public:
-       DeviceOptions(std::shared_ptr<sigrok::Device> device,
-               QWidget *parent);
-
-       pv::prop::binding::DeviceOptions& binding();
-
-private:
-       std::shared_ptr<sigrok::Device> device_;
-
-       QVBoxLayout layout_;
-
-       pv::prop::binding::DeviceOptions binding_;
-};
-
-} // namespace popups
-} // namespace pv
-
-#endif // PULSEVIEW_PV_POPUPS_DEVICEOPTIONS_H
diff --git a/pv/popups/deviceoptions.hpp b/pv/popups/deviceoptions.hpp
new file mode 100644 (file)
index 0000000..d43ab60
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_POPUPS_DEVICEOPTIONS_H
+#define PULSEVIEW_PV_POPUPS_DEVICEOPTIONS_H
+
+#include <QGroupBox>
+#include <QVBoxLayout>
+
+#include <pv/prop/binding/deviceoptions.hpp>
+#include <pv/widgets/popup.hpp>
+
+namespace sigrok {
+       class Device;
+}
+
+namespace pv {
+namespace popups {
+
+class DeviceOptions : public pv::widgets::Popup
+{
+       Q_OBJECT
+
+public:
+       DeviceOptions(std::shared_ptr<sigrok::Device> device,
+               QWidget *parent);
+
+       pv::prop::binding::DeviceOptions& binding();
+
+private:
+       std::shared_ptr<sigrok::Device> device_;
+
+       QVBoxLayout layout_;
+
+       pv::prop::binding::DeviceOptions binding_;
+};
+
+} // namespace popups
+} // namespace pv
+
+#endif // PULSEVIEW_PV_POPUPS_DEVICEOPTIONS_H
index 0bc9854c4c032a34cb8f444b80af68aa4093b6de..062ce6676a34fbb2d6b218b9c358ba9e061f10af 100644 (file)
@@ -22,9 +22,9 @@
 
 #include <QFormLayout>
 
-#include <pv/prop/property.h>
+#include <pv/prop/property.hpp>
 
-#include "binding.h"
+#include "binding.hpp"
 
 using std::shared_ptr;
 
diff --git a/pv/prop/binding/binding.h b/pv/prop/binding/binding.h
deleted file mode 100644 (file)
index 7d216e2..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_PROP_BINDING_BINDING_H
-#define PULSEVIEW_PV_PROP_BINDING_BINDING_H
-
-#include <glibmm-2.4/glibmm.h>
-
-#include <vector>
-#include <memory>
-
-#include <QString>
-
-class QFormLayout;
-class QWidget;
-
-namespace pv {
-namespace prop {
-
-class Property;
-
-namespace binding {
-
-class Binding
-{
-public:
-       const std::vector< std::shared_ptr<Property> >& properties();
-
-       void commit();
-
-       void add_properties_to_form(QFormLayout *layout,
-               bool auto_commit = false) const;
-
-       QWidget* get_property_form(QWidget *parent,
-               bool auto_commit = false) const;
-
-       static QString print_gvariant(Glib::VariantBase gvar);
-
-protected:
-       std::vector< std::shared_ptr<Property> > properties_;
-};
-
-} // binding
-} // prop
-} // pv
-
-#endif // PULSEVIEW_PV_PROP_BINDING_BINDING_H
diff --git a/pv/prop/binding/binding.hpp b/pv/prop/binding/binding.hpp
new file mode 100644 (file)
index 0000000..7d216e2
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_PROP_BINDING_BINDING_H
+#define PULSEVIEW_PV_PROP_BINDING_BINDING_H
+
+#include <glibmm-2.4/glibmm.h>
+
+#include <vector>
+#include <memory>
+
+#include <QString>
+
+class QFormLayout;
+class QWidget;
+
+namespace pv {
+namespace prop {
+
+class Property;
+
+namespace binding {
+
+class Binding
+{
+public:
+       const std::vector< std::shared_ptr<Property> >& properties();
+
+       void commit();
+
+       void add_properties_to_form(QFormLayout *layout,
+               bool auto_commit = false) const;
+
+       QWidget* get_property_form(QWidget *parent,
+               bool auto_commit = false) const;
+
+       static QString print_gvariant(Glib::VariantBase gvar);
+
+protected:
+       std::vector< std::shared_ptr<Property> > properties_;
+};
+
+} // binding
+} // prop
+} // pv
+
+#endif // PULSEVIEW_PV_PROP_BINDING_BINDING_H
index a46f0df1b02b3c8fb4010af1a352643da4cf24bd..d9b4b88d540ebb285b1ea28e352e21003f978705 100644 (file)
 
 #include <libsigrokdecode/libsigrokdecode.h>
 
-#include "decoderoptions.h"
+#include "decoderoptions.hpp"
 
 #include <boost/none_t.hpp>
 
-#include <pv/data/decoderstack.h>
-#include <pv/data/decode/decoder.h>
-#include <pv/prop/double.h>
-#include <pv/prop/enum.h>
-#include <pv/prop/int.h>
-#include <pv/prop/string.h>
+#include <pv/data/decoderstack.hpp>
+#include <pv/data/decode/decoder.hpp>
+#include <pv/prop/double.hpp>
+#include <pv/prop/enum.hpp>
+#include <pv/prop/int.hpp>
+#include <pv/prop/string.hpp>
 
 using boost::none;
 using std::make_pair;
diff --git a/pv/prop/binding/decoderoptions.h b/pv/prop/binding/decoderoptions.h
deleted file mode 100644 (file)
index 7f14d0f..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_PROP_BINDING_DECODEROPTIONS_H
-#define PULSEVIEW_PV_PROP_BINDING_DECODEROPTIONS_H
-
-#include "binding.h"
-
-#include <pv/prop/property.h>
-
-struct srd_decoder_option;
-
-namespace pv {
-
-namespace data {
-class DecoderStack;
-namespace decode {
-class Decoder;
-}
-}
-
-namespace prop {
-namespace binding {
-
-class DecoderOptions : public Binding
-{
-public:
-       DecoderOptions(std::shared_ptr<pv::data::DecoderStack> decoder_stack,
-               std::shared_ptr<pv::data::decode::Decoder> decoder);
-
-private:
-       static std::shared_ptr<Property> bind_enum(const QString &name,
-               const srd_decoder_option *option,
-               Property::Getter getter, Property::Setter setter);
-
-       Glib::VariantBase getter(const char *id);
-
-       void setter(const char *id, Glib::VariantBase value);
-
-private:
-       std::shared_ptr<pv::data::DecoderStack> decoder_stack_;
-       std::shared_ptr<pv::data::decode::Decoder> decoder_;
-};
-
-} // binding
-} // prop
-} // pv
-
-#endif // PULSEVIEW_PV_PROP_BINDING_DECODEROPTIONS_H
diff --git a/pv/prop/binding/decoderoptions.hpp b/pv/prop/binding/decoderoptions.hpp
new file mode 100644 (file)
index 0000000..680bc42
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_PROP_BINDING_DECODEROPTIONS_H
+#define PULSEVIEW_PV_PROP_BINDING_DECODEROPTIONS_H
+
+#include "binding.hpp"
+
+#include <pv/prop/property.hpp>
+
+struct srd_decoder_option;
+
+namespace pv {
+
+namespace data {
+class DecoderStack;
+namespace decode {
+class Decoder;
+}
+}
+
+namespace prop {
+namespace binding {
+
+class DecoderOptions : public Binding
+{
+public:
+       DecoderOptions(std::shared_ptr<pv::data::DecoderStack> decoder_stack,
+               std::shared_ptr<pv::data::decode::Decoder> decoder);
+
+private:
+       static std::shared_ptr<Property> bind_enum(const QString &name,
+               const srd_decoder_option *option,
+               Property::Getter getter, Property::Setter setter);
+
+       Glib::VariantBase getter(const char *id);
+
+       void setter(const char *id, Glib::VariantBase value);
+
+private:
+       std::shared_ptr<pv::data::DecoderStack> decoder_stack_;
+       std::shared_ptr<pv::data::decode::Decoder> decoder_;
+};
+
+} // binding
+} // prop
+} // pv
+
+#endif // PULSEVIEW_PV_PROP_BINDING_DECODEROPTIONS_H
index e112bb12cc70e15a29233094f769dd0a8e00af8a..68e3237f10af4ef9b9e16878c1ec25d68a61f273 100644 (file)
 
 #include <QDebug>
 
-#include "deviceoptions.h"
+#include "deviceoptions.hpp"
 
-#include <pv/prop/bool.h>
-#include <pv/prop/double.h>
-#include <pv/prop/enum.h>
-#include <pv/prop/int.h>
+#include <pv/prop/bool.hpp>
+#include <pv/prop/double.hpp>
+#include <pv/prop/enum.hpp>
+#include <pv/prop/int.hpp>
 
 #include <libsigrok/libsigrok.hpp>
 
diff --git a/pv/prop/binding/deviceoptions.h b/pv/prop/binding/deviceoptions.h
deleted file mode 100644 (file)
index 0ca55e0..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_PROP_BINDING_DEVICEOPTIONS_H
-#define PULSEVIEW_PV_PROP_BINDING_DEVICEOPTIONS_H
-
-#include <boost/optional.hpp>
-
-#include <QObject>
-#include <QString>
-
-#include "binding.h"
-
-#include <pv/prop/property.h>
-
-namespace sigrok {
-       class Configurable;
-}
-
-namespace pv {
-
-namespace prop {
-namespace binding {
-
-class DeviceOptions : public QObject, public Binding
-{
-       Q_OBJECT
-
-public:
-       DeviceOptions(std::shared_ptr<sigrok::Configurable> configurable);
-
-Q_SIGNALS:
-       void config_changed();
-
-private:
-       void bind_bool(const QString &name,
-               Property::Getter getter, Property::Setter setter);
-       void bind_enum(const QString &name, Glib::VariantContainerBase gvar_list,
-               Property::Getter getter, Property::Setter setter,
-               std::function<QString (Glib::VariantBase)> printer = print_gvariant);
-       void bind_int(const QString &name, QString suffix,
-               boost::optional< std::pair<int64_t, int64_t> > range,
-               Property::Getter getter, Property::Setter setter);
-
-       static QString print_timebase(Glib::VariantBase gvar);
-       static QString print_vdiv(Glib::VariantBase gvar);
-       static QString print_voltage_threshold(Glib::VariantBase gvar);
-
-protected:
-       std::shared_ptr<sigrok::Configurable> configurable_;
-};
-
-} // binding
-} // prop
-} // pv
-
-#endif // PULSEVIEW_PV_PROP_BINDING_DEVICEOPTIONS_H
diff --git a/pv/prop/binding/deviceoptions.hpp b/pv/prop/binding/deviceoptions.hpp
new file mode 100644 (file)
index 0000000..d027ccc
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_PROP_BINDING_DEVICEOPTIONS_H
+#define PULSEVIEW_PV_PROP_BINDING_DEVICEOPTIONS_H
+
+#include <boost/optional.hpp>
+
+#include <QObject>
+#include <QString>
+
+#include "binding.hpp"
+
+#include <pv/prop/property.hpp>
+
+namespace sigrok {
+       class Configurable;
+}
+
+namespace pv {
+
+namespace prop {
+namespace binding {
+
+class DeviceOptions : public QObject, public Binding
+{
+       Q_OBJECT
+
+public:
+       DeviceOptions(std::shared_ptr<sigrok::Configurable> configurable);
+
+Q_SIGNALS:
+       void config_changed();
+
+private:
+       void bind_bool(const QString &name,
+               Property::Getter getter, Property::Setter setter);
+       void bind_enum(const QString &name, Glib::VariantContainerBase gvar_list,
+               Property::Getter getter, Property::Setter setter,
+               std::function<QString (Glib::VariantBase)> printer = print_gvariant);
+       void bind_int(const QString &name, QString suffix,
+               boost::optional< std::pair<int64_t, int64_t> > range,
+               Property::Getter getter, Property::Setter setter);
+
+       static QString print_timebase(Glib::VariantBase gvar);
+       static QString print_vdiv(Glib::VariantBase gvar);
+       static QString print_voltage_threshold(Glib::VariantBase gvar);
+
+protected:
+       std::shared_ptr<sigrok::Configurable> configurable_;
+};
+
+} // binding
+} // prop
+} // pv
+
+#endif // PULSEVIEW_PV_PROP_BINDING_DEVICEOPTIONS_H
index c057d61ebcebc401ffe70122c751b8f164ca267e..e3e0ebd50e86151408b14fe7420167a2e2db054a 100644 (file)
@@ -22,7 +22,7 @@
 
 #include <QCheckBox>
 
-#include "bool.h"
+#include "bool.hpp"
 
 namespace pv {
 namespace prop {
diff --git a/pv/prop/bool.h b/pv/prop/bool.h
deleted file mode 100644 (file)
index d7f8877..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_PROP_BOOL_H
-#define PULSEVIEW_PV_PROP_BOOL_H
-
-#include "property.h"
-
-class QCheckBox;
-
-namespace pv {
-namespace prop {
-
-class Bool : public Property
-{
-       Q_OBJECT;
-
-public:
-       Bool(QString name, Getter getter, Setter setter);
-
-       virtual ~Bool();
-
-       QWidget* get_widget(QWidget *parent, bool auto_commit);
-       bool labeled_widget() const;
-
-       void commit();
-
-private Q_SLOTS:
-       void on_state_changed(int);
-
-private:
-       QCheckBox *check_box_;
-};
-
-} // prop
-} // pv
-
-#endif // PULSEVIEW_PV_PROP_BOOL_H
diff --git a/pv/prop/bool.hpp b/pv/prop/bool.hpp
new file mode 100644 (file)
index 0000000..965efc1
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_PROP_BOOL_H
+#define PULSEVIEW_PV_PROP_BOOL_H
+
+#include "property.hpp"
+
+class QCheckBox;
+
+namespace pv {
+namespace prop {
+
+class Bool : public Property
+{
+       Q_OBJECT;
+
+public:
+       Bool(QString name, Getter getter, Setter setter);
+
+       virtual ~Bool();
+
+       QWidget* get_widget(QWidget *parent, bool auto_commit);
+       bool labeled_widget() const;
+
+       void commit();
+
+private Q_SLOTS:
+       void on_state_changed(int);
+
+private:
+       QCheckBox *check_box_;
+};
+
+} // prop
+} // pv
+
+#endif // PULSEVIEW_PV_PROP_BOOL_H
index d8a7a2920c5b1f0644ea5d8f33606aebf7286b7a..d059755843112be79d6e014672f05e0e31feb806 100644 (file)
@@ -22,7 +22,7 @@
 
 #include <QDoubleSpinBox>
 
-#include "double.h"
+#include "double.hpp"
 
 using boost::optional;
 using std::pair;
diff --git a/pv/prop/double.h b/pv/prop/double.h
deleted file mode 100644 (file)
index dc4c6ec..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_PROP_DOUBLE_H
-#define PULSEVIEW_PV_PROP_DOUBLE_H
-
-#include <utility>
-
-#include <boost/optional.hpp>
-
-#include "property.h"
-
-class QDoubleSpinBox;
-
-namespace pv {
-namespace prop {
-
-class Double : public Property
-{
-       Q_OBJECT
-
-public:
-       Double(QString name, int decimals, QString suffix,
-               boost::optional< std::pair<double, double> > range,
-               boost::optional<double> step,
-               Getter getter,
-               Setter setter);
-
-       virtual ~Double();
-
-       QWidget* get_widget(QWidget *parent, bool auto_commit);
-
-       void commit();
-
-private Q_SLOTS:
-       void on_value_changed(double);
-
-private:
-       const int decimals_;
-       const QString suffix_;
-       const boost::optional< std::pair<double, double> > range_;
-       const boost::optional<double> step_;
-
-       QDoubleSpinBox *spin_box_;
-};
-
-} // prop
-} // pv
-
-#endif // PULSEVIEW_PV_PROP_DOUBLE_H
diff --git a/pv/prop/double.hpp b/pv/prop/double.hpp
new file mode 100644 (file)
index 0000000..89b74cc
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_PROP_DOUBLE_H
+#define PULSEVIEW_PV_PROP_DOUBLE_H
+
+#include <utility>
+
+#include <boost/optional.hpp>
+
+#include "property.hpp"
+
+class QDoubleSpinBox;
+
+namespace pv {
+namespace prop {
+
+class Double : public Property
+{
+       Q_OBJECT
+
+public:
+       Double(QString name, int decimals, QString suffix,
+               boost::optional< std::pair<double, double> > range,
+               boost::optional<double> step,
+               Getter getter,
+               Setter setter);
+
+       virtual ~Double();
+
+       QWidget* get_widget(QWidget *parent, bool auto_commit);
+
+       void commit();
+
+private Q_SLOTS:
+       void on_value_changed(double);
+
+private:
+       const int decimals_;
+       const QString suffix_;
+       const boost::optional< std::pair<double, double> > range_;
+       const boost::optional<double> step_;
+
+       QDoubleSpinBox *spin_box_;
+};
+
+} // prop
+} // pv
+
+#endif // PULSEVIEW_PV_PROP_DOUBLE_H
index 473e3d5f1a3ad36582a3d5c770d4793f607b6124..6717101b9288f51d66f0c294a95def76590a14f0 100644 (file)
@@ -22,7 +22,7 @@
 
 #include <QComboBox>
 
-#include "enum.h"
+#include "enum.hpp"
 
 using std::pair;
 using std::vector;
diff --git a/pv/prop/enum.h b/pv/prop/enum.h
deleted file mode 100644 (file)
index 45454fd..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_PROP_ENUM_H
-#define PULSEVIEW_PV_PROP_ENUM_H
-
-#include <utility>
-#include <vector>
-
-#include "property.h"
-
-#include <QMetaType>
-
-Q_DECLARE_METATYPE(Glib::VariantBase);
-
-class QComboBox;
-
-namespace pv {
-namespace prop {
-
-class Enum : public Property
-{
-       Q_OBJECT;
-
-public:
-       Enum(QString name, std::vector<std::pair<Glib::VariantBase, QString> > values,
-               Getter getter, Setter setter);
-
-       virtual ~Enum();
-
-       QWidget* get_widget(QWidget *parent, bool auto_commit);
-
-       void commit();
-
-private Q_SLOTS:
-       void on_current_item_changed(int);
-
-private:
-       const std::vector< std::pair<Glib::VariantBase, QString> > values_;
-
-       QComboBox *selector_;
-};
-
-} // prop
-} // pv
-
-#endif // PULSEVIEW_PV_PROP_ENUM_H
diff --git a/pv/prop/enum.hpp b/pv/prop/enum.hpp
new file mode 100644 (file)
index 0000000..7b7fcc5
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_PROP_ENUM_H
+#define PULSEVIEW_PV_PROP_ENUM_H
+
+#include <utility>
+#include <vector>
+
+#include "property.hpp"
+
+#include <QMetaType>
+
+Q_DECLARE_METATYPE(Glib::VariantBase);
+
+class QComboBox;
+
+namespace pv {
+namespace prop {
+
+class Enum : public Property
+{
+       Q_OBJECT;
+
+public:
+       Enum(QString name, std::vector<std::pair<Glib::VariantBase, QString> > values,
+               Getter getter, Setter setter);
+
+       virtual ~Enum();
+
+       QWidget* get_widget(QWidget *parent, bool auto_commit);
+
+       void commit();
+
+private Q_SLOTS:
+       void on_current_item_changed(int);
+
+private:
+       const std::vector< std::pair<Glib::VariantBase, QString> > values_;
+
+       QComboBox *selector_;
+};
+
+} // prop
+} // pv
+
+#endif // PULSEVIEW_PV_PROP_ENUM_H
index ef962e5a7ca5ae09ef9846261ca0fce46fb885b1..0edba420b2e8538819d6f4b1d55c9c2a75ef26ba 100644 (file)
@@ -23,7 +23,7 @@
 
 #include <QSpinBox>
 
-#include "int.h"
+#include "int.hpp"
 
 using boost::optional;
 using std::max;
diff --git a/pv/prop/int.h b/pv/prop/int.h
deleted file mode 100644 (file)
index 5779b37..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_PROP_INT_H
-#define PULSEVIEW_PV_PROP_INT_H
-
-#include <utility>
-
-#include <boost/optional.hpp>
-
-#include "property.h"
-
-class QSpinBox;
-
-namespace pv {
-namespace prop {
-
-class Int : public Property
-{
-       Q_OBJECT;
-
-public:
-       Int(QString name, QString suffix,
-               boost::optional< std::pair<int64_t, int64_t> > range,
-               Getter getter, Setter setter);
-
-       virtual ~Int();
-
-       QWidget* get_widget(QWidget *parent, bool auto_commit);
-
-       void commit();
-
-private Q_SLOTS:
-       void on_value_changed(int);
-
-private:
-       const QString suffix_;
-       const boost::optional< std::pair<int64_t, int64_t> > range_;
-
-       Glib::VariantBase value_;
-       QSpinBox *spin_box_;
-};
-
-} // prop
-} // pv
-
-#endif // PULSEVIEW_PV_PROP_INT_H
diff --git a/pv/prop/int.hpp b/pv/prop/int.hpp
new file mode 100644 (file)
index 0000000..a1c529f
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_PROP_INT_H
+#define PULSEVIEW_PV_PROP_INT_H
+
+#include <utility>
+
+#include <boost/optional.hpp>
+
+#include "property.hpp"
+
+class QSpinBox;
+
+namespace pv {
+namespace prop {
+
+class Int : public Property
+{
+       Q_OBJECT;
+
+public:
+       Int(QString name, QString suffix,
+               boost::optional< std::pair<int64_t, int64_t> > range,
+               Getter getter, Setter setter);
+
+       virtual ~Int();
+
+       QWidget* get_widget(QWidget *parent, bool auto_commit);
+
+       void commit();
+
+private Q_SLOTS:
+       void on_value_changed(int);
+
+private:
+       const QString suffix_;
+       const boost::optional< std::pair<int64_t, int64_t> > range_;
+
+       Glib::VariantBase value_;
+       QSpinBox *spin_box_;
+};
+
+} // prop
+} // pv
+
+#endif // PULSEVIEW_PV_PROP_INT_H
index 26740ba0e98f7761d845eb0e7bbab2563ca5f2ee..c513d51e6f41ae036a9454ed68eca62aa0c56420 100644 (file)
@@ -18,7 +18,7 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include "property.h"
+#include "property.hpp"
 
 namespace pv {
 namespace prop {
diff --git a/pv/prop/property.h b/pv/prop/property.h
deleted file mode 100644 (file)
index dd6d25b..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_PROP_PROPERTY_H
-#define PULSEVIEW_PV_PROP_PROPERTY_H
-
-#include <glibmm-2.4/glibmm.h>
-
-#include <functional>
-#include <QString>
-#include <QWidget>
-
-class QWidget;
-
-namespace pv {
-namespace prop {
-
-class Property : public QObject
-{
-       Q_OBJECT;
-
-public:
-       typedef std::function<Glib::VariantBase ()> Getter;
-       typedef std::function<void (Glib::VariantBase)> Setter;
-
-protected:
-       Property(QString name, Getter getter, Setter setter);
-
-public:
-       const QString& name() const;
-
-       virtual QWidget* get_widget(QWidget *parent,
-               bool auto_commit = false) = 0;
-       virtual bool labeled_widget() const;
-
-       virtual void commit() = 0;
-
-protected:
-       const Getter getter_;
-       const Setter setter_;
-
-private:
-       QString name_;
-};
-
-} // prop
-} // pv
-
-#endif // PULSEVIEW_PV_PROP_PROPERTY_H
diff --git a/pv/prop/property.hpp b/pv/prop/property.hpp
new file mode 100644 (file)
index 0000000..dd6d25b
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_PROP_PROPERTY_H
+#define PULSEVIEW_PV_PROP_PROPERTY_H
+
+#include <glibmm-2.4/glibmm.h>
+
+#include <functional>
+#include <QString>
+#include <QWidget>
+
+class QWidget;
+
+namespace pv {
+namespace prop {
+
+class Property : public QObject
+{
+       Q_OBJECT;
+
+public:
+       typedef std::function<Glib::VariantBase ()> Getter;
+       typedef std::function<void (Glib::VariantBase)> Setter;
+
+protected:
+       Property(QString name, Getter getter, Setter setter);
+
+public:
+       const QString& name() const;
+
+       virtual QWidget* get_widget(QWidget *parent,
+               bool auto_commit = false) = 0;
+       virtual bool labeled_widget() const;
+
+       virtual void commit() = 0;
+
+protected:
+       const Getter getter_;
+       const Setter setter_;
+
+private:
+       QString name_;
+};
+
+} // prop
+} // pv
+
+#endif // PULSEVIEW_PV_PROP_PROPERTY_H
index ebad62ba03510f8b8213c272b17d6cf462b77c51..b8ecf738630bdea67568e9781357211145215db8 100644 (file)
@@ -23,7 +23,7 @@
 #include <QLineEdit>
 #include <QSpinBox>
 
-#include "string.h"
+#include "string.hpp"
 
 using std::string;
 
diff --git a/pv/prop/string.h b/pv/prop/string.h
deleted file mode 100644 (file)
index 793a23c..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_PROP_STRING_H
-#define PULSEVIEW_PV_PROP_STRING_H
-
-#include "property.h"
-
-class QLineEdit;
-
-namespace pv {
-namespace prop {
-
-class String : public Property
-{
-       Q_OBJECT;
-
-public:
-       String(QString name, Getter getter, Setter setter);
-
-       QWidget* get_widget(QWidget *parent, bool auto_commit);
-
-       void commit();
-
-private Q_SLOTS:
-       void on_text_edited(const QString&);
-
-private:
-       QLineEdit *line_edit_;
-};
-
-} // prop
-} // pv
-
-#endif // PULSEVIEW_PV_PROP_STRING_H
diff --git a/pv/prop/string.hpp b/pv/prop/string.hpp
new file mode 100644 (file)
index 0000000..db57f7c
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_PROP_STRING_H
+#define PULSEVIEW_PV_PROP_STRING_H
+
+#include "property.hpp"
+
+class QLineEdit;
+
+namespace pv {
+namespace prop {
+
+class String : public Property
+{
+       Q_OBJECT;
+
+public:
+       String(QString name, Getter getter, Setter setter);
+
+       QWidget* get_widget(QWidget *parent, bool auto_commit);
+
+       void commit();
+
+private Q_SLOTS:
+       void on_text_edited(const QString&);
+
+private:
+       QLineEdit *line_edit_;
+};
+
+} // prop
+} // pv
+
+#endif // PULSEVIEW_PV_PROP_STRING_H
index a2eba967a0793ede0c2d104d50ed4bad54ab6c2e..f3eb19460593141de7b33740bb94eb2d0e69f4a3 100644 (file)
 #include <libsigrokdecode/libsigrokdecode.h>
 #endif
 
-#include "sigsession.h"
+#include "sigsession.hpp"
 
-#include "devicemanager.h"
+#include "devicemanager.hpp"
 
-#include "data/analog.h"
-#include "data/analogsnapshot.h"
-#include "data/decoderstack.h"
-#include "data/logic.h"
-#include "data/logicsnapshot.h"
-#include "data/decode/decoder.h"
+#include "data/analog.hpp"
+#include "data/analogsnapshot.hpp"
+#include "data/decoderstack.hpp"
+#include "data/logic.hpp"
+#include "data/logicsnapshot.hpp"
+#include "data/decode/decoder.hpp"
 
-#include "view/analogsignal.h"
-#include "view/decodetrace.h"
-#include "view/logicsignal.h"
+#include "view/analogsignal.hpp"
+#include "view/decodetrace.hpp"
+#include "view/logicsignal.hpp"
 
 #include <cassert>
 #include <mutex>
diff --git a/pv/sigsession.h b/pv/sigsession.h
deleted file mode 100644 (file)
index 513177b..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012-14 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_SIGSESSION_H
-#define PULSEVIEW_PV_SIGSESSION_H
-
-#include <map>
-#include <memory>
-#include <mutex>
-#include <set>
-#include <string>
-#include <thread>
-#include <vector>
-
-#include <boost/thread.hpp>
-
-#include <QObject>
-#include <QString>
-
-struct srd_decoder;
-struct srd_channel;
-
-namespace sigrok {
-       class Analog;
-       class Channel;
-       class Device;
-       class Logic;
-       class Meta;
-       class Packet;
-       class Session;
-}
-
-namespace pv {
-
-class DeviceManager;
-
-namespace data {
-class Analog;
-class AnalogSnapshot;
-class Logic;
-class LogicSnapshot;
-class SignalData;
-}
-
-namespace view {
-class DecodeTrace;
-class LogicSignal;
-class Signal;
-}
-
-class SigSession : public QObject
-{
-       Q_OBJECT
-
-public:
-       enum capture_state {
-               Stopped,
-               AwaitingTrigger,
-               Running
-       };
-
-public:
-       SigSession(DeviceManager &device_manager);
-
-       ~SigSession();
-
-       DeviceManager& device_manager();
-
-       const DeviceManager& device_manager() const;
-
-       const std::shared_ptr<sigrok::Session>& session() const;
-
-       std::shared_ptr<sigrok::Device> device() const;
-
-       /**
-        * Sets device instance that will be used in the next capture session.
-        */
-       void set_device(std::shared_ptr<sigrok::Device> device);
-
-       void set_file(const std::string &name);
-
-       void set_default_device();
-
-       capture_state get_capture_state() const;
-
-       void start_capture(std::function<void (const QString)> error_handler);
-
-       void stop_capture();
-
-       std::set< std::shared_ptr<data::SignalData> > get_data() const;
-
-       boost::shared_mutex& signals_mutex() const;
-
-       const std::vector< std::shared_ptr<view::Signal> >& signals() const;
-
-#ifdef ENABLE_DECODE
-       bool add_decoder(srd_decoder *const dec);
-
-       std::vector< std::shared_ptr<view::DecodeTrace> >
-               get_decode_signals() const;
-
-       void remove_decode_signal(view::DecodeTrace *signal);
-#endif
-
-private:
-       void set_capture_state(capture_state state);
-
-       void update_signals(std::shared_ptr<sigrok::Device> device);
-
-       std::shared_ptr<view::Signal> signal_from_channel(
-               std::shared_ptr<sigrok::Channel> channel) const;
-
-       void read_sample_rate(std::shared_ptr<sigrok::Device>);
-
-private:
-       void sample_thread_proc(std::shared_ptr<sigrok::Device> device,
-               std::function<void (const QString)> error_handler);
-
-       void feed_in_header(std::shared_ptr<sigrok::Device> device);
-
-       void feed_in_meta(std::shared_ptr<sigrok::Device> device,
-               std::shared_ptr<sigrok::Meta> meta);
-
-       void feed_in_frame_begin();
-
-       void feed_in_logic(std::shared_ptr<sigrok::Logic> logic);
-
-       void feed_in_analog(std::shared_ptr<sigrok::Analog> analog);
-
-       void data_feed_in(std::shared_ptr<sigrok::Device> device,
-               std::shared_ptr<sigrok::Packet> packet);
-
-private:
-       DeviceManager &device_manager_;
-       std::shared_ptr<sigrok::Session> session_;
-
-       /**
-        * The device instance that will be used in the next capture session.
-        */
-       std::shared_ptr<sigrok::Device> device_;
-
-       std::vector< std::shared_ptr<view::DecodeTrace> > decode_traces_;
-
-       mutable std::mutex sampling_mutex_;
-       capture_state capture_state_;
-
-       mutable boost::shared_mutex signals_mutex_;
-       std::vector< std::shared_ptr<view::Signal> > signals_;
-
-       mutable std::mutex data_mutex_;
-       std::shared_ptr<data::Logic> logic_data_;
-       std::shared_ptr<data::LogicSnapshot> cur_logic_snapshot_;
-       std::map< std::shared_ptr<sigrok::Channel>, std::shared_ptr<data::AnalogSnapshot> >
-               cur_analog_snapshots_;
-
-       std::thread sampling_thread_;
-
-Q_SIGNALS:
-       void capture_state_changed(int state);
-
-       void signals_changed();
-
-       void frame_began();
-
-       void data_received();
-
-       void frame_ended();
-};
-
-} // namespace pv
-
-#endif // PULSEVIEW_PV_SIGSESSION_H
diff --git a/pv/sigsession.hpp b/pv/sigsession.hpp
new file mode 100644 (file)
index 0000000..513177b
--- /dev/null
@@ -0,0 +1,189 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012-14 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_SIGSESSION_H
+#define PULSEVIEW_PV_SIGSESSION_H
+
+#include <map>
+#include <memory>
+#include <mutex>
+#include <set>
+#include <string>
+#include <thread>
+#include <vector>
+
+#include <boost/thread.hpp>
+
+#include <QObject>
+#include <QString>
+
+struct srd_decoder;
+struct srd_channel;
+
+namespace sigrok {
+       class Analog;
+       class Channel;
+       class Device;
+       class Logic;
+       class Meta;
+       class Packet;
+       class Session;
+}
+
+namespace pv {
+
+class DeviceManager;
+
+namespace data {
+class Analog;
+class AnalogSnapshot;
+class Logic;
+class LogicSnapshot;
+class SignalData;
+}
+
+namespace view {
+class DecodeTrace;
+class LogicSignal;
+class Signal;
+}
+
+class SigSession : public QObject
+{
+       Q_OBJECT
+
+public:
+       enum capture_state {
+               Stopped,
+               AwaitingTrigger,
+               Running
+       };
+
+public:
+       SigSession(DeviceManager &device_manager);
+
+       ~SigSession();
+
+       DeviceManager& device_manager();
+
+       const DeviceManager& device_manager() const;
+
+       const std::shared_ptr<sigrok::Session>& session() const;
+
+       std::shared_ptr<sigrok::Device> device() const;
+
+       /**
+        * Sets device instance that will be used in the next capture session.
+        */
+       void set_device(std::shared_ptr<sigrok::Device> device);
+
+       void set_file(const std::string &name);
+
+       void set_default_device();
+
+       capture_state get_capture_state() const;
+
+       void start_capture(std::function<void (const QString)> error_handler);
+
+       void stop_capture();
+
+       std::set< std::shared_ptr<data::SignalData> > get_data() const;
+
+       boost::shared_mutex& signals_mutex() const;
+
+       const std::vector< std::shared_ptr<view::Signal> >& signals() const;
+
+#ifdef ENABLE_DECODE
+       bool add_decoder(srd_decoder *const dec);
+
+       std::vector< std::shared_ptr<view::DecodeTrace> >
+               get_decode_signals() const;
+
+       void remove_decode_signal(view::DecodeTrace *signal);
+#endif
+
+private:
+       void set_capture_state(capture_state state);
+
+       void update_signals(std::shared_ptr<sigrok::Device> device);
+
+       std::shared_ptr<view::Signal> signal_from_channel(
+               std::shared_ptr<sigrok::Channel> channel) const;
+
+       void read_sample_rate(std::shared_ptr<sigrok::Device>);
+
+private:
+       void sample_thread_proc(std::shared_ptr<sigrok::Device> device,
+               std::function<void (const QString)> error_handler);
+
+       void feed_in_header(std::shared_ptr<sigrok::Device> device);
+
+       void feed_in_meta(std::shared_ptr<sigrok::Device> device,
+               std::shared_ptr<sigrok::Meta> meta);
+
+       void feed_in_frame_begin();
+
+       void feed_in_logic(std::shared_ptr<sigrok::Logic> logic);
+
+       void feed_in_analog(std::shared_ptr<sigrok::Analog> analog);
+
+       void data_feed_in(std::shared_ptr<sigrok::Device> device,
+               std::shared_ptr<sigrok::Packet> packet);
+
+private:
+       DeviceManager &device_manager_;
+       std::shared_ptr<sigrok::Session> session_;
+
+       /**
+        * The device instance that will be used in the next capture session.
+        */
+       std::shared_ptr<sigrok::Device> device_;
+
+       std::vector< std::shared_ptr<view::DecodeTrace> > decode_traces_;
+
+       mutable std::mutex sampling_mutex_;
+       capture_state capture_state_;
+
+       mutable boost::shared_mutex signals_mutex_;
+       std::vector< std::shared_ptr<view::Signal> > signals_;
+
+       mutable std::mutex data_mutex_;
+       std::shared_ptr<data::Logic> logic_data_;
+       std::shared_ptr<data::LogicSnapshot> cur_logic_snapshot_;
+       std::map< std::shared_ptr<sigrok::Channel>, std::shared_ptr<data::AnalogSnapshot> >
+               cur_analog_snapshots_;
+
+       std::thread sampling_thread_;
+
+Q_SIGNALS:
+       void capture_state_changed(int state);
+
+       void signals_changed();
+
+       void frame_began();
+
+       void data_received();
+
+       void frame_ended();
+};
+
+} // namespace pv
+
+#endif // PULSEVIEW_PV_SIGSESSION_H
index dbe04b2c00953897bf63ad5d1f8b2a0480836980..058b46a99ee8d1d5b6434cd33e6da93c91d080fd 100644 (file)
 
 #include <cassert>
 
-#include "storesession.h"
+#include "storesession.hpp"
 
-#include <pv/sigsession.h>
-#include <pv/data/logic.h>
-#include <pv/data/logicsnapshot.h>
-#include <pv/view/signal.h>
+#include <pv/sigsession.hpp>
+#include <pv/data/logic.hpp>
+#include <pv/data/logicsnapshot.hpp>
+#include <pv/view/signal.hpp>
 
 #include <libsigrok/libsigrok.hpp>
 
diff --git a/pv/storesession.h b/pv/storesession.h
deleted file mode 100644 (file)
index 8eaddaa..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2014 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_STORESESSION_H
-#define PULSEVIEW_PV_STORESESSION_H
-
-#include <stdint.h>
-
-#include <atomic>
-#include <mutex>
-#include <string>
-#include <thread>
-
-#include <QObject>
-
-namespace sigrok {
-class Output;
-}
-
-namespace pv {
-
-class SigSession;
-
-namespace data {
-class LogicSnapshot;
-}
-
-class StoreSession : public QObject
-{
-       Q_OBJECT
-
-private:
-       static const size_t BlockSize;
-
-public:
-       StoreSession(const std::string &file_name,
-               const SigSession &session);
-
-       ~StoreSession();
-
-       std::pair<int, int> progress() const;
-
-       const QString& error() const;
-
-       bool start();
-
-       void wait();
-
-       void cancel();
-
-private:
-       void store_proc(std::shared_ptr<pv::data::LogicSnapshot> snapshot);
-
-Q_SIGNALS:
-       void progress_updated();
-
-private:
-       const std::string file_name_;
-       const SigSession &session_;
-
-       std::shared_ptr<sigrok::Output> output_;
-
-       std::thread thread_;
-
-       std::atomic<bool> interrupt_;
-
-       std::atomic<int> units_stored_, unit_count_;
-
-       mutable std::mutex mutex_;
-       QString error_;
-};
-
-} // pv
-
-#endif // PULSEVIEW_PV_STORESESSION_H
diff --git a/pv/storesession.hpp b/pv/storesession.hpp
new file mode 100644 (file)
index 0000000..8eaddaa
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2014 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_STORESESSION_H
+#define PULSEVIEW_PV_STORESESSION_H
+
+#include <stdint.h>
+
+#include <atomic>
+#include <mutex>
+#include <string>
+#include <thread>
+
+#include <QObject>
+
+namespace sigrok {
+class Output;
+}
+
+namespace pv {
+
+class SigSession;
+
+namespace data {
+class LogicSnapshot;
+}
+
+class StoreSession : public QObject
+{
+       Q_OBJECT
+
+private:
+       static const size_t BlockSize;
+
+public:
+       StoreSession(const std::string &file_name,
+               const SigSession &session);
+
+       ~StoreSession();
+
+       std::pair<int, int> progress() const;
+
+       const QString& error() const;
+
+       bool start();
+
+       void wait();
+
+       void cancel();
+
+private:
+       void store_proc(std::shared_ptr<pv::data::LogicSnapshot> snapshot);
+
+Q_SIGNALS:
+       void progress_updated();
+
+private:
+       const std::string file_name_;
+       const SigSession &session_;
+
+       std::shared_ptr<sigrok::Output> output_;
+
+       std::thread thread_;
+
+       std::atomic<bool> interrupt_;
+
+       std::atomic<int> units_stored_, unit_count_;
+
+       mutable std::mutex mutex_;
+       QString error_;
+};
+
+} // pv
+
+#endif // PULSEVIEW_PV_STORESESSION_H
index 13c57d6cbb8f342aa9c1a43f96ef92ec9bf85e1b..2749e0ee73f1d55f4632282a56d2b7af868963b1 100644 (file)
 #include <QHelpEvent>
 #include <QToolTip>
 
-#include "samplingbar.h"
+#include "samplingbar.hpp"
 
-#include <pv/devicemanager.h>
-#include <pv/popups/deviceoptions.h>
-#include <pv/popups/channels.h>
-#include <pv/util.h>
+#include <pv/devicemanager.hpp>
+#include <pv/popups/deviceoptions.hpp>
+#include <pv/popups/channels.hpp>
+#include <pv/util.hpp>
 
 #include <libsigrok/libsigrok.hpp>
 
diff --git a/pv/toolbars/samplingbar.h b/pv/toolbars/samplingbar.h
deleted file mode 100644 (file)
index 2397e2a..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_TOOLBARS_SAMPLINGBAR_H
-#define PULSEVIEW_PV_TOOLBARS_SAMPLINGBAR_H
-
-#include <stdint.h>
-
-#include <list>
-#include <memory>
-
-#include <QComboBox>
-#include <QDoubleSpinBox>
-#include <QToolBar>
-#include <QToolButton>
-
-#include <pv/sigsession.h>
-#include <pv/widgets/popuptoolbutton.h>
-#include <pv/widgets/sweeptimingwidget.h>
-
-namespace sigrok {
-       class Device;
-}
-
-Q_DECLARE_METATYPE(std::shared_ptr<sigrok::Device>)
-
-class QAction;
-
-namespace pv {
-
-class SigSession;
-
-namespace toolbars {
-
-class SamplingBar : public QToolBar
-{
-       Q_OBJECT
-
-private:
-       static const uint64_t MinSampleCount;
-       static const uint64_t MaxSampleCount;
-       static const uint64_t DefaultSampleCount;
-
-public:
-       SamplingBar(SigSession &session, QWidget *parent);
-
-       void set_device_list(
-               const std::list< std::pair<std::shared_ptr<sigrok::Device>, std::string> > &devices,
-               std::shared_ptr<sigrok::Device> selected);
-
-       std::shared_ptr<sigrok::Device> get_selected_device() const;
-
-       void set_capture_state(pv::SigSession::capture_state state);
-
-Q_SIGNALS:
-       void run_stop();
-
-private:
-       void update_sample_rate_selector();
-       void update_sample_rate_selector_value();
-       void update_sample_count_selector();
-       void update_device_config_widgets();
-       void commit_sample_rate();
-       void commit_sample_count();
-
-private Q_SLOTS:
-       void on_device_selected();
-       void on_sample_count_changed();
-       void on_sample_rate_changed();
-       void on_run_stop();
-
-       void on_config_changed();
-
-protected:
-       bool eventFilter(QObject *watched, QEvent *event);
-
-private:
-       SigSession &session_;
-
-       QComboBox device_selector_;
-       bool updating_device_selector_;
-
-       pv::widgets::PopupToolButton configure_button_;
-       QAction *configure_button_action_;
-
-       pv::widgets::PopupToolButton channels_button_;
-
-       pv::widgets::SweepTimingWidget sample_count_;
-       pv::widgets::SweepTimingWidget sample_rate_;
-       bool updating_sample_rate_;
-       bool updating_sample_count_;
-
-       bool sample_count_supported_;
-
-       QIcon icon_red_;
-       QIcon icon_green_;
-       QIcon icon_grey_;
-       QToolButton run_stop_button_;
-};
-
-} // namespace toolbars
-} // namespace pv
-
-#endif // PULSEVIEW_PV_TOOLBARS_SAMPLINGBAR_H
diff --git a/pv/toolbars/samplingbar.hpp b/pv/toolbars/samplingbar.hpp
new file mode 100644 (file)
index 0000000..d027d60
--- /dev/null
@@ -0,0 +1,121 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_TOOLBARS_SAMPLINGBAR_H
+#define PULSEVIEW_PV_TOOLBARS_SAMPLINGBAR_H
+
+#include <stdint.h>
+
+#include <list>
+#include <memory>
+
+#include <QComboBox>
+#include <QDoubleSpinBox>
+#include <QToolBar>
+#include <QToolButton>
+
+#include <pv/sigsession.hpp>
+#include <pv/widgets/popuptoolbutton.hpp>
+#include <pv/widgets/sweeptimingwidget.hpp>
+
+namespace sigrok {
+       class Device;
+}
+
+Q_DECLARE_METATYPE(std::shared_ptr<sigrok::Device>)
+
+class QAction;
+
+namespace pv {
+
+class SigSession;
+
+namespace toolbars {
+
+class SamplingBar : public QToolBar
+{
+       Q_OBJECT
+
+private:
+       static const uint64_t MinSampleCount;
+       static const uint64_t MaxSampleCount;
+       static const uint64_t DefaultSampleCount;
+
+public:
+       SamplingBar(SigSession &session, QWidget *parent);
+
+       void set_device_list(
+               const std::list< std::pair<std::shared_ptr<sigrok::Device>, std::string> > &devices,
+               std::shared_ptr<sigrok::Device> selected);
+
+       std::shared_ptr<sigrok::Device> get_selected_device() const;
+
+       void set_capture_state(pv::SigSession::capture_state state);
+
+Q_SIGNALS:
+       void run_stop();
+
+private:
+       void update_sample_rate_selector();
+       void update_sample_rate_selector_value();
+       void update_sample_count_selector();
+       void update_device_config_widgets();
+       void commit_sample_rate();
+       void commit_sample_count();
+
+private Q_SLOTS:
+       void on_device_selected();
+       void on_sample_count_changed();
+       void on_sample_rate_changed();
+       void on_run_stop();
+
+       void on_config_changed();
+
+protected:
+       bool eventFilter(QObject *watched, QEvent *event);
+
+private:
+       SigSession &session_;
+
+       QComboBox device_selector_;
+       bool updating_device_selector_;
+
+       pv::widgets::PopupToolButton configure_button_;
+       QAction *configure_button_action_;
+
+       pv::widgets::PopupToolButton channels_button_;
+
+       pv::widgets::SweepTimingWidget sample_count_;
+       pv::widgets::SweepTimingWidget sample_rate_;
+       bool updating_sample_rate_;
+       bool updating_sample_count_;
+
+       bool sample_count_supported_;
+
+       QIcon icon_red_;
+       QIcon icon_green_;
+       QIcon icon_grey_;
+       QToolButton run_stop_button_;
+};
+
+} // namespace toolbars
+} // namespace pv
+
+#endif // PULSEVIEW_PV_TOOLBARS_SAMPLINGBAR_H
index a54bdcaf8f957e8df5b462b5594ef2842afae3e5..62f0ee1f67002b33ef2816bef15ccd3679dc4a00 100644 (file)
@@ -18,7 +18,7 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include "util.h"
+#include "util.hpp"
 
 #include <extdef.h>
 
diff --git a/pv/util.h b/pv/util.h
deleted file mode 100644 (file)
index 572bed3..0000000
--- a/pv/util.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_UTIL_H
-#define PULSEVIEW_UTIL_H
-
-#include <math.h>
-
-#include <QString>
-
-namespace pv {
-namespace util {
-
-extern const int FirstSIPrefixPower;
-
-/**
- * Formats a given time value with the specified SI prefix.
- * @param t The time value in seconds to format.
- * @param prefix The number of the prefix, from 0 for 'femto' up to
- *               8 for 'giga'.
- * @parma precision The number of digits after the decimal separator.
- * @param sign Whether or not to add a sign also for positive numbers.
- *
- * @return The formated value.
- */
-QString format_time(
-       double t, unsigned int prefix,
-       unsigned precision = 0, bool sign = true);
-
-/**
- * Formats a given time value with a SI prefix so that the
- * value is between 1 and 999.
- * @param second The time value in seconds to format.
- *
- * @return The formated value.
- */
-QString format_second(double second);
-
-} // namespace util
-} // namespace pv
-
-#endif // PULSEVIEW_UTIL_H
diff --git a/pv/util.hpp b/pv/util.hpp
new file mode 100644 (file)
index 0000000..572bed3
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_UTIL_H
+#define PULSEVIEW_UTIL_H
+
+#include <math.h>
+
+#include <QString>
+
+namespace pv {
+namespace util {
+
+extern const int FirstSIPrefixPower;
+
+/**
+ * Formats a given time value with the specified SI prefix.
+ * @param t The time value in seconds to format.
+ * @param prefix The number of the prefix, from 0 for 'femto' up to
+ *               8 for 'giga'.
+ * @parma precision The number of digits after the decimal separator.
+ * @param sign Whether or not to add a sign also for positive numbers.
+ *
+ * @return The formated value.
+ */
+QString format_time(
+       double t, unsigned int prefix,
+       unsigned precision = 0, bool sign = true);
+
+/**
+ * Formats a given time value with a SI prefix so that the
+ * value is between 1 and 999.
+ * @param second The time value in seconds to format.
+ *
+ * @return The formated value.
+ */
+QString format_second(double second);
+
+} // namespace util
+} // namespace pv
+
+#endif // PULSEVIEW_UTIL_H
index 3509a040d201c84c896df69db0d6208aeb8f30bd..abbb94c57f1d94225db6ae7c53fb9c611899db68 100644 (file)
 #include <cassert>
 #include <cmath>
 
-#include "analogsignal.h"
-#include "pv/data/analog.h"
-#include "pv/data/analogsnapshot.h"
-#include "pv/view/view.h"
+#include "analogsignal.hpp"
+#include "pv/data/analog.hpp"
+#include "pv/data/analogsnapshot.hpp"
+#include "pv/view/view.hpp"
 
 #include <libsigrok/libsigrok.hpp>
 
diff --git a/pv/view/analogsignal.h b/pv/view/analogsignal.h
deleted file mode 100644 (file)
index 326e6fb..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_VIEW_ANALOGSIGNAL_H
-#define PULSEVIEW_PV_VIEW_ANALOGSIGNAL_H
-
-#include "signal.h"
-
-#include <memory>
-
-namespace pv {
-
-namespace data {
-class Analog;
-class AnalogSnapshot;
-}
-
-namespace view {
-
-class AnalogSignal : public Signal
-{
-private:
-       static const int NominalHeight;
-       static const QColor SignalColours[4];
-
-       static const float EnvelopeThreshold;
-
-public:
-       AnalogSignal(pv::SigSession &session,
-               std::shared_ptr<sigrok::Channel> channel,
-               std::shared_ptr<pv::data::Analog> data);
-
-       virtual ~AnalogSignal();
-
-       std::shared_ptr<pv::data::SignalData> data() const;
-
-       std::shared_ptr<pv::data::Analog> analog_data() const;
-
-       void set_scale(float scale);
-
-       /**
-        * Computes the vertical extents of the contents of this row item.
-        * @return A pair containing the minimum and maximum y-values.
-        */
-       std::pair<int, int> v_extents() const;
-
-       /**
-        * Paints the background layer of the signal with a QPainter
-        * @param p the QPainter to paint into.
-        * @param left the x-coordinate of the left edge of the signal.
-        * @param right the x-coordinate of the right edge of the signal.
-        **/
-       void paint_back(QPainter &p, int left, int right);
-
-       /**
-        * Paints the mid-layer of the signal with a QPainter
-        * @param p the QPainter to paint into.
-        * @param left the x-coordinate of the left edge of the signal.
-        * @param right the x-coordinate of the right edge of the signal.
-        **/
-       void paint_mid(QPainter &p, int left, int right);
-
-private:
-       void paint_trace(QPainter &p,
-               const std::shared_ptr<pv::data::AnalogSnapshot> &snapshot,
-               int y, int left, const int64_t start, const int64_t end,
-               const double pixels_offset, const double samples_per_pixel);
-
-       void paint_envelope(QPainter &p,
-               const std::shared_ptr<pv::data::AnalogSnapshot> &snapshot,
-               int y, int left, const int64_t start, const int64_t end,
-               const double pixels_offset, const double samples_per_pixel);
-
-private:
-       std::shared_ptr<pv::data::Analog> data_;
-       float scale_;
-};
-
-} // namespace view
-} // namespace pv
-
-#endif // PULSEVIEW_PV_VIEW_ANALOGSIGNAL_H
diff --git a/pv/view/analogsignal.hpp b/pv/view/analogsignal.hpp
new file mode 100644 (file)
index 0000000..91a8e5c
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_VIEW_ANALOGSIGNAL_H
+#define PULSEVIEW_PV_VIEW_ANALOGSIGNAL_H
+
+#include "signal.hpp"
+
+#include <memory>
+
+namespace pv {
+
+namespace data {
+class Analog;
+class AnalogSnapshot;
+}
+
+namespace view {
+
+class AnalogSignal : public Signal
+{
+private:
+       static const int NominalHeight;
+       static const QColor SignalColours[4];
+
+       static const float EnvelopeThreshold;
+
+public:
+       AnalogSignal(pv::SigSession &session,
+               std::shared_ptr<sigrok::Channel> channel,
+               std::shared_ptr<pv::data::Analog> data);
+
+       virtual ~AnalogSignal();
+
+       std::shared_ptr<pv::data::SignalData> data() const;
+
+       std::shared_ptr<pv::data::Analog> analog_data() const;
+
+       void set_scale(float scale);
+
+       /**
+        * Computes the vertical extents of the contents of this row item.
+        * @return A pair containing the minimum and maximum y-values.
+        */
+       std::pair<int, int> v_extents() const;
+
+       /**
+        * Paints the background layer of the signal with a QPainter
+        * @param p the QPainter to paint into.
+        * @param left the x-coordinate of the left edge of the signal.
+        * @param right the x-coordinate of the right edge of the signal.
+        **/
+       void paint_back(QPainter &p, int left, int right);
+
+       /**
+        * Paints the mid-layer of the signal with a QPainter
+        * @param p the QPainter to paint into.
+        * @param left the x-coordinate of the left edge of the signal.
+        * @param right the x-coordinate of the right edge of the signal.
+        **/
+       void paint_mid(QPainter &p, int left, int right);
+
+private:
+       void paint_trace(QPainter &p,
+               const std::shared_ptr<pv::data::AnalogSnapshot> &snapshot,
+               int y, int left, const int64_t start, const int64_t end,
+               const double pixels_offset, const double samples_per_pixel);
+
+       void paint_envelope(QPainter &p,
+               const std::shared_ptr<pv::data::AnalogSnapshot> &snapshot,
+               int y, int left, const int64_t start, const int64_t end,
+               const double pixels_offset, const double samples_per_pixel);
+
+private:
+       std::shared_ptr<pv::data::Analog> data_;
+       float scale_;
+};
+
+} // namespace view
+} // namespace pv
+
+#endif // PULSEVIEW_PV_VIEW_ANALOGSIGNAL_H
index 0cc63142054c4598def0c8cad58d5a4d32a5d21c..03df054304f698132120674363f30d0753f5dde9 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include "cursor.h"
+#include "cursor.hpp"
 
-#include "view.h"
-#include "pv/util.h"
+#include "view.hpp"
+#include "pv/util.hpp"
 
 #include <QBrush>
 #include <QPainter>
diff --git a/pv/view/cursor.h b/pv/view/cursor.h
deleted file mode 100644 (file)
index 649230c..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_VIEW_CURSOR_H
-#define PULSEVIEW_PV_VIEW_CURSOR_H
-
-#include "timemarker.h"
-
-#include <memory>
-
-#include <QSizeF>
-
-class QPainter;
-
-namespace pv {
-namespace view {
-
-class Cursor : public TimeMarker
-{
-       Q_OBJECT
-
-public:
-       static const QColor LineColour;
-       static const QColor FillColour;
-       static const QColor HighlightColour;
-       static const QColor TextColour;
-
-       static const int Offset;
-
-       static const int ArrowSize;
-
-public:
-       /**
-        * Constructor.
-        * @param view A reference to the view that owns this cursor pair.
-        * @param time The time to set the flag to.
-        */
-       Cursor(View &view, double time);
-
-public:
-       /**
-        * Gets the marker label rectangle.
-        * @param rect The rectangle of the ruler client area.
-        * @return Returns the label rectangle.
-        */
-       QRectF get_label_rect(const QRect &rect) const;
-
-       /**
-        * Paints the cursor's label to the ruler.
-        * @param p The painter to draw with.
-        * @param rect The rectangle of the ruler client area.
-        * @param prefix The index of the SI prefix to use.
-        */
-       void paint_label(QPainter &p, const QRect &rect,
-               unsigned int prefix);
-
-private:
-       void compute_text_size(QPainter &p, unsigned int prefix);
-
-       std::shared_ptr<Cursor> get_other_cursor() const;
-
-private:
-       QSizeF text_size_;
-};
-
-} // namespace view
-} // namespace pv
-
-#endif // PULSEVIEW_PV_VIEW_CURSOR_H
diff --git a/pv/view/cursor.hpp b/pv/view/cursor.hpp
new file mode 100644 (file)
index 0000000..8679a28
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_VIEW_CURSOR_H
+#define PULSEVIEW_PV_VIEW_CURSOR_H
+
+#include "timemarker.hpp"
+
+#include <memory>
+
+#include <QSizeF>
+
+class QPainter;
+
+namespace pv {
+namespace view {
+
+class Cursor : public TimeMarker
+{
+       Q_OBJECT
+
+public:
+       static const QColor LineColour;
+       static const QColor FillColour;
+       static const QColor HighlightColour;
+       static const QColor TextColour;
+
+       static const int Offset;
+
+       static const int ArrowSize;
+
+public:
+       /**
+        * Constructor.
+        * @param view A reference to the view that owns this cursor pair.
+        * @param time The time to set the flag to.
+        */
+       Cursor(View &view, double time);
+
+public:
+       /**
+        * Gets the marker label rectangle.
+        * @param rect The rectangle of the ruler client area.
+        * @return Returns the label rectangle.
+        */
+       QRectF get_label_rect(const QRect &rect) const;
+
+       /**
+        * Paints the cursor's label to the ruler.
+        * @param p The painter to draw with.
+        * @param rect The rectangle of the ruler client area.
+        * @param prefix The index of the SI prefix to use.
+        */
+       void paint_label(QPainter &p, const QRect &rect,
+               unsigned int prefix);
+
+private:
+       void compute_text_size(QPainter &p, unsigned int prefix);
+
+       std::shared_ptr<Cursor> get_other_cursor() const;
+
+private:
+       QSizeF text_size_;
+};
+
+} // namespace view
+} // namespace pv
+
+#endif // PULSEVIEW_PV_VIEW_CURSOR_H
index 3f25e2123b5aa87043d53285ebcffde4353a130d..3fa0b0c58793410cb579bba9136b0fe0e934d841 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include "cursorheader.h"
+#include "cursorheader.hpp"
 
-#include "ruler.h"
-#include "view.h"
+#include "ruler.hpp"
+#include "view.hpp"
 
 #include <QApplication>
 #include <QFontMetrics>
 #include <QMouseEvent>
 
-#include <pv/widgets/popup.h>
+#include <pv/widgets/popup.hpp>
 
 using std::shared_ptr;
 
diff --git a/pv/view/cursorheader.h b/pv/view/cursorheader.h
deleted file mode 100644 (file)
index e655226..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_VIEW_CURSORHEADER_H
-#define PULSEVIEW_PV_VIEW_CURSORHEADER_H
-
-#include <memory>
-
-#include "marginwidget.h"
-
-namespace pv {
-namespace view {
-
-class TimeMarker;
-
-/**
- * Widget to hold the labels over the cursors.
- */
-class CursorHeader : public MarginWidget
-{
-       Q_OBJECT
-
-       static const int Padding;
-
-       /**
-        * The vertical offset, relative to the bottom line of the widget,
-        * where the arrows of the cursor labels end.
-        */
-       static const int BaselineOffset;
-
-public:
-       CursorHeader(View &parent);
-
-       QSize sizeHint() const;
-
-       void clear_selection();
-
-private:
-       void paintEvent(QPaintEvent *event);
-
-       void mouseMoveEvent(QMouseEvent *e);
-       void mousePressEvent(QMouseEvent *e);
-       void mouseReleaseEvent(QMouseEvent *);
-
-       int calculateTextHeight();
-
-       std::weak_ptr<TimeMarker> grabbed_marker_;
-       QPoint mouse_down_point_;
-       bool dragging_;
-       const int textHeight_;
-};
-
-} // namespace view
-} // namespace pv
-
-#endif // PULSEVIEW_PV_VIEW_CURSORHEADER_H
diff --git a/pv/view/cursorheader.hpp b/pv/view/cursorheader.hpp
new file mode 100644 (file)
index 0000000..90a000f
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_VIEW_CURSORHEADER_H
+#define PULSEVIEW_PV_VIEW_CURSORHEADER_H
+
+#include <memory>
+
+#include "marginwidget.hpp"
+
+namespace pv {
+namespace view {
+
+class TimeMarker;
+
+/**
+ * Widget to hold the labels over the cursors.
+ */
+class CursorHeader : public MarginWidget
+{
+       Q_OBJECT
+
+       static const int Padding;
+
+       /**
+        * The vertical offset, relative to the bottom line of the widget,
+        * where the arrows of the cursor labels end.
+        */
+       static const int BaselineOffset;
+
+public:
+       CursorHeader(View &parent);
+
+       QSize sizeHint() const;
+
+       void clear_selection();
+
+private:
+       void paintEvent(QPaintEvent *event);
+
+       void mouseMoveEvent(QMouseEvent *e);
+       void mousePressEvent(QMouseEvent *e);
+       void mouseReleaseEvent(QMouseEvent *);
+
+       int calculateTextHeight();
+
+       std::weak_ptr<TimeMarker> grabbed_marker_;
+       QPoint mouse_down_point_;
+       bool dragging_;
+       const int textHeight_;
+};
+
+} // namespace view
+} // namespace pv
+
+#endif // PULSEVIEW_PV_VIEW_CURSORHEADER_H
index 0b5363f18134b96b622e6e9e269289f0cde67218..0fb0d8d19ac681d1f1a44ec642730c769863528d 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include "cursorpair.h"
+#include "cursorpair.hpp"
 
-#include "view.h"
-#include "pv/util.h"
+#include "view.hpp"
+#include "pv/util.hpp"
 
 #include <cassert>
 #include <algorithm>
diff --git a/pv/view/cursorpair.h b/pv/view/cursorpair.h
deleted file mode 100644 (file)
index f7eb51c..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_VIEW_CURSORPAIR_H
-#define PULSEVIEW_PV_VIEW_CURSORPAIR_H
-
-#include "cursor.h"
-
-#include <memory>
-
-#include <QPainter>
-
-class QPainter;
-
-namespace pv {
-namespace view {
-
-class CursorPair
-{
-private:
-       static const int DeltaPadding;
-
-public:
-       /**
-        * Constructor.
-        * @param view A reference to the view that owns this cursor pair.
-        */
-       CursorPair(View &view);
-
-       /**
-        * Returns a pointer to the first cursor.
-        */
-       std::shared_ptr<Cursor> first() const;
-
-       /**
-        * Returns a pointer to the second cursor.
-        */
-       std::shared_ptr<Cursor> second() const;
-
-public:
-       QRectF get_label_rect(const QRect &rect) const;
-
-       void draw_markers(QPainter &p,
-               const QRect &rect, unsigned int prefix);
-
-       void draw_viewport_background(QPainter &p, const QRect &rect);
-
-       void draw_viewport_foreground(QPainter &p, const QRect &rect);
-
-       void compute_text_size(QPainter &p, unsigned int prefix);
-
-       std::pair<float, float> get_cursor_offsets() const;
-
-private:
-       std::shared_ptr<Cursor> first_, second_;
-       const View &view_;
-
-       QSizeF text_size_;
-};
-
-} // namespace view
-} // namespace pv
-
-#endif // PULSEVIEW_PV_VIEW_CURSORPAIR_H
diff --git a/pv/view/cursorpair.hpp b/pv/view/cursorpair.hpp
new file mode 100644 (file)
index 0000000..dd37b0e
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_VIEW_CURSORPAIR_H
+#define PULSEVIEW_PV_VIEW_CURSORPAIR_H
+
+#include "cursor.hpp"
+
+#include <memory>
+
+#include <QPainter>
+
+class QPainter;
+
+namespace pv {
+namespace view {
+
+class CursorPair
+{
+private:
+       static const int DeltaPadding;
+
+public:
+       /**
+        * Constructor.
+        * @param view A reference to the view that owns this cursor pair.
+        */
+       CursorPair(View &view);
+
+       /**
+        * Returns a pointer to the first cursor.
+        */
+       std::shared_ptr<Cursor> first() const;
+
+       /**
+        * Returns a pointer to the second cursor.
+        */
+       std::shared_ptr<Cursor> second() const;
+
+public:
+       QRectF get_label_rect(const QRect &rect) const;
+
+       void draw_markers(QPainter &p,
+               const QRect &rect, unsigned int prefix);
+
+       void draw_viewport_background(QPainter &p, const QRect &rect);
+
+       void draw_viewport_foreground(QPainter &p, const QRect &rect);
+
+       void compute_text_size(QPainter &p, unsigned int prefix);
+
+       std::pair<float, float> get_cursor_offsets() const;
+
+private:
+       std::shared_ptr<Cursor> first_, second_;
+       const View &view_;
+
+       QSizeF text_size_;
+};
+
+} // namespace view
+} // namespace pv
+
+#endif // PULSEVIEW_PV_VIEW_CURSORPAIR_H
index 005d98b8a86b35de72c31910f86033a0bf2f32e7..01bf934c47095003e3265420622344a6235dc92a 100644 (file)
@@ -39,19 +39,19 @@ extern "C" {
 #include <QPushButton>
 #include <QToolTip>
 
-#include "decodetrace.h"
-
-#include <pv/sigsession.h>
-#include <pv/data/decoderstack.h>
-#include <pv/data/decode/decoder.h>
-#include <pv/data/logic.h>
-#include <pv/data/logicsnapshot.h>
-#include <pv/data/decode/annotation.h>
-#include <pv/view/logicsignal.h>
-#include <pv/view/view.h>
-#include <pv/view/viewport.h>
-#include <pv/widgets/decodergroupbox.h>
-#include <pv/widgets/decodermenu.h>
+#include "decodetrace.hpp"
+
+#include <pv/sigsession.hpp>
+#include <pv/data/decoderstack.hpp>
+#include <pv/data/decode/decoder.hpp>
+#include <pv/data/logic.hpp>
+#include <pv/data/logicsnapshot.hpp>
+#include <pv/data/decode/annotation.hpp>
+#include <pv/view/logicsignal.hpp>
+#include <pv/view/view.hpp>
+#include <pv/view/viewport.hpp>
+#include <pv/widgets/decodergroupbox.hpp>
+#include <pv/widgets/decodermenu.hpp>
 
 using boost::shared_lock;
 using boost::shared_mutex;
diff --git a/pv/view/decodetrace.h b/pv/view/decodetrace.h
deleted file mode 100644 (file)
index 9704f69..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_VIEW_DECODETRACE_H
-#define PULSEVIEW_PV_VIEW_DECODETRACE_H
-
-#include "trace.h"
-
-#include <list>
-#include <map>
-#include <memory>
-
-#include <QSignalMapper>
-
-#include <pv/prop/binding/decoderoptions.h>
-#include <pv/data/decode/row.h>
-
-struct srd_channel;
-struct srd_decoder;
-
-class QComboBox;
-
-namespace pv {
-
-class SigSession;
-
-namespace data {
-class DecoderStack;
-
-namespace decode {
-class Annotation;
-class Decoder;
-class Row;
-}
-}
-
-namespace widgets {
-class DecoderGroupBox;
-}
-
-namespace view {
-
-class DecodeTrace : public Trace
-{
-       Q_OBJECT
-
-private:
-       struct ChannelSelector
-       {
-               const QComboBox *combo_;
-               const std::shared_ptr<pv::data::decode::Decoder> decoder_;
-               const srd_channel *pdch_;
-       };
-
-private:
-       static const QColor DecodeColours[4];
-       static const QColor ErrorBgColour;
-       static const QColor NoDecodeColour;
-
-       static const int ArrowSize;
-       static const double EndCapWidth;
-       static const int DrawPadding;
-
-       static const QColor Colours[16];
-       static const QColor OutlineColours[16];
-
-public:
-       DecodeTrace(pv::SigSession &session,
-               std::shared_ptr<pv::data::DecoderStack> decoder_stack,
-               int index);
-
-       bool enabled() const;
-
-       const std::shared_ptr<pv::data::DecoderStack>& decoder() const;
-
-       /**
-        * Computes the vertical extents of the contents of this row item.
-        * @return A pair containing the minimum and maximum y-values.
-        */
-       std::pair<int, int> v_extents() const;
-
-       /**
-        * Paints the background layer of the trace with a QPainter
-        * @param p the QPainter to paint into.
-        * @param left the x-coordinate of the left edge of the signal.
-        * @param right the x-coordinate of the right edge of the signal.
-        **/
-       void paint_back(QPainter &p, int left, int right);
-
-       /**
-        * Paints the mid-layer of the trace with a QPainter
-        * @param p the QPainter to paint into.
-        * @param left the x-coordinate of the left edge of the signal
-        * @param right the x-coordinate of the right edge of the signal
-        **/
-       void paint_mid(QPainter &p, int left, int right);
-
-       /**
-        * Paints the foreground layer of the trace with a QPainter
-        * @param p the QPainter to paint into.
-        * @param left the x-coordinate of the left edge of the signal
-        * @param right the x-coordinate of the right edge of the signal
-        **/
-       void paint_fore(QPainter &p, int left, int right);
-
-       void populate_popup_form(QWidget *parent, QFormLayout *form);
-
-       QMenu* create_context_menu(QWidget *parent);
-
-       void delete_pressed();
-
-private:
-       void draw_annotation(const pv::data::decode::Annotation &a, QPainter &p,
-               QColor text_colour, int text_height, int left, int right, int y,
-               size_t base_colour) const;
-
-       void draw_instant(const pv::data::decode::Annotation &a, QPainter &p,
-               QColor fill, QColor outline, QColor text_color, int h, double x,
-               int y) const;
-
-       void draw_range(const pv::data::decode::Annotation &a, QPainter &p,
-               QColor fill, QColor outline, QColor text_color, int h, double start,
-               double end, int y) const;
-
-       void draw_error(QPainter &p, const QString &message,
-               int left, int right);
-
-       void draw_unresolved_period(QPainter &p, int h, int left,
-               int right) const;
-
-       std::pair<double, double> get_pixels_offset_samples_per_pixel() const;
-
-       /**
-        * Determines the start and end sample for a given pixel range.
-        * @param x_start the X coordinate of the start sample in the view
-        * @param x_end the X coordinate of the end sample in the view
-        * @return Returns a pair containing the start sample and the end
-        *      sample that correspond to the start and end coordinates.
-        */
-       std::pair<uint64_t, uint64_t> get_sample_range(int x_start, int x_end) const;
-
-       int get_row_at_point(const QPoint &point);
-
-       const QString get_annotation_at_point(const QPoint &point);
-
-       void hide_hover_annotation();
-
-       void create_decoder_form(int index,
-               std::shared_ptr<pv::data::decode::Decoder> &dec,
-               QWidget *parent, QFormLayout *form);
-
-       QComboBox* create_channel_selector(QWidget *parent,
-               const std::shared_ptr<pv::data::decode::Decoder> &dec,
-               const srd_channel *const pdch);
-
-       void commit_decoder_channels(
-               std::shared_ptr<data::decode::Decoder> &dec);
-
-       void commit_channels();
-
-public:
-       void hover_point_changed();
-
-private Q_SLOTS:
-       void on_new_decode_data();
-
-       void on_delete();
-
-       void on_channel_selected(int);
-
-       void on_stack_decoder(srd_decoder *decoder);
-
-       void on_delete_decoder(int index);
-
-       void on_show_hide_decoder(int index);
-
-private:
-       pv::SigSession &session_;
-       std::shared_ptr<pv::data::DecoderStack> decoder_stack_;
-
-       uint64_t decode_start_, decode_end_;
-
-       std::list< std::shared_ptr<pv::prop::binding::DecoderOptions> >
-               bindings_;
-
-       std::list<ChannelSelector> channel_selectors_;
-       std::vector<pv::widgets::DecoderGroupBox*> decoder_forms_;
-
-       std::vector<data::decode::Row> visible_rows_;
-       int text_height_, row_height_;
-
-       QSignalMapper delete_mapper_, show_hide_mapper_;
-};
-
-} // namespace view
-} // namespace pv
-
-#endif // PULSEVIEW_PV_VIEW_DECODETRACE_H
diff --git a/pv/view/decodetrace.hpp b/pv/view/decodetrace.hpp
new file mode 100644 (file)
index 0000000..0e2ce14
--- /dev/null
@@ -0,0 +1,215 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_VIEW_DECODETRACE_H
+#define PULSEVIEW_PV_VIEW_DECODETRACE_H
+
+#include "trace.hpp"
+
+#include <list>
+#include <map>
+#include <memory>
+
+#include <QSignalMapper>
+
+#include <pv/prop/binding/decoderoptions.hpp>
+#include <pv/data/decode/row.hpp>
+
+struct srd_channel;
+struct srd_decoder;
+
+class QComboBox;
+
+namespace pv {
+
+class SigSession;
+
+namespace data {
+class DecoderStack;
+
+namespace decode {
+class Annotation;
+class Decoder;
+class Row;
+}
+}
+
+namespace widgets {
+class DecoderGroupBox;
+}
+
+namespace view {
+
+class DecodeTrace : public Trace
+{
+       Q_OBJECT
+
+private:
+       struct ChannelSelector
+       {
+               const QComboBox *combo_;
+               const std::shared_ptr<pv::data::decode::Decoder> decoder_;
+               const srd_channel *pdch_;
+       };
+
+private:
+       static const QColor DecodeColours[4];
+       static const QColor ErrorBgColour;
+       static const QColor NoDecodeColour;
+
+       static const int ArrowSize;
+       static const double EndCapWidth;
+       static const int DrawPadding;
+
+       static const QColor Colours[16];
+       static const QColor OutlineColours[16];
+
+public:
+       DecodeTrace(pv::SigSession &session,
+               std::shared_ptr<pv::data::DecoderStack> decoder_stack,
+               int index);
+
+       bool enabled() const;
+
+       const std::shared_ptr<pv::data::DecoderStack>& decoder() const;
+
+       /**
+        * Computes the vertical extents of the contents of this row item.
+        * @return A pair containing the minimum and maximum y-values.
+        */
+       std::pair<int, int> v_extents() const;
+
+       /**
+        * Paints the background layer of the trace with a QPainter
+        * @param p the QPainter to paint into.
+        * @param left the x-coordinate of the left edge of the signal.
+        * @param right the x-coordinate of the right edge of the signal.
+        **/
+       void paint_back(QPainter &p, int left, int right);
+
+       /**
+        * Paints the mid-layer of the trace with a QPainter
+        * @param p the QPainter to paint into.
+        * @param left the x-coordinate of the left edge of the signal
+        * @param right the x-coordinate of the right edge of the signal
+        **/
+       void paint_mid(QPainter &p, int left, int right);
+
+       /**
+        * Paints the foreground layer of the trace with a QPainter
+        * @param p the QPainter to paint into.
+        * @param left the x-coordinate of the left edge of the signal
+        * @param right the x-coordinate of the right edge of the signal
+        **/
+       void paint_fore(QPainter &p, int left, int right);
+
+       void populate_popup_form(QWidget *parent, QFormLayout *form);
+
+       QMenu* create_context_menu(QWidget *parent);
+
+       void delete_pressed();
+
+private:
+       void draw_annotation(const pv::data::decode::Annotation &a, QPainter &p,
+               QColor text_colour, int text_height, int left, int right, int y,
+               size_t base_colour) const;
+
+       void draw_instant(const pv::data::decode::Annotation &a, QPainter &p,
+               QColor fill, QColor outline, QColor text_color, int h, double x,
+               int y) const;
+
+       void draw_range(const pv::data::decode::Annotation &a, QPainter &p,
+               QColor fill, QColor outline, QColor text_color, int h, double start,
+               double end, int y) const;
+
+       void draw_error(QPainter &p, const QString &message,
+               int left, int right);
+
+       void draw_unresolved_period(QPainter &p, int h, int left,
+               int right) const;
+
+       std::pair<double, double> get_pixels_offset_samples_per_pixel() const;
+
+       /**
+        * Determines the start and end sample for a given pixel range.
+        * @param x_start the X coordinate of the start sample in the view
+        * @param x_end the X coordinate of the end sample in the view
+        * @return Returns a pair containing the start sample and the end
+        *      sample that correspond to the start and end coordinates.
+        */
+       std::pair<uint64_t, uint64_t> get_sample_range(int x_start, int x_end) const;
+
+       int get_row_at_point(const QPoint &point);
+
+       const QString get_annotation_at_point(const QPoint &point);
+
+       void hide_hover_annotation();
+
+       void create_decoder_form(int index,
+               std::shared_ptr<pv::data::decode::Decoder> &dec,
+               QWidget *parent, QFormLayout *form);
+
+       QComboBox* create_channel_selector(QWidget *parent,
+               const std::shared_ptr<pv::data::decode::Decoder> &dec,
+               const srd_channel *const pdch);
+
+       void commit_decoder_channels(
+               std::shared_ptr<data::decode::Decoder> &dec);
+
+       void commit_channels();
+
+public:
+       void hover_point_changed();
+
+private Q_SLOTS:
+       void on_new_decode_data();
+
+       void on_delete();
+
+       void on_channel_selected(int);
+
+       void on_stack_decoder(srd_decoder *decoder);
+
+       void on_delete_decoder(int index);
+
+       void on_show_hide_decoder(int index);
+
+private:
+       pv::SigSession &session_;
+       std::shared_ptr<pv::data::DecoderStack> decoder_stack_;
+
+       uint64_t decode_start_, decode_end_;
+
+       std::list< std::shared_ptr<pv::prop::binding::DecoderOptions> >
+               bindings_;
+
+       std::list<ChannelSelector> channel_selectors_;
+       std::vector<pv::widgets::DecoderGroupBox*> decoder_forms_;
+
+       std::vector<data::decode::Row> visible_rows_;
+       int text_height_, row_height_;
+
+       QSignalMapper delete_mapper_, show_hide_mapper_;
+};
+
+} // namespace view
+} // namespace pv
+
+#endif // PULSEVIEW_PV_VIEW_DECODETRACE_H
index 1dee05f4c7df0b4aa80f9f6ec39f2771f314e3c5..08b3fdd2e07fa48ecfcc9a6fa9bb986bfffbcc9f 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include "header.h"
-#include "view.h"
+#include "header.hpp"
+#include "view.hpp"
 
-#include "signal.h"
-#include "tracegroup.h"
-#include "../sigsession.h"
+#include "signal.hpp"
+#include "tracegroup.hpp"
 
 #include <cassert>
 #include <algorithm>
@@ -36,7 +35,8 @@
 #include <QPainter>
 #include <QRect>
 
-#include <pv/widgets/popup.h>
+#include <pv/sigsession.hpp>
+#include <pv/widgets/popup.hpp>
 
 using boost::make_filter_iterator;
 using std::dynamic_pointer_cast;
diff --git a/pv/view/header.h b/pv/view/header.h
deleted file mode 100644 (file)
index 49a95bb..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_VIEW_HEADER_H
-#define PULSEVIEW_PV_VIEW_HEADER_H
-
-#include <list>
-#include <memory>
-#include <utility>
-
-#include "marginwidget.h"
-
-namespace pv {
-namespace view {
-
-class RowItem;
-class View;
-
-class Header : public MarginWidget
-{
-       Q_OBJECT
-
-private:
-       static const int Padding;
-
-public:
-       Header(View &parent);
-
-       QSize sizeHint() const;
-
-       /**
-        * The horizontal offset, relative to the left edge of the widget,
-        * where the arrows of the trace labels end.
-        */
-       static const int BaselineOffset;
-
-private:
-       std::shared_ptr<pv::view::RowItem> get_mouse_over_row_item(
-               const QPoint &pt);
-
-       void clear_selection();
-
-       void show_popup(const std::shared_ptr<RowItem> &item);
-
-private:
-       void paintEvent(QPaintEvent *event);
-
-private:
-       void mouseLeftPressEvent(QMouseEvent *event);
-       void mousePressEvent(QMouseEvent * event);
-
-       void mouseLeftReleaseEvent(QMouseEvent *event);
-       void mouseReleaseEvent(QMouseEvent *event);
-
-       void mouseMoveEvent(QMouseEvent *event);
-
-       void leaveEvent(QEvent *event);
-
-       void contextMenuEvent(QContextMenuEvent *event);
-
-       void keyPressEvent(QKeyEvent *e);
-
-private Q_SLOTS:
-       void on_signals_moved();
-
-       void on_group();
-
-       void on_ungroup();
-
-Q_SIGNALS:
-       void signals_moved();
-
-private:
-       QPoint mouse_point_;
-       QPoint mouse_down_point_;
-       std::shared_ptr<RowItem> mouse_down_item_;
-       bool dragging_;
-};
-
-} // namespace view
-} // namespace pv
-
-#endif // PULSEVIEW_PV_VIEW_HEADER_H
diff --git a/pv/view/header.hpp b/pv/view/header.hpp
new file mode 100644 (file)
index 0000000..662e19f
--- /dev/null
@@ -0,0 +1,100 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_VIEW_HEADER_H
+#define PULSEVIEW_PV_VIEW_HEADER_H
+
+#include <list>
+#include <memory>
+#include <utility>
+
+#include "marginwidget.hpp"
+
+namespace pv {
+namespace view {
+
+class RowItem;
+class View;
+
+class Header : public MarginWidget
+{
+       Q_OBJECT
+
+private:
+       static const int Padding;
+
+public:
+       Header(View &parent);
+
+       QSize sizeHint() const;
+
+       /**
+        * The horizontal offset, relative to the left edge of the widget,
+        * where the arrows of the trace labels end.
+        */
+       static const int BaselineOffset;
+
+private:
+       std::shared_ptr<pv::view::RowItem> get_mouse_over_row_item(
+               const QPoint &pt);
+
+       void clear_selection();
+
+       void show_popup(const std::shared_ptr<RowItem> &item);
+
+private:
+       void paintEvent(QPaintEvent *event);
+
+private:
+       void mouseLeftPressEvent(QMouseEvent *event);
+       void mousePressEvent(QMouseEvent * event);
+
+       void mouseLeftReleaseEvent(QMouseEvent *event);
+       void mouseReleaseEvent(QMouseEvent *event);
+
+       void mouseMoveEvent(QMouseEvent *event);
+
+       void leaveEvent(QEvent *event);
+
+       void contextMenuEvent(QContextMenuEvent *event);
+
+       void keyPressEvent(QKeyEvent *e);
+
+private Q_SLOTS:
+       void on_signals_moved();
+
+       void on_group();
+
+       void on_ungroup();
+
+Q_SIGNALS:
+       void signals_moved();
+
+private:
+       QPoint mouse_point_;
+       QPoint mouse_down_point_;
+       std::shared_ptr<RowItem> mouse_down_item_;
+       bool dragging_;
+};
+
+} // namespace view
+} // namespace pv
+
+#endif // PULSEVIEW_PV_VIEW_HEADER_H
index 1b873e24fd797cb9addb787a6043144b9300e568..5beb39df4fa6b4f126686b97aec6d35ecab731a2 100644 (file)
 #include <QFormLayout>
 #include <QToolBar>
 
-#include "logicsignal.h"
-#include "view.h"
-
-#include <pv/sigsession.h>
-#include <pv/devicemanager.h>
-#include <pv/data/logic.h>
-#include <pv/data/logicsnapshot.h>
-#include <pv/view/view.h>
+#include "logicsignal.hpp"
+#include "view.hpp"
+
+#include <pv/sigsession.hpp>
+#include <pv/devicemanager.hpp>
+#include <pv/data/logic.hpp>
+#include <pv/data/logicsnapshot.hpp>
+#include <pv/view/view.hpp>
 
 #include <libsigrok/libsigrok.hpp>
 
diff --git a/pv/view/logicsignal.h b/pv/view/logicsignal.h
deleted file mode 100644 (file)
index 79bbe39..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_VIEW_LOGICSIGNAL_H
-#define PULSEVIEW_PV_VIEW_LOGICSIGNAL_H
-
-#include "signal.h"
-
-#include <memory>
-
-class QToolBar;
-
-namespace sigrok {
-       class Device;
-       class TriggerMatchType;
-}
-
-namespace pv {
-
-namespace data {
-class Logic;
-}
-
-namespace view {
-
-class LogicSignal : public Signal
-{
-       Q_OBJECT
-
-private:
-       static const int SignalHeight;
-       static const int SignalMargin;
-
-       static const float Oversampling;
-
-       static const QColor EdgeColour;
-       static const QColor HighColour;
-       static const QColor LowColour;
-
-       static const QColor SignalColours[10];
-
-public:
-       LogicSignal(pv::SigSession &session,
-               std::shared_ptr<sigrok::Device> device,
-               std::shared_ptr<sigrok::Channel> channel,
-               std::shared_ptr<pv::data::Logic> data);
-
-       virtual ~LogicSignal();
-
-       std::shared_ptr<pv::data::SignalData> data() const;
-
-       std::shared_ptr<pv::data::Logic> logic_data() const;
-
-       /**
-        * Computes the vertical extents of the contents of this row item.
-        * @return A pair containing the minimum and maximum y-values.
-        */
-       std::pair<int, int> v_extents() const;
-
-       /**
-        * Paints the background layer of the signal with a QPainter
-        * @param p the QPainter to paint into.
-        * @param left the x-coordinate of the left edge of the signal.
-        * @param right the x-coordinate of the right edge of the signal.
-        **/
-       void paint_back(QPainter &p, int left, int right);
-
-       /**
-        * Paints the mid-layer of the signal with a QPainter
-        * @param p the QPainter to paint into.
-        * @param left the x-coordinate of the left edge of the signal.
-        * @param right the x-coordinate of the right edge of the signal.
-        **/
-       void paint_mid(QPainter &p, int left, int right);
-
-private:
-       void paint_caps(QPainter &p, QLineF *const lines,
-               std::vector< std::pair<int64_t, bool> > &edges,
-               bool level, double samples_per_pixel, double pixels_offset,
-               float x_offset, float y_offset);
-
-       void init_trigger_actions(QWidget *parent);
-
-       QAction* match_action(const sigrok::TriggerMatchType *match);
-       const sigrok::TriggerMatchType *action_match(QAction *action);
-       void populate_popup_form(QWidget *parent, QFormLayout *form);
-       void modify_trigger();
-
-private Q_SLOTS:
-       void on_trigger();
-
-private:
-       std::shared_ptr<sigrok::Device> device_;
-       std::shared_ptr<pv::data::Logic> data_;
-
-       const sigrok::TriggerMatchType *trigger_match_;
-       QToolBar *trigger_bar_;
-       QAction *trigger_none_;
-       QAction *trigger_rising_;
-       QAction *trigger_high_;
-       QAction *trigger_falling_;
-       QAction *trigger_low_;
-       QAction *trigger_change_;
-};
-
-} // namespace view
-} // namespace pv
-
-#endif // PULSEVIEW_PV_VIEW_LOGICSIGNAL_H
diff --git a/pv/view/logicsignal.hpp b/pv/view/logicsignal.hpp
new file mode 100644 (file)
index 0000000..a4f64e6
--- /dev/null
@@ -0,0 +1,126 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_VIEW_LOGICSIGNAL_H
+#define PULSEVIEW_PV_VIEW_LOGICSIGNAL_H
+
+#include "signal.hpp"
+
+#include <memory>
+
+class QToolBar;
+
+namespace sigrok {
+       class Device;
+       class TriggerMatchType;
+}
+
+namespace pv {
+
+namespace data {
+class Logic;
+}
+
+namespace view {
+
+class LogicSignal : public Signal
+{
+       Q_OBJECT
+
+private:
+       static const int SignalHeight;
+       static const int SignalMargin;
+
+       static const float Oversampling;
+
+       static const QColor EdgeColour;
+       static const QColor HighColour;
+       static const QColor LowColour;
+
+       static const QColor SignalColours[10];
+
+public:
+       LogicSignal(pv::SigSession &session,
+               std::shared_ptr<sigrok::Device> device,
+               std::shared_ptr<sigrok::Channel> channel,
+               std::shared_ptr<pv::data::Logic> data);
+
+       virtual ~LogicSignal();
+
+       std::shared_ptr<pv::data::SignalData> data() const;
+
+       std::shared_ptr<pv::data::Logic> logic_data() const;
+
+       /**
+        * Computes the vertical extents of the contents of this row item.
+        * @return A pair containing the minimum and maximum y-values.
+        */
+       std::pair<int, int> v_extents() const;
+
+       /**
+        * Paints the background layer of the signal with a QPainter
+        * @param p the QPainter to paint into.
+        * @param left the x-coordinate of the left edge of the signal.
+        * @param right the x-coordinate of the right edge of the signal.
+        **/
+       void paint_back(QPainter &p, int left, int right);
+
+       /**
+        * Paints the mid-layer of the signal with a QPainter
+        * @param p the QPainter to paint into.
+        * @param left the x-coordinate of the left edge of the signal.
+        * @param right the x-coordinate of the right edge of the signal.
+        **/
+       void paint_mid(QPainter &p, int left, int right);
+
+private:
+       void paint_caps(QPainter &p, QLineF *const lines,
+               std::vector< std::pair<int64_t, bool> > &edges,
+               bool level, double samples_per_pixel, double pixels_offset,
+               float x_offset, float y_offset);
+
+       void init_trigger_actions(QWidget *parent);
+
+       QAction* match_action(const sigrok::TriggerMatchType *match);
+       const sigrok::TriggerMatchType *action_match(QAction *action);
+       void populate_popup_form(QWidget *parent, QFormLayout *form);
+       void modify_trigger();
+
+private Q_SLOTS:
+       void on_trigger();
+
+private:
+       std::shared_ptr<sigrok::Device> device_;
+       std::shared_ptr<pv::data::Logic> data_;
+
+       const sigrok::TriggerMatchType *trigger_match_;
+       QToolBar *trigger_bar_;
+       QAction *trigger_none_;
+       QAction *trigger_rising_;
+       QAction *trigger_high_;
+       QAction *trigger_falling_;
+       QAction *trigger_low_;
+       QAction *trigger_change_;
+};
+
+} // namespace view
+} // namespace pv
+
+#endif // PULSEVIEW_PV_VIEW_LOGICSIGNAL_H
index 179e82b9f7f9c63084f104061059163d2370c354..f3abe361feedae833531f7d54529f9e902c4a3bd 100644 (file)
@@ -18,9 +18,9 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include "view.h"
+#include "view.hpp"
 
-#include "marginwidget.h"
+#include "marginwidget.hpp"
 
 namespace pv {
 namespace view {
diff --git a/pv/view/marginwidget.h b/pv/view/marginwidget.h
deleted file mode 100644 (file)
index 9ff4276..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_MARGINWIDGET_H
-#define PULSEVIEW_PV_MARGINWIDGET_H
-
-#include <QWidget>
-
-namespace pv {
-namespace view {
-
-class View;
-
-class MarginWidget : public QWidget
-{
-       Q_OBJECT
-
-public:
-       MarginWidget(pv::view::View &parent);
-
-public Q_SLOTS:
-       virtual void clear_selection();
-
-Q_SIGNALS:
-       void selection_changed();
-
-protected:
-       pv::view::View &view_;
-};
-
-} // namespace view
-} // namespace pv
-
-#endif // PULSEVIEW_PV_MARGINWIDGET_H
diff --git a/pv/view/marginwidget.hpp b/pv/view/marginwidget.hpp
new file mode 100644 (file)
index 0000000..9ff4276
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_MARGINWIDGET_H
+#define PULSEVIEW_PV_MARGINWIDGET_H
+
+#include <QWidget>
+
+namespace pv {
+namespace view {
+
+class View;
+
+class MarginWidget : public QWidget
+{
+       Q_OBJECT
+
+public:
+       MarginWidget(pv::view::View &parent);
+
+public Q_SLOTS:
+       virtual void clear_selection();
+
+Q_SIGNALS:
+       void selection_changed();
+
+protected:
+       pv::view::View &view_;
+};
+
+} // namespace view
+} // namespace pv
+
+#endif // PULSEVIEW_PV_MARGINWIDGET_H
index 293460233a8fd96ff81888664d447cd8feb4418f..6e87de1019514a9a2ffa2727f0c1d5a63ea6f270 100644 (file)
@@ -20,9 +20,9 @@
 
 #include <assert.h>
 
-#include "view.h"
+#include "view.hpp"
 
-#include "rowitem.h"
+#include "rowitem.hpp"
 
 namespace pv {
 namespace view {
diff --git a/pv/view/rowitem.h b/pv/view/rowitem.h
deleted file mode 100644 (file)
index db6e580..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_VIEW_HEADERITEM_H
-#define PULSEVIEW_PV_VIEW_HEADERITEM_H
-
-#include <memory>
-
-#include <QPropertyAnimation>
-
-#include "selectableitem.h"
-
-namespace pv {
-namespace view {
-
-class RowItemOwner;
-
-class RowItem : public SelectableItem,
-       public std::enable_shared_from_this<pv::view::RowItem>
-{
-       Q_OBJECT
-       Q_PROPERTY(int visual_v_offset
-               READ visual_v_offset
-               WRITE set_visual_v_offset)
-
-public:
-       /**
-        * Constructor.
-        */
-       RowItem();
-
-       /**
-        * Returns true if the item is visible and enabled.
-        */
-       virtual bool enabled() const = 0;
-
-       /**
-        * Gets the vertical layout offset of this signal.
-        */
-       int layout_v_offset() const;
-
-       /**
-        * Sets the vertical layout offset of this signal.
-        */
-       void set_layout_v_offset(int v_offset);
-
-       /**
-        * Gets the vertical visual offset of this signal.
-        */
-       int visual_v_offset() const;
-
-       /**
-        * Sets the vertical visual offset of this signal.
-        */
-       void set_visual_v_offset(int v_offset);
-
-       /**
-        * Sets the visual and layout offset of this signal.
-        */
-       void force_to_v_offset(int v_offset);
-
-       /**
-        * Begins an animation that will animate the visual offset toward
-        * the layout offset.
-        */
-       void animate_to_layout_v_offset();
-
-       /**
-        * Gets the owner this trace in the view trace hierachy.
-        */
-       pv::view::RowItemOwner* owner() const;
-
-       /**
-        * Sets the owner this trace in the view trace hierachy.
-        * @param The new owner of the trace.
-        */
-       void set_owner(pv::view::RowItemOwner *owner);
-
-       /**
-        * Gets the visual y-offset of the axis.
-        */
-       int get_visual_y() const;
-
-       /**
-        * Gets the drag point of the row item.
-        */
-       QPoint point() const;
-
-       /**
-        * Computes the vertical extents of the contents of this row item.
-        * @return A pair containing the minimum and maximum y-values.
-        */
-       virtual std::pair<int, int> v_extents() const = 0;
-
-       /**
-        * Paints the background layer of the trace with a QPainter
-        * @param p the QPainter to paint into.
-        * @param left the x-coordinate of the left edge of the signal
-        * @param right the x-coordinate of the right edge of the signal
-        **/
-       virtual void paint_back(QPainter &p, int left, int right);
-
-       /**
-        * Paints the mid-layer of the trace with a QPainter
-        * @param p the QPainter to paint into.
-        * @param left the x-coordinate of the left edge of the signal
-        * @param right the x-coordinate of the right edge of the signal
-        **/
-       virtual void paint_mid(QPainter &p, int left, int right);
-
-       /**
-        * Paints the foreground layer of the trace with a QPainter
-        * @param p the QPainter to paint into.
-        * @param left the x-coordinate of the left edge of the signal
-        * @param right the x-coordinate of the right edge of the signal
-        **/
-       virtual void paint_fore(QPainter &p, int left, int right);
-
-       /**
-        * Paints the signal label.
-        * @param p the QPainter to paint into.
-        * @param right the x-coordinate of the right edge of the header
-        *      area.
-        * @param hover true if the label is being hovered over by the mouse.
-        */
-       virtual void paint_label(QPainter &p, int right, bool hover) = 0;
-
-       /**
-        * Computes the outline rectangle of a label.
-        * @param right the x-coordinate of the right edge of the header
-        *      area.
-        * @return Returns the rectangle of the signal label.
-        */
-       virtual QRectF label_rect(int right) const = 0;
-
-public:
-       virtual void hover_point_changed();
-
-protected:
-       pv::view::RowItemOwner *owner_;
-
-       int layout_v_offset_;
-       int visual_v_offset_;
-
-private:
-       QPropertyAnimation v_offset_animation_;
-};
-
-} // namespace view
-} // namespace pv
-
-#endif // PULSEVIEW_PV_VIEW_HEADERITEM_H
diff --git a/pv/view/rowitem.hpp b/pv/view/rowitem.hpp
new file mode 100644 (file)
index 0000000..d6233e8
--- /dev/null
@@ -0,0 +1,169 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_VIEW_HEADERITEM_H
+#define PULSEVIEW_PV_VIEW_HEADERITEM_H
+
+#include <memory>
+
+#include <QPropertyAnimation>
+
+#include "selectableitem.hpp"
+
+namespace pv {
+namespace view {
+
+class RowItemOwner;
+
+class RowItem : public SelectableItem,
+       public std::enable_shared_from_this<pv::view::RowItem>
+{
+       Q_OBJECT
+       Q_PROPERTY(int visual_v_offset
+               READ visual_v_offset
+               WRITE set_visual_v_offset)
+
+public:
+       /**
+        * Constructor.
+        */
+       RowItem();
+
+       /**
+        * Returns true if the item is visible and enabled.
+        */
+       virtual bool enabled() const = 0;
+
+       /**
+        * Gets the vertical layout offset of this signal.
+        */
+       int layout_v_offset() const;
+
+       /**
+        * Sets the vertical layout offset of this signal.
+        */
+       void set_layout_v_offset(int v_offset);
+
+       /**
+        * Gets the vertical visual offset of this signal.
+        */
+       int visual_v_offset() const;
+
+       /**
+        * Sets the vertical visual offset of this signal.
+        */
+       void set_visual_v_offset(int v_offset);
+
+       /**
+        * Sets the visual and layout offset of this signal.
+        */
+       void force_to_v_offset(int v_offset);
+
+       /**
+        * Begins an animation that will animate the visual offset toward
+        * the layout offset.
+        */
+       void animate_to_layout_v_offset();
+
+       /**
+        * Gets the owner this trace in the view trace hierachy.
+        */
+       pv::view::RowItemOwner* owner() const;
+
+       /**
+        * Sets the owner this trace in the view trace hierachy.
+        * @param The new owner of the trace.
+        */
+       void set_owner(pv::view::RowItemOwner *owner);
+
+       /**
+        * Gets the visual y-offset of the axis.
+        */
+       int get_visual_y() const;
+
+       /**
+        * Gets the drag point of the row item.
+        */
+       QPoint point() const;
+
+       /**
+        * Computes the vertical extents of the contents of this row item.
+        * @return A pair containing the minimum and maximum y-values.
+        */
+       virtual std::pair<int, int> v_extents() const = 0;
+
+       /**
+        * Paints the background layer of the trace with a QPainter
+        * @param p the QPainter to paint into.
+        * @param left the x-coordinate of the left edge of the signal
+        * @param right the x-coordinate of the right edge of the signal
+        **/
+       virtual void paint_back(QPainter &p, int left, int right);
+
+       /**
+        * Paints the mid-layer of the trace with a QPainter
+        * @param p the QPainter to paint into.
+        * @param left the x-coordinate of the left edge of the signal
+        * @param right the x-coordinate of the right edge of the signal
+        **/
+       virtual void paint_mid(QPainter &p, int left, int right);
+
+       /**
+        * Paints the foreground layer of the trace with a QPainter
+        * @param p the QPainter to paint into.
+        * @param left the x-coordinate of the left edge of the signal
+        * @param right the x-coordinate of the right edge of the signal
+        **/
+       virtual void paint_fore(QPainter &p, int left, int right);
+
+       /**
+        * Paints the signal label.
+        * @param p the QPainter to paint into.
+        * @param right the x-coordinate of the right edge of the header
+        *      area.
+        * @param hover true if the label is being hovered over by the mouse.
+        */
+       virtual void paint_label(QPainter &p, int right, bool hover) = 0;
+
+       /**
+        * Computes the outline rectangle of a label.
+        * @param right the x-coordinate of the right edge of the header
+        *      area.
+        * @return Returns the rectangle of the signal label.
+        */
+       virtual QRectF label_rect(int right) const = 0;
+
+public:
+       virtual void hover_point_changed();
+
+protected:
+       pv::view::RowItemOwner *owner_;
+
+       int layout_v_offset_;
+       int visual_v_offset_;
+
+private:
+       QPropertyAnimation v_offset_animation_;
+};
+
+} // namespace view
+} // namespace pv
+
+#endif // PULSEVIEW_PV_VIEW_HEADERITEM_H
diff --git a/pv/view/rowitemiterator.h b/pv/view/rowitemiterator.h
deleted file mode 100644 (file)
index 178677a..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2014 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_VIEW_ROWITEMITERATOR_H
-#define PULSEVIEW_PV_VIEW_ROWITEMITERATOR_H
-
-#include <algorithm>
-#include <cassert>
-#include <iterator>
-#include <memory>
-#include <stack>
-#include <type_traits>
-#include <vector>
-
-#include <boost/thread.hpp>
-
-#include <pv/sigsession.h>
-
-namespace pv {
-namespace view {
-
-template<class Owner, class Item> class RowItemIterator
-{
-public:
-       typedef typename std::conditional<std::is_const<Owner>::value,
-               typename Owner::item_list::const_iterator,
-               typename Owner::item_list::iterator>::type child_iterator;
-
-       typedef std::shared_ptr<Item> value_type;
-       typedef ptrdiff_t difference_type;
-       typedef value_type pointer;
-       typedef value_type& reference;
-       typedef std::forward_iterator_tag iterator_category;
-
-public:
-       RowItemIterator(Owner *owner) :
-               owner_(owner),
-               lock_(owner->session().signals_mutex()) {}
-
-       RowItemIterator(Owner *owner, child_iterator iter) :
-               owner_(owner),
-               lock_(owner->session().signals_mutex()) {
-               assert(owner);
-               if (iter != owner->child_items().end())
-                       iter_stack_.push(iter);
-       }
-
-       RowItemIterator(const RowItemIterator<Owner, Item> &o) :
-               owner_(o.owner_),
-               lock_(*o.lock_.mutex()),
-               iter_stack_(o.iter_stack_) {}
-
-       reference operator*() const {
-               return *iter_stack_.top();
-       }
-
-       reference operator->() const {
-               return *this;
-       }
-
-       RowItemIterator<Owner, Item>& operator++() {
-               using std::dynamic_pointer_cast;
-               using std::shared_ptr;
-
-               assert(owner_);
-               assert(!iter_stack_.empty());
-
-               shared_ptr<Owner> owner(dynamic_pointer_cast<Owner>(
-                       *iter_stack_.top()));
-               if (owner && !owner->child_items().empty()) {
-                       owner_ = owner.get();
-                       iter_stack_.push(owner->child_items().begin());
-               } else {
-                       ++iter_stack_.top();
-                       while (owner_ && iter_stack_.top() ==
-                               owner_->child_items().end()) {
-                               iter_stack_.pop();
-                               owner_ = iter_stack_.empty() ? nullptr :
-                                       (*iter_stack_.top()++)->owner();
-                       }
-               }
-
-               return *this;
-       }
-
-       RowItemIterator<Owner, Item> operator++(int) {
-               RowItemIterator<Owner, Item> pre = *this;
-               ++*this;
-               return pre;
-       }
-
-       bool operator==(const RowItemIterator &o) const {
-               return (iter_stack_.empty() && o.iter_stack_.empty()) ||
-                       (owner_ == o.owner_ &&
-                       iter_stack_.size() == o.iter_stack_.size() &&
-                       std::equal(
-                               owner_->child_items().cbegin(),
-                               owner_->child_items().cend(),
-                               o.owner_->child_items().cbegin()));
-       }
-
-       bool operator!=(const RowItemIterator &o) const {
-               return !((const RowItemIterator&)*this == o);
-       }
-
-       void swap(RowItemIterator<Owner, Item>& other) {
-               swap(owner_, other.owner_);
-               swap(iter_stack_, other.iter_stack_);
-       }
-
-private:
-       Owner *owner_;
-       boost::shared_lock<boost::shared_mutex> lock_;
-       std::stack<child_iterator> iter_stack_;
-};
-
-template<class Owner, class Item>
-void swap(RowItemIterator<Owner, Item>& a, RowItemIterator<Owner, Item>& b)
-{
-       a.swap(b);
-}
-
-} // namespace view
-} // namespace pv
-
-#endif // PULSEVIEW_PV_VIEW_ROWITEMITERATOR_H
diff --git a/pv/view/rowitemiterator.hpp b/pv/view/rowitemiterator.hpp
new file mode 100644 (file)
index 0000000..110dc57
--- /dev/null
@@ -0,0 +1,143 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2014 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_VIEW_ROWITEMITERATOR_H
+#define PULSEVIEW_PV_VIEW_ROWITEMITERATOR_H
+
+#include <algorithm>
+#include <cassert>
+#include <iterator>
+#include <memory>
+#include <stack>
+#include <type_traits>
+#include <vector>
+
+#include <boost/thread.hpp>
+
+#include <pv/sigsession.hpp>
+
+namespace pv {
+namespace view {
+
+template<class Owner, class Item> class RowItemIterator
+{
+public:
+       typedef typename std::conditional<std::is_const<Owner>::value,
+               typename Owner::item_list::const_iterator,
+               typename Owner::item_list::iterator>::type child_iterator;
+
+       typedef std::shared_ptr<Item> value_type;
+       typedef ptrdiff_t difference_type;
+       typedef value_type pointer;
+       typedef value_type& reference;
+       typedef std::forward_iterator_tag iterator_category;
+
+public:
+       RowItemIterator(Owner *owner) :
+               owner_(owner),
+               lock_(owner->session().signals_mutex()) {}
+
+       RowItemIterator(Owner *owner, child_iterator iter) :
+               owner_(owner),
+               lock_(owner->session().signals_mutex()) {
+               assert(owner);
+               if (iter != owner->child_items().end())
+                       iter_stack_.push(iter);
+       }
+
+       RowItemIterator(const RowItemIterator<Owner, Item> &o) :
+               owner_(o.owner_),
+               lock_(*o.lock_.mutex()),
+               iter_stack_(o.iter_stack_) {}
+
+       reference operator*() const {
+               return *iter_stack_.top();
+       }
+
+       reference operator->() const {
+               return *this;
+       }
+
+       RowItemIterator<Owner, Item>& operator++() {
+               using std::dynamic_pointer_cast;
+               using std::shared_ptr;
+
+               assert(owner_);
+               assert(!iter_stack_.empty());
+
+               shared_ptr<Owner> owner(dynamic_pointer_cast<Owner>(
+                       *iter_stack_.top()));
+               if (owner && !owner->child_items().empty()) {
+                       owner_ = owner.get();
+                       iter_stack_.push(owner->child_items().begin());
+               } else {
+                       ++iter_stack_.top();
+                       while (owner_ && iter_stack_.top() ==
+                               owner_->child_items().end()) {
+                               iter_stack_.pop();
+                               owner_ = iter_stack_.empty() ? nullptr :
+                                       (*iter_stack_.top()++)->owner();
+                       }
+               }
+
+               return *this;
+       }
+
+       RowItemIterator<Owner, Item> operator++(int) {
+               RowItemIterator<Owner, Item> pre = *this;
+               ++*this;
+               return pre;
+       }
+
+       bool operator==(const RowItemIterator &o) const {
+               return (iter_stack_.empty() && o.iter_stack_.empty()) ||
+                       (owner_ == o.owner_ &&
+                       iter_stack_.size() == o.iter_stack_.size() &&
+                       std::equal(
+                               owner_->child_items().cbegin(),
+                               owner_->child_items().cend(),
+                               o.owner_->child_items().cbegin()));
+       }
+
+       bool operator!=(const RowItemIterator &o) const {
+               return !((const RowItemIterator&)*this == o);
+       }
+
+       void swap(RowItemIterator<Owner, Item>& other) {
+               swap(owner_, other.owner_);
+               swap(iter_stack_, other.iter_stack_);
+       }
+
+private:
+       Owner *owner_;
+       boost::shared_lock<boost::shared_mutex> lock_;
+       std::stack<child_iterator> iter_stack_;
+};
+
+template<class Owner, class Item>
+void swap(RowItemIterator<Owner, Item>& a, RowItemIterator<Owner, Item>& b)
+{
+       a.swap(b);
+}
+
+} // namespace view
+} // namespace pv
+
+#endif // PULSEVIEW_PV_VIEW_ROWITEMITERATOR_H
index 6f7cbb269663ecb36e9c61dec225051c945a8aea..625620ed0dbe2d074d82764cd6bbd47f3f8e0fed 100644 (file)
@@ -20,8 +20,8 @@
 
 #include <cassert>
 
-#include "rowitem.h"
-#include "rowitemowner.h"
+#include "rowitem.hpp"
+#include "rowitemowner.hpp"
 
 using std::max;
 using std::make_pair;
diff --git a/pv/view/rowitemowner.h b/pv/view/rowitemowner.h
deleted file mode 100644 (file)
index 3c568da..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2014 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_VIEW_ROWITEMOWNER_H
-#define PULSEVIEW_PV_VIEW_ROWITEMOWNER_H
-
-#include <memory>
-#include <vector>
-
-#include "rowitemiterator.h"
-
-namespace pv {
-
-class SigSession;
-
-namespace view {
-
-class RowItem;
-class View;
-
-class RowItemOwner
-{
-public:
-       typedef std::vector< std::shared_ptr<RowItem> > item_list;
-       typedef RowItemIterator<RowItemOwner, RowItem> iterator;
-       typedef RowItemIterator<const RowItemOwner, RowItem> const_iterator;
-
-public:
-       /**
-        * Returns the session of the onwer.
-        */
-       virtual pv::SigSession& session() = 0;
-
-       /**
-        * Returns the session of the owner.
-        */
-       virtual const pv::SigSession& session() const = 0;
-
-       /**
-        * Returns the view of the owner.
-        */
-       virtual pv::view::View* view() = 0;
-
-       /**
-        * Returns the view of the owner.
-        */
-       virtual const pv::view::View* view() const = 0;
-
-       virtual int owner_visual_v_offset() const = 0;
-
-       /**
-        * Returns the number of nested parents that this row item owner has.
-        */
-       virtual unsigned int depth() const = 0;
-
-       /**
-        * Returns a list of row items owned by this object.
-        */
-       virtual item_list& child_items();
-
-       /**
-        * Returns a list of row items owned by this object.
-        */
-       virtual const item_list& child_items() const;
-
-       /**
-        * Clears the list of child items.
-        */
-       void clear_child_items();
-
-       /**
-        * Adds a child item to this object.
-        */
-       void add_child_item(std::shared_ptr<RowItem> item);
-
-       /**
-        * Removes a child item from this object.
-        */
-       void remove_child_item(std::shared_ptr<RowItem> item);
-
-       /**
-        * Returns a depth-first iterator at the beginning of the child RowItem
-        * tree.
-        */
-       iterator begin();
-
-       /**
-        * Returns a depth-first iterator at the end of the child RowItem tree.
-        */
-       iterator end();
-
-       /**
-        * Returns a constant depth-first iterator at the beginning of the
-        * child RowItem tree.
-        */
-       const_iterator begin() const;
-
-       /**
-        * Returns a constant depth-first iterator at the end of the child
-        * RowItem tree.
-        */
-       const_iterator end() const;
-
-       /**
-        * Computes the vertical extents of the contents of this row item owner.
-        * @return A pair containing the minimum and maximum y-values.
-        */
-       std::pair<int, int> v_extents() const;
-
-       virtual void restack_items();
-
-public:
-       virtual void appearance_changed(bool label, bool content) = 0;
-
-       virtual void extents_changed(bool horz, bool vert) = 0;
-
-private:
-       item_list items_;
-};
-
-} // view
-} // pv
-
-#endif // PULSEVIEW_PV_VIEW_ROWITEMOWNER_H
diff --git a/pv/view/rowitemowner.hpp b/pv/view/rowitemowner.hpp
new file mode 100644 (file)
index 0000000..8c63aa5
--- /dev/null
@@ -0,0 +1,141 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2014 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_VIEW_ROWITEMOWNER_H
+#define PULSEVIEW_PV_VIEW_ROWITEMOWNER_H
+
+#include <memory>
+#include <vector>
+
+#include "rowitemiterator.hpp"
+
+namespace pv {
+
+class SigSession;
+
+namespace view {
+
+class RowItem;
+class View;
+
+class RowItemOwner
+{
+public:
+       typedef std::vector< std::shared_ptr<RowItem> > item_list;
+       typedef RowItemIterator<RowItemOwner, RowItem> iterator;
+       typedef RowItemIterator<const RowItemOwner, RowItem> const_iterator;
+
+public:
+       /**
+        * Returns the session of the onwer.
+        */
+       virtual pv::SigSession& session() = 0;
+
+       /**
+        * Returns the session of the owner.
+        */
+       virtual const pv::SigSession& session() const = 0;
+
+       /**
+        * Returns the view of the owner.
+        */
+       virtual pv::view::View* view() = 0;
+
+       /**
+        * Returns the view of the owner.
+        */
+       virtual const pv::view::View* view() const = 0;
+
+       virtual int owner_visual_v_offset() const = 0;
+
+       /**
+        * Returns the number of nested parents that this row item owner has.
+        */
+       virtual unsigned int depth() const = 0;
+
+       /**
+        * Returns a list of row items owned by this object.
+        */
+       virtual item_list& child_items();
+
+       /**
+        * Returns a list of row items owned by this object.
+        */
+       virtual const item_list& child_items() const;
+
+       /**
+        * Clears the list of child items.
+        */
+       void clear_child_items();
+
+       /**
+        * Adds a child item to this object.
+        */
+       void add_child_item(std::shared_ptr<RowItem> item);
+
+       /**
+        * Removes a child item from this object.
+        */
+       void remove_child_item(std::shared_ptr<RowItem> item);
+
+       /**
+        * Returns a depth-first iterator at the beginning of the child RowItem
+        * tree.
+        */
+       iterator begin();
+
+       /**
+        * Returns a depth-first iterator at the end of the child RowItem tree.
+        */
+       iterator end();
+
+       /**
+        * Returns a constant depth-first iterator at the beginning of the
+        * child RowItem tree.
+        */
+       const_iterator begin() const;
+
+       /**
+        * Returns a constant depth-first iterator at the end of the child
+        * RowItem tree.
+        */
+       const_iterator end() const;
+
+       /**
+        * Computes the vertical extents of the contents of this row item owner.
+        * @return A pair containing the minimum and maximum y-values.
+        */
+       std::pair<int, int> v_extents() const;
+
+       virtual void restack_items();
+
+public:
+       virtual void appearance_changed(bool label, bool content) = 0;
+
+       virtual void extents_changed(bool horz, bool vert) = 0;
+
+private:
+       item_list items_;
+};
+
+} // view
+} // pv
+
+#endif // PULSEVIEW_PV_VIEW_ROWITEMOWNER_H
index d3e42df6a2fb24573a7b7a55e819ed4b559ecc91..56651169afee06f96813d2625475e0d717add254 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include "ruler.h"
+#include "ruler.hpp"
 
-#include "view.h"
-#include "pv/util.h"
+#include "view.hpp"
+#include "pv/util.hpp"
 
 #include <extdef.h>
 
diff --git a/pv/view/ruler.h b/pv/view/ruler.h
deleted file mode 100644 (file)
index 00fac24..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_VIEW_RULER_H
-#define PULSEVIEW_PV_VIEW_RULER_H
-
-#include <memory>
-
-#include "marginwidget.h"
-
-namespace pv {
-namespace view {
-
-class Ruler : public MarginWidget
-{
-       Q_OBJECT
-
-private:
-       static const int RulerHeight;
-       static const int MinorTickSubdivision;
-       static const int ScaleUnits[3];
-
-       static const int HoverArrowSize;
-
-public:
-       Ruler(View &parent);
-
-       /**
-        * Find a tick spacing and number formatting that does not cause
-        * the values to collide.
-        * @param p A QPainter used to determine the needed space for the values.
-        * @param scale A pv::view::View's scale.
-        * @param offset A pv::view::View's offset.
-        *
-        * @return The tick period to use in 'first' and the prefix in 'second'.
-        */
-       static std::pair<double, unsigned int> calculate_tick_spacing(
-               QPainter& p, double scale, double offset);
-
-public:
-       QSize sizeHint() const;
-
-private:
-       void paintEvent(QPaintEvent *event);
-
-private:
-       /**
-        * Draw a hover arrow under the cursor position.
-        */
-       void draw_hover_mark(QPainter &p);
-
-private Q_SLOTS:
-       void hover_point_changed();
-};
-
-} // namespace view
-} // namespace pv
-
-#endif // PULSEVIEW_PV_VIEW_RULER_H
diff --git a/pv/view/ruler.hpp b/pv/view/ruler.hpp
new file mode 100644 (file)
index 0000000..438b862
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_VIEW_RULER_H
+#define PULSEVIEW_PV_VIEW_RULER_H
+
+#include <memory>
+
+#include "marginwidget.hpp"
+
+namespace pv {
+namespace view {
+
+class Ruler : public MarginWidget
+{
+       Q_OBJECT
+
+private:
+       static const int RulerHeight;
+       static const int MinorTickSubdivision;
+       static const int ScaleUnits[3];
+
+       static const int HoverArrowSize;
+
+public:
+       Ruler(View &parent);
+
+       /**
+        * Find a tick spacing and number formatting that does not cause
+        * the values to collide.
+        * @param p A QPainter used to determine the needed space for the values.
+        * @param scale A pv::view::View's scale.
+        * @param offset A pv::view::View's offset.
+        *
+        * @return The tick period to use in 'first' and the prefix in 'second'.
+        */
+       static std::pair<double, unsigned int> calculate_tick_spacing(
+               QPainter& p, double scale, double offset);
+
+public:
+       QSize sizeHint() const;
+
+private:
+       void paintEvent(QPaintEvent *event);
+
+private:
+       /**
+        * Draw a hover arrow under the cursor position.
+        */
+       void draw_hover_mark(QPainter &p);
+
+private Q_SLOTS:
+       void hover_point_changed();
+};
+
+} // namespace view
+} // namespace pv
+
+#endif // PULSEVIEW_PV_VIEW_RULER_H
index 5987b3ec457c4b6c40dccc07393eaf48ec517040..b699005f4374a1e2bce16ecd872f033ae691c9ee 100644 (file)
@@ -18,7 +18,7 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include "selectableitem.h"
+#include "selectableitem.hpp"
 
 #include <climits>
 
diff --git a/pv/view/selectableitem.h b/pv/view/selectableitem.h
deleted file mode 100644 (file)
index 36ff0db..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_SELECTABLEITEM_H
-#define PULSEVIEW_PV_SELECTABLEITEM_H
-
-#include <list>
-
-#include <QPen>
-
-class QAction;
-class QMenu;
-class QWidget;
-
-namespace pv {
-
-namespace widgets {
-class Popup;
-}
-
-namespace view {
-
-class SelectableItem : public QObject
-{
-       Q_OBJECT
-
-private:
-       static const int HighlightRadius;
-
-public:
-       SelectableItem();
-
-public:
-       /**
-        * Returns true if the item has been selected by the user.
-        */
-       bool selected() const;
-
-       /**
-        * Selects or deselects the signal.
-        */
-       void select(bool select = true);
-
-       /**
-        * Returns true if the item is being dragged.
-        */
-       bool dragging() const;
-
-       /**
-        * Retunrns the current drag point.
-        */
-       QPoint drag_point() const;
-
-       /**
-        * Sets this item into the dragged state.
-        */
-       void drag();
-
-       /**
-        * Sets this item into the un-dragged state.
-        */
-       void drag_release();
-
-       /**
-        * Get the drag point.
-        */
-       virtual QPoint point() const = 0;
-
-public:
-       virtual QMenu* create_context_menu(QWidget *parent);
-
-       virtual pv::widgets::Popup* create_popup(QWidget *parent) = 0;
-
-       virtual void delete_pressed();
-
-protected:
-       static QPen highlight_pen();
-
-protected:
-       QWidget *context_parent_;
-
-private:
-       bool selected_;
-       QPoint drag_point_;
-};
-
-} // namespace view
-} // namespace pv
-
-#endif // PULSEVIEW_PV_SELECTABLEITEM_H
diff --git a/pv/view/selectableitem.hpp b/pv/view/selectableitem.hpp
new file mode 100644 (file)
index 0000000..36ff0db
--- /dev/null
@@ -0,0 +1,107 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_SELECTABLEITEM_H
+#define PULSEVIEW_PV_SELECTABLEITEM_H
+
+#include <list>
+
+#include <QPen>
+
+class QAction;
+class QMenu;
+class QWidget;
+
+namespace pv {
+
+namespace widgets {
+class Popup;
+}
+
+namespace view {
+
+class SelectableItem : public QObject
+{
+       Q_OBJECT
+
+private:
+       static const int HighlightRadius;
+
+public:
+       SelectableItem();
+
+public:
+       /**
+        * Returns true if the item has been selected by the user.
+        */
+       bool selected() const;
+
+       /**
+        * Selects or deselects the signal.
+        */
+       void select(bool select = true);
+
+       /**
+        * Returns true if the item is being dragged.
+        */
+       bool dragging() const;
+
+       /**
+        * Retunrns the current drag point.
+        */
+       QPoint drag_point() const;
+
+       /**
+        * Sets this item into the dragged state.
+        */
+       void drag();
+
+       /**
+        * Sets this item into the un-dragged state.
+        */
+       void drag_release();
+
+       /**
+        * Get the drag point.
+        */
+       virtual QPoint point() const = 0;
+
+public:
+       virtual QMenu* create_context_menu(QWidget *parent);
+
+       virtual pv::widgets::Popup* create_popup(QWidget *parent) = 0;
+
+       virtual void delete_pressed();
+
+protected:
+       static QPen highlight_pen();
+
+protected:
+       QWidget *context_parent_;
+
+private:
+       bool selected_;
+       QPoint drag_point_;
+};
+
+} // namespace view
+} // namespace pv
+
+#endif // PULSEVIEW_PV_SELECTABLEITEM_H
index 916801c97eceb17c67ec8c54c423065b0f73ab42..35e1cdbfc840b1bb8e5fde6178f7dbfafc26b09e 100644 (file)
@@ -31,8 +31,8 @@
 
 #include <libsigrok/libsigrok.hpp>
 
-#include "signal.h"
-#include "view.h"
+#include "signal.hpp"
+#include "view.hpp"
 
 using std::shared_ptr;
 
diff --git a/pv/view/signal.h b/pv/view/signal.h
deleted file mode 100644 (file)
index b3b591b..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-#ifndef PULSEVIEW_PV_VIEW_SIGNAL_H
-#define PULSEVIEW_PV_VIEW_SIGNAL_H
-
-#include <memory>
-
-#include <QComboBox>
-#include <QWidgetAction>
-
-#include <stdint.h>
-
-#include "trace.h"
-
-namespace sigrok {
-       class Channel;
-}
-
-namespace pv {
-
-class SigSession;
-
-namespace data {
-class SignalData;
-}
-
-namespace view {
-
-class Signal : public Trace
-{
-       Q_OBJECT
-
-protected:
-       Signal(pv::SigSession &session,
-               std::shared_ptr<sigrok::Channel> channel);
-
-public:
-       /**
-        * Sets the name of the signal.
-        */
-       void set_name(QString name);
-
-       virtual std::shared_ptr<pv::data::SignalData> data() const = 0;
-
-       /**
-        * Returns true if the trace is visible and enabled.
-        */
-       bool enabled() const;
-
-       void enable(bool enable = true);
-
-       std::shared_ptr<sigrok::Channel> channel() const;
-
-       virtual void populate_popup_form(QWidget *parent, QFormLayout *form);
-
-       QMenu* create_context_menu(QWidget *parent);
-
-       void delete_pressed();
-
-private Q_SLOTS:
-       void on_disable();
-
-protected:
-       pv::SigSession &session_;
-       std::shared_ptr<sigrok::Channel> channel_;
-
-       QComboBox *name_widget_;
-       bool updating_name_widget_;
-};
-
-} // namespace view
-} // namespace pv
-
-#endif // PULSEVIEW_PV_VIEW_SIGNAL_H
diff --git a/pv/view/signal.hpp b/pv/view/signal.hpp
new file mode 100644 (file)
index 0000000..dd3af0b
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef PULSEVIEW_PV_VIEW_SIGNAL_H
+#define PULSEVIEW_PV_VIEW_SIGNAL_H
+
+#include <memory>
+
+#include <QComboBox>
+#include <QWidgetAction>
+
+#include <stdint.h>
+
+#include "trace.hpp"
+
+namespace sigrok {
+       class Channel;
+}
+
+namespace pv {
+
+class SigSession;
+
+namespace data {
+class SignalData;
+}
+
+namespace view {
+
+class Signal : public Trace
+{
+       Q_OBJECT
+
+protected:
+       Signal(pv::SigSession &session,
+               std::shared_ptr<sigrok::Channel> channel);
+
+public:
+       /**
+        * Sets the name of the signal.
+        */
+       void set_name(QString name);
+
+       virtual std::shared_ptr<pv::data::SignalData> data() const = 0;
+
+       /**
+        * Returns true if the trace is visible and enabled.
+        */
+       bool enabled() const;
+
+       void enable(bool enable = true);
+
+       std::shared_ptr<sigrok::Channel> channel() const;
+
+       virtual void populate_popup_form(QWidget *parent, QFormLayout *form);
+
+       QMenu* create_context_menu(QWidget *parent);
+
+       void delete_pressed();
+
+private Q_SLOTS:
+       void on_disable();
+
+protected:
+       pv::SigSession &session_;
+       std::shared_ptr<sigrok::Channel> channel_;
+
+       QComboBox *name_widget_;
+       bool updating_name_widget_;
+};
+
+} // namespace view
+} // namespace pv
+
+#endif // PULSEVIEW_PV_VIEW_SIGNAL_H
index 105bbc143cdfef465a6586e5ff54f92bf7d1fdf7..5196613bd443e375bcd8030b1116003ed4bd3fda 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */