]> sigrok.org Git - pulseview.git/blobdiff - sigsession.h
Parse logic signals
[pulseview.git] / sigsession.h
index 47f37a10fa8e5680a9a61bde5d448d9fc07c95ac..a08ba8129914ae0f61c6031d28b858a32cd0b1d0 100644 (file)
 #ifndef SIGSESSION_H
 #define SIGSESSION_H
 
+#include <boost/shared_ptr.hpp>
+
+#include <string>
+#include <vector>
+
+#include <QObject>
+
 extern "C" {
 #include <libsigrok/libsigrok.h>
 }
 
-#include <string>
+class LogicData;
+class LogicDataSnapshot;
+class Signal;
 
-class SigSession
+class SigSession : public QObject
 {
+       Q_OBJECT
+
 public:
        SigSession();
 
@@ -36,6 +47,9 @@ public:
 
        void loadFile(const std::string &name);
 
+       std::vector< boost::shared_ptr<Signal> >&
+               get_signals();
+
 private:
        void dataFeedIn(const struct sr_dev_inst *sdi,
                struct sr_datafeed_packet *packet);
@@ -44,7 +58,12 @@ private:
                struct sr_datafeed_packet *packet);
 
 private:
-       int probeList[SR_MAX_NUM_PROBES + 1];
+       std::vector< boost::shared_ptr<Signal> > _signals;
+       boost::shared_ptr<LogicData> _logic_data;
+       boost::shared_ptr<LogicDataSnapshot> _cur_logic_snapshot;
+
+signals:
+       void dataUpdated();
 
 private:
        // TODO: This should not be necessary. Multiple concurrent