]> sigrok.org Git - pulseview.git/blobdiff - pv/data/logic.cpp
SignalData: Added snapshots accessor method
[pulseview.git] / pv / data / logic.cpp
index c62a2f2e3ad693833b1a55dbac3977d72c62deb5..96f0d1fe7e63afe40bd8a23f8124eae698ab413d 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include "logic.h"
-#include "logicsnapshot.h"
+#include <cassert>
 
-using namespace boost;
-using namespace std;
+#include "logic.hpp"
+#include "logicsnapshot.hpp"
+
+using std::deque;
+using std::max;
+using std::shared_ptr;
+using std::vector;
 
 namespace pv {
 namespace data {
 
-Logic::Logic(unsigned int num_probes) :
+Logic::Logic(unsigned int num_channels) :
        SignalData(),
-       _num_probes(num_probes)
+       num_channels_(num_channels)
 {
-       assert(_num_probes > 0);
+       assert(num_channels_ > 0);
 }
 
-int Logic::get_num_probes() const
+int Logic::get_num_channels() const
 {
-       return _num_probes;
+       return num_channels_;
 }
 
 void Logic::push_snapshot(
        shared_ptr<LogicSnapshot> &snapshot)
 {
-       _snapshots.push_front(snapshot);
+       snapshots_.push_front(snapshot);
+}
+
+const deque< shared_ptr<LogicSnapshot> >& Logic::logic_snapshots() const
+{
+       return snapshots_;
+}
+
+vector< shared_ptr<Snapshot> > Logic::snapshots() const
+{
+       return vector< shared_ptr<Snapshot> >(
+               snapshots_.begin(), snapshots_.end());
 }
 
-deque< shared_ptr<LogicSnapshot> >& Logic::get_snapshots()
+void Logic::clear()
 {
-       return _snapshots;
+       snapshots_.clear();
 }
 
-void Logic::clear_snapshots()
+uint64_t Logic::get_max_sample_count() const
 {
-       _snapshots.clear();
+       uint64_t l = 0;
+       for (std::shared_ptr<LogicSnapshot> s : snapshots_) {
+               assert(s);
+               l = max(l, s->get_sample_count());
+       }
+       return l;
 }
 
 } // namespace data