From 1b1ec774978b65209ce2b454cbf81da499b797d2 Mon Sep 17 00:00:00 2001 From: Joel Holdsworth Date: Thu, 20 Dec 2012 21:34:43 +0000 Subject: [PATCH] Moved data and snapshot classes into pv::data namespace --- CMakeLists.txt | 12 +- pv/{analogdata.cpp => data/analog.cpp} | 13 ++- pv/{analogdata.h => data/analog.h} | 21 ++-- .../analogsnapshot.cpp} | 13 ++- .../analogsnapshot.h} | 14 ++- pv/{logicdata.cpp => data/logic.cpp} | 16 +-- pv/{logicdata.h => data/logic.h} | 21 ++-- .../logicsnapshot.cpp} | 33 +++--- .../logicsnapshot.h} | 28 ++--- pv/{ => data}/signaldata.cpp | 2 + pv/{ => data}/signaldata.h | 8 +- pv/{datasnapshot.cpp => data/snapshot.cpp} | 12 +- pv/{datasnapshot.h => data/snapshot.h} | 14 ++- pv/sigsession.cpp | 26 ++--- pv/sigsession.h | 20 ++-- pv/view/analogsignal.cpp | 10 +- pv/view/analogsignal.h | 8 +- pv/view/logicsignal.cpp | 14 +-- pv/view/logicsignal.h | 8 +- pv/view/signal.h | 2 + pv/view/view.cpp | 14 +-- test/CMakeLists.txt | 6 +- .../logicsnapshot.cpp} | 110 +++++++++--------- 23 files changed, 226 insertions(+), 199 deletions(-) rename pv/{analogdata.cpp => data/analog.cpp} (79%) rename pv/{analogdata.h => data/analog.h} (73%) rename pv/{analogdatasnapshot.cpp => data/analogsnapshot.cpp} (84%) rename pv/{analogdatasnapshot.h => data/analogsnapshot.h} (78%) rename pv/{logicdata.cpp => data/logic.cpp} (78%) rename pv/{logicdata.h => data/logic.h} (72%) rename pv/{logicdatasnapshot.cpp => data/logicsnapshot.cpp} (91%) rename pv/{logicdatasnapshot.h => data/logicsnapshot.h} (81%) rename pv/{ => data}/signaldata.cpp (96%) rename pv/{ => data}/signaldata.h (87%) rename pv/{datasnapshot.cpp => data/snapshot.cpp} (87%) rename pv/{datasnapshot.h => data/snapshot.h} (84%) rename test/{logicdatasnapshot.cpp => data/logicsnapshot.cpp} (79%) diff --git a/CMakeLists.txt b/CMakeLists.txt index e1893b6c..e9ae0e76 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -80,15 +80,15 @@ configure_file ( set(pulseview_SOURCES main.cpp - pv/analogdata.cpp - pv/analogdatasnapshot.cpp - pv/datasnapshot.cpp - pv/logicdata.cpp - pv/logicdatasnapshot.cpp pv/mainwindow.cpp pv/samplingbar.cpp - pv/signaldata.cpp pv/sigsession.cpp + pv/data/analog.cpp + pv/data/analogsnapshot.cpp + pv/data/logic.cpp + pv/data/logicsnapshot.cpp + pv/data/signaldata.cpp + pv/data/snapshot.cpp pv/dialogs/about.cpp pv/view/analogsignal.cpp pv/view/cursor.cpp diff --git a/pv/analogdata.cpp b/pv/data/analog.cpp similarity index 79% rename from pv/analogdata.cpp rename to pv/data/analog.cpp index 8cfa7a69..9e43e866 100644 --- a/pv/analogdata.cpp +++ b/pv/data/analog.cpp @@ -18,29 +18,30 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "analogdata.h" -#include "analogdatasnapshot.h" +#include "analog.h" +#include "analogsnapshot.h" using namespace boost; using namespace std; namespace pv { +namespace data { -AnalogData::AnalogData(const sr_datafeed_meta_analog &meta, +Analog::Analog(const sr_datafeed_meta_analog &meta, uint64_t samplerate) : SignalData(samplerate) { } -void AnalogData::push_snapshot( - boost::shared_ptr &snapshot) +void Analog::push_snapshot(shared_ptr &snapshot) { _snapshots.push_front(snapshot); } -deque< shared_ptr >& AnalogData::get_snapshots() +deque< shared_ptr >& Analog::get_snapshots() { return _snapshots; } +} // namespace data } // namespace pv diff --git a/pv/analogdata.h b/pv/data/analog.h similarity index 73% rename from pv/analogdata.h rename to pv/data/analog.h index e1c4ee62..2e2ade69 100644 --- a/pv/analogdata.h +++ b/pv/data/analog.h @@ -18,8 +18,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef PULSEVIEW_PV_ANALOGDATA_H -#define PULSEVIEW_PV_ANALOGDATA_H +#ifndef PULSEVIEW_PV_DATA_ANALOG_H +#define PULSEVIEW_PV_DATA_ANALOG_H #include "signaldata.h" @@ -31,26 +31,27 @@ extern "C" { } namespace pv { +namespace data { -class AnalogDataSnapshot; +class AnalogSnapshot; -class AnalogData : public SignalData +class Analog : public SignalData { public: - AnalogData(const sr_datafeed_meta_analog &meta, + Analog(const sr_datafeed_meta_analog &meta, uint64_t samplerate); void push_snapshot( - boost::shared_ptr &snapshot); + boost::shared_ptr &snapshot); - std::deque< boost::shared_ptr >& + std::deque< boost::shared_ptr >& get_snapshots(); private: - std::deque< boost::shared_ptr > - _snapshots; + std::deque< boost::shared_ptr > _snapshots; }; +} // namespace data } // namespace pv -#endif // PULSEVIEW_PV_ANALOGDATA_H +#endif // PULSEVIEW_PV_DATA_ANALOG_H diff --git a/pv/analogdatasnapshot.cpp b/pv/data/analogsnapshot.cpp similarity index 84% rename from pv/analogdatasnapshot.cpp rename to pv/data/analogsnapshot.cpp index c66e9b9c..2bcb99f3 100644 --- a/pv/analogdatasnapshot.cpp +++ b/pv/data/analogsnapshot.cpp @@ -27,31 +27,32 @@ #include -#include "analogdatasnapshot.h" +#include "analogsnapshot.h" using namespace boost; using namespace std; namespace pv { +namespace data { -AnalogDataSnapshot::AnalogDataSnapshot( - const sr_datafeed_analog &analog) : - DataSnapshot(sizeof(float)) +AnalogSnapshot::AnalogSnapshot(const sr_datafeed_analog &analog) : + Snapshot(sizeof(float)) { lock_guard lock(_mutex); append_payload(analog); } -void AnalogDataSnapshot::append_payload( +void AnalogSnapshot::append_payload( const sr_datafeed_analog &analog) { lock_guard lock(_mutex); append_data(analog.data, analog.num_samples); } -const float* AnalogDataSnapshot::get_samples() const +const float* AnalogSnapshot::get_samples() const { return (const float*)_data; } +} // namespace data } // namespace pv diff --git a/pv/analogdatasnapshot.h b/pv/data/analogsnapshot.h similarity index 78% rename from pv/analogdatasnapshot.h rename to pv/data/analogsnapshot.h index ce8a99da..9ca08f1e 100644 --- a/pv/analogdatasnapshot.h +++ b/pv/data/analogsnapshot.h @@ -18,26 +18,28 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef PULSEVIEW_PV_ANALOGDATASNAPSHOT_H -#define PULSEVIEW_PV_ANALOGDATASNAPSHOT_H +#ifndef PULSEVIEW_PV_DATA_ANALOGSNAPSHOT_H +#define PULSEVIEW_PV_DATA_ANALOGSNAPSHOT_H -#include "datasnapshot.h" +#include "snapshot.h" #include #include namespace pv { +namespace data { -class AnalogDataSnapshot : public DataSnapshot +class AnalogSnapshot : public Snapshot { public: - AnalogDataSnapshot(const sr_datafeed_analog &analog); + AnalogSnapshot(const sr_datafeed_analog &analog); void append_payload(const sr_datafeed_analog &analog); const float* get_samples() const; }; +} // namespace data } // namespace pv -#endif // PULSEVIEW_PV_ANALOGDATASNAPSHOT_H +#endif // PULSEVIEW_PV_DATA_ANALOGSNAPSHOT_H diff --git a/pv/logicdata.cpp b/pv/data/logic.cpp similarity index 78% rename from pv/logicdata.cpp rename to pv/data/logic.cpp index 492961fb..7b42e474 100644 --- a/pv/logicdata.cpp +++ b/pv/data/logic.cpp @@ -18,35 +18,37 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "logicdata.h" -#include "logicdatasnapshot.h" +#include "logic.h" +#include "logicsnapshot.h" using namespace boost; using namespace std; namespace pv { +namespace data { -LogicData::LogicData(const sr_datafeed_meta_logic &meta, +Logic::Logic(const sr_datafeed_meta_logic &meta, uint64_t samplerate) : SignalData(samplerate), _num_probes(meta.num_probes) { } -int LogicData::get_num_probes() const +int Logic::get_num_probes() const { return _num_probes; } -void LogicData::push_snapshot( - boost::shared_ptr &snapshot) +void Logic::push_snapshot( + shared_ptr &snapshot) { _snapshots.push_front(snapshot); } -deque< shared_ptr >& LogicData::get_snapshots() +deque< shared_ptr >& Logic::get_snapshots() { return _snapshots; } +} // namespace data } // namespace pv diff --git a/pv/logicdata.h b/pv/data/logic.h similarity index 72% rename from pv/logicdata.h rename to pv/data/logic.h index af1d32ee..4b70b8f9 100644 --- a/pv/logicdata.h +++ b/pv/data/logic.h @@ -18,8 +18,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef PULSEVIEW_PV_LOGICDATA_H -#define PULSEVIEW_PV_LOGICDATA_H +#ifndef PULSEVIEW_PV_DATA_LOGIC_H +#define PULSEVIEW_PV_DATA_LOGIC_H #include "signaldata.h" @@ -31,28 +31,29 @@ extern "C" { } namespace pv { +namespace data { -class LogicDataSnapshot; +class LogicSnapshot; -class LogicData : public SignalData +class Logic : public SignalData { public: - LogicData(const sr_datafeed_meta_logic &meta, uint64_t samplerate); + Logic(const sr_datafeed_meta_logic &meta, uint64_t samplerate); int get_num_probes() const; void push_snapshot( - boost::shared_ptr &snapshot); + boost::shared_ptr &snapshot); - std::deque< boost::shared_ptr >& + std::deque< boost::shared_ptr >& get_snapshots(); private: const int _num_probes; - std::deque< boost::shared_ptr > - _snapshots; + std::deque< boost::shared_ptr > _snapshots; }; +} // namespace data } // namespace pv -#endif // PULSEVIEW_PV_LOGICDATA_H +#endif // PULSEVIEW_PV_DATA_LOGIC_H diff --git a/pv/logicdatasnapshot.cpp b/pv/data/logicsnapshot.cpp similarity index 91% rename from pv/logicdatasnapshot.cpp rename to pv/data/logicsnapshot.cpp index bd2404a6..03e6a54f 100644 --- a/pv/logicdatasnapshot.cpp +++ b/pv/data/logicsnapshot.cpp @@ -27,21 +27,21 @@ #include -#include "logicdatasnapshot.h" +#include "logicsnapshot.h" using namespace boost; using namespace std; namespace pv { +namespace data { -const int LogicDataSnapshot::MipMapScalePower = 4; -const int LogicDataSnapshot::MipMapScaleFactor = 1 << MipMapScalePower; -const float LogicDataSnapshot::LogMipMapScaleFactor = logf(MipMapScaleFactor); -const uint64_t LogicDataSnapshot::MipMapDataUnit = 64*1024; // bytes +const int LogicSnapshot::MipMapScalePower = 4; +const int LogicSnapshot::MipMapScaleFactor = 1 << MipMapScalePower; +const float LogicSnapshot::LogMipMapScaleFactor = logf(MipMapScaleFactor); +const uint64_t LogicSnapshot::MipMapDataUnit = 64*1024; // bytes -LogicDataSnapshot::LogicDataSnapshot( - const sr_datafeed_logic &logic) : - DataSnapshot(logic.unitsize), +LogicSnapshot::LogicSnapshot(const sr_datafeed_logic &logic) : + Snapshot(logic.unitsize), _last_append_sample(0) { lock_guard lock(_mutex); @@ -49,14 +49,14 @@ LogicDataSnapshot::LogicDataSnapshot( append_payload(logic); } -LogicDataSnapshot::~LogicDataSnapshot() +LogicSnapshot::~LogicSnapshot() { lock_guard lock(_mutex); BOOST_FOREACH(MipMapLevel &l, _mip_map) free(l.data); } -void LogicDataSnapshot::append_payload( +void LogicSnapshot::append_payload( const sr_datafeed_logic &logic) { assert(_unit_size == logic.unitsize); @@ -69,7 +69,7 @@ void LogicDataSnapshot::append_payload( append_payload_to_mipmap(); } -void LogicDataSnapshot::reallocate_mip_map(MipMapLevel &m) +void LogicSnapshot::reallocate_mip_map(MipMapLevel &m) { const uint64_t new_data_length = ((m.length + MipMapDataUnit - 1) / MipMapDataUnit) * MipMapDataUnit; @@ -80,7 +80,7 @@ void LogicDataSnapshot::reallocate_mip_map(MipMapLevel &m) } } -void LogicDataSnapshot::append_payload_to_mipmap() +void LogicSnapshot::append_payload_to_mipmap() { MipMapLevel &m0 = _mip_map[0]; uint64_t prev_length; @@ -164,7 +164,7 @@ void LogicDataSnapshot::append_payload_to_mipmap() } } -uint64_t LogicDataSnapshot::get_sample(uint64_t index) const +uint64_t LogicSnapshot::get_sample(uint64_t index) const { assert(_data); assert(index >= 0 && index < _sample_count); @@ -172,7 +172,7 @@ uint64_t LogicDataSnapshot::get_sample(uint64_t index) const return *(uint64_t*)((uint8_t*)_data + index * _unit_size); } -void LogicDataSnapshot::get_subsampled_edges( +void LogicSnapshot::get_subsampled_edges( std::vector &edges, uint64_t start, uint64_t end, float min_length, int sig_index) @@ -348,7 +348,7 @@ void LogicDataSnapshot::get_subsampled_edges( get_sample(end) & sig_mask)); } -uint64_t LogicDataSnapshot::get_subsample(int level, uint64_t offset) const +uint64_t LogicSnapshot::get_subsample(int level, uint64_t offset) const { assert(level >= 0); assert(_mip_map[level].data); @@ -356,10 +356,11 @@ uint64_t LogicDataSnapshot::get_subsample(int level, uint64_t offset) const _unit_size * offset); } -uint64_t LogicDataSnapshot::pow2_ceil(uint64_t x, unsigned int power) +uint64_t LogicSnapshot::pow2_ceil(uint64_t x, unsigned int power) { const uint64_t p = 1 << power; return (x + p - 1) / p * p; } +} // namespace data } // namespace pv diff --git a/pv/logicdatasnapshot.h b/pv/data/logicsnapshot.h similarity index 81% rename from pv/logicdatasnapshot.h rename to pv/data/logicsnapshot.h index 63680200..8a851ac2 100644 --- a/pv/logicdatasnapshot.h +++ b/pv/data/logicsnapshot.h @@ -18,15 +18,15 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef PULSEVIEW_PV_LOGICDATASNAPSHOT_H -#define PULSEVIEW_PV_LOGICDATASNAPSHOT_H +#ifndef PULSEVIEW_PV_DATA_LOGICSNAPSHOT_H +#define PULSEVIEW_PV_DATA_LOGICSNAPSHOT_H -#include "datasnapshot.h" +#include "snapshot.h" #include #include -namespace LogicDataSnapshotTest { +namespace LogicSnapshotTest { class Pow2; class Basic; class LargeData; @@ -35,8 +35,9 @@ namespace LogicDataSnapshotTest { } namespace pv { +namespace data { -class LogicDataSnapshot : public DataSnapshot +class LogicSnapshot : public Snapshot { private: struct MipMapLevel @@ -57,9 +58,9 @@ public: typedef std::pair EdgePair; public: - LogicDataSnapshot(const sr_datafeed_logic &logic); + LogicSnapshot(const sr_datafeed_logic &logic); - virtual ~LogicDataSnapshot(); + virtual ~LogicSnapshot(); void append_payload(const sr_datafeed_logic &logic); @@ -94,13 +95,14 @@ private: struct MipMapLevel _mip_map[ScaleStepCount]; uint64_t _last_append_sample; - friend class LogicDataSnapshotTest::Pow2; - friend class LogicDataSnapshotTest::Basic; - friend class LogicDataSnapshotTest::LargeData; - friend class LogicDataSnapshotTest::Pulses; - friend class LogicDataSnapshotTest::LongPulses; + friend class LogicSnapshotTest::Pow2; + friend class LogicSnapshotTest::Basic; + friend class LogicSnapshotTest::LargeData; + friend class LogicSnapshotTest::Pulses; + friend class LogicSnapshotTest::LongPulses; }; +} // namespace data } // namespace pv -#endif // PULSEVIEW_PV_LOGICDATASNAPSHOT_H +#endif // PULSEVIEW_PV_DATA_LOGICSNAPSHOT_H diff --git a/pv/signaldata.cpp b/pv/data/signaldata.cpp similarity index 96% rename from pv/signaldata.cpp rename to pv/data/signaldata.cpp index 1763b41b..2c6e3c66 100644 --- a/pv/signaldata.cpp +++ b/pv/data/signaldata.cpp @@ -21,6 +21,7 @@ #include "signaldata.h" namespace pv { +namespace data { SignalData::SignalData(double samplerate) : _samplerate(samplerate), @@ -38,4 +39,5 @@ double SignalData::get_start_time() const return _start_time; } +} // namespace data } // namespace pv diff --git a/pv/signaldata.h b/pv/data/signaldata.h similarity index 87% rename from pv/signaldata.h rename to pv/data/signaldata.h index 94268aec..7f64bdb4 100644 --- a/pv/signaldata.h +++ b/pv/data/signaldata.h @@ -18,12 +18,13 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef PULSEVIEW_PV_SIGNALDATA_H -#define PULSEVIEW_PV_SIGNALDATA_H +#ifndef PULSEVIEW_PV_DATA_SIGNALDATA_H +#define PULSEVIEW_PV_DATA_SIGNALDATA_H #include namespace pv { +namespace data { class SignalData { @@ -39,6 +40,7 @@ protected: const double _start_time; }; +} // namespace data } // namespace pv -#endif // PULSEVIEW_PV_SIGNALDATA_H +#endif // PULSEVIEW_PV_DATA_SIGNALDATA_H diff --git a/pv/datasnapshot.cpp b/pv/data/snapshot.cpp similarity index 87% rename from pv/datasnapshot.cpp rename to pv/data/snapshot.cpp index 040d506a..f3855e06 100644 --- a/pv/datasnapshot.cpp +++ b/pv/data/snapshot.cpp @@ -18,7 +18,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "datasnapshot.h" +#include "snapshot.h" #include #include @@ -27,8 +27,9 @@ using namespace boost; namespace pv { +namespace data { -DataSnapshot::DataSnapshot(int unit_size) : +Snapshot::Snapshot(int unit_size) : _data(NULL), _sample_count(0), _unit_size(unit_size) @@ -37,19 +38,19 @@ DataSnapshot::DataSnapshot(int unit_size) : assert(_unit_size > 0); } -DataSnapshot::~DataSnapshot() +Snapshot::~Snapshot() { lock_guard lock(_mutex); free(_data); } -uint64_t DataSnapshot::get_sample_count() +uint64_t Snapshot::get_sample_count() { lock_guard lock(_mutex); return _sample_count; } -void DataSnapshot::append_data(void *data, uint64_t samples) +void Snapshot::append_data(void *data, uint64_t samples) { lock_guard lock(_mutex); _data = realloc(_data, (_sample_count + samples) * _unit_size); @@ -58,4 +59,5 @@ void DataSnapshot::append_data(void *data, uint64_t samples) _sample_count += samples; } +} // namespace data } // namespace pv diff --git a/pv/datasnapshot.h b/pv/data/snapshot.h similarity index 84% rename from pv/datasnapshot.h rename to pv/data/snapshot.h index 2a6651e8..7f36ee78 100644 --- a/pv/datasnapshot.h +++ b/pv/data/snapshot.h @@ -18,8 +18,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef PULSEVIEW_PV_DATASNAPSHOT_H -#define PULSEVIEW_PV_DATASNAPSHOT_H +#ifndef PULSEVIEW_PV_DATA_SNAPSHOT_H +#define PULSEVIEW_PV_DATA_SNAPSHOT_H extern "C" { #include @@ -28,13 +28,14 @@ extern "C" { #include namespace pv { +namespace data { -class DataSnapshot +class Snapshot { public: - DataSnapshot(int unit_size); + Snapshot(int unit_size); - virtual ~DataSnapshot(); + virtual ~Snapshot(); uint64_t get_sample_count(); @@ -48,6 +49,7 @@ protected: int _unit_size; }; +} // namespace data } // namespace pv -#endif // PULSEVIEW_PV_DATASNAPSHOT_H +#endif // PULSEVIEW_PV_DATA_SNAPSHOT_H diff --git a/pv/sigsession.cpp b/pv/sigsession.cpp index b7e910e3..03cf238a 100644 --- a/pv/sigsession.cpp +++ b/pv/sigsession.cpp @@ -20,10 +20,10 @@ #include "sigsession.h" -#include "analogdata.h" -#include "analogdatasnapshot.h" -#include "logicdata.h" -#include "logicdatasnapshot.h" +#include "data/analog.h" +#include "data/analogsnapshot.h" +#include "data/logic.h" +#include "data/logicsnapshot.h" #include "view/analogsignal.h" #include "view/logicsignal.h" @@ -103,7 +103,7 @@ vector< shared_ptr > SigSession::get_signals() return _signals; } -boost::shared_ptr SigSession::get_data() +boost::shared_ptr SigSession::get_data() { return _logic_data; } @@ -188,8 +188,8 @@ void SigSession::feed_in_meta_logic(const struct sr_dev_inst *sdi, lock_guard data_lock(_data_mutex); lock_guard sampling_lock(_sampling_mutex); - // Create an empty LogicData for coming data snapshots - _logic_data.reset(new LogicData(meta_logic, _sample_rate)); + // Create an empty data::Logic for coming data snapshots + _logic_data.reset(new data::Logic(meta_logic, _sample_rate)); assert(_logic_data); if (!_logic_data) return; @@ -224,8 +224,8 @@ void SigSession::feed_in_meta_analog(const struct sr_dev_inst *sdi, lock_guard data_lock(_data_mutex); lock_guard sampling_lock(_sampling_mutex); - // Create an empty AnalogData for coming data snapshots - _analog_data.reset(new AnalogData( + // Create an empty data::Analog for coming data snapshots + _analog_data.reset(new data::Analog( meta_analog, _sample_rate)); assert(_analog_data); if (!_analog_data) @@ -250,8 +250,8 @@ void SigSession::feed_in_logic(const sr_datafeed_logic &logic) if (!_cur_logic_snapshot) { // Create a new data snapshot - _cur_logic_snapshot = shared_ptr( - new LogicDataSnapshot(logic)); + _cur_logic_snapshot = shared_ptr( + new data::LogicSnapshot(logic)); _logic_data->push_snapshot(_cur_logic_snapshot); } else @@ -269,8 +269,8 @@ void SigSession::feed_in_analog(const sr_datafeed_analog &analog) if (!_cur_analog_snapshot) { // Create a new data snapshot - _cur_analog_snapshot = shared_ptr( - new AnalogDataSnapshot(analog)); + _cur_analog_snapshot = shared_ptr( + new data::AnalogSnapshot(analog)); _analog_data->push_snapshot(_cur_analog_snapshot); } else diff --git a/pv/sigsession.h b/pv/sigsession.h index 308b0827..d5ec200a 100644 --- a/pv/sigsession.h +++ b/pv/sigsession.h @@ -36,10 +36,12 @@ extern "C" { namespace pv { -class AnalogData; -class AnalogDataSnapshot; -class LogicData; -class LogicDataSnapshot; +namespace data { +class Analog; +class AnalogSnapshot; +class Logic; +class LogicSnapshot; +} namespace view { class Signal; @@ -72,7 +74,7 @@ public: std::vector< boost::shared_ptr > get_signals(); - boost::shared_ptr get_data(); + boost::shared_ptr get_data(); private: void set_capture_state(capture_state state); @@ -108,10 +110,10 @@ private: std::vector< boost::shared_ptr > _signals; mutable boost::mutex _data_mutex; - boost::shared_ptr _logic_data; - boost::shared_ptr _cur_logic_snapshot; - boost::shared_ptr _analog_data; - boost::shared_ptr _cur_analog_snapshot; + boost::shared_ptr _logic_data; + boost::shared_ptr _cur_logic_snapshot; + boost::shared_ptr _analog_data; + boost::shared_ptr _cur_analog_snapshot; std::auto_ptr _sampling_thread; diff --git a/pv/view/analogsignal.cpp b/pv/view/analogsignal.cpp index 126ecb1f..fb5eba61 100644 --- a/pv/view/analogsignal.cpp +++ b/pv/view/analogsignal.cpp @@ -23,8 +23,8 @@ #include #include "analogsignal.h" -#include "../analogdata.h" -#include "../analogdatasnapshot.h" +#include "pv/data/analog.h" +#include "pv/data/analogsnapshot.h" using namespace boost; using namespace std; @@ -32,7 +32,7 @@ using namespace std; namespace pv { namespace view { -AnalogSignal::AnalogSignal(QString name, shared_ptr data) : +AnalogSignal::AnalogSignal(QString name, shared_ptr data) : Signal(name), _data(data) { @@ -45,12 +45,12 @@ void AnalogSignal::paint(QPainter &p, const QRect &rect, double scale, assert(scale > 0); assert(_data); - const deque< shared_ptr > &snapshots = + const deque< shared_ptr > &snapshots = _data->get_snapshots(); if (snapshots.empty()) return; - const shared_ptr &snapshot = + const shared_ptr &snapshot = snapshots.front(); const double pixels_offset = offset / scale; diff --git a/pv/view/analogsignal.h b/pv/view/analogsignal.h index b3cafd2f..7bc0ed6e 100644 --- a/pv/view/analogsignal.h +++ b/pv/view/analogsignal.h @@ -27,7 +27,9 @@ namespace pv { -class AnalogData; +namespace data { +class Analog; +} namespace view { @@ -35,7 +37,7 @@ class AnalogSignal : public Signal { public: AnalogSignal(QString name, - boost::shared_ptr data); + boost::shared_ptr data); /** * Paints the signal with a QPainter @@ -57,7 +59,7 @@ private: int get_nominal_offset(const QRect &rect) const; private: - boost::shared_ptr _data; + boost::shared_ptr _data; }; } // namespace view diff --git a/pv/view/logicsignal.cpp b/pv/view/logicsignal.cpp index 03d6aa25..d23da5bb 100644 --- a/pv/view/logicsignal.cpp +++ b/pv/view/logicsignal.cpp @@ -23,8 +23,8 @@ #include #include "logicsignal.h" -#include "../logicdata.h" -#include "../logicdatasnapshot.h" +#include "pv/data/logic.h" +#include "pv/data/logicsnapshot.h" using namespace boost; using namespace std; @@ -51,7 +51,7 @@ const QColor LogicSignal::LogicSignalColours[10] = { QColor(0xEE, 0xEE, 0xEC), // White }; -LogicSignal::LogicSignal(QString name, shared_ptr data, +LogicSignal::LogicSignal(QString name, shared_ptr data, int probe_index) : Signal(name), _probe_index(probe_index), @@ -75,12 +75,12 @@ void LogicSignal::paint(QPainter &p, const QRect &rect, double scale, const float high_offset = rect.top() + 0.5f; const float low_offset = rect.bottom() + 0.5f; - const deque< shared_ptr > &snapshots = + const deque< shared_ptr > &snapshots = _data->get_snapshots(); if (snapshots.empty()) return; - const shared_ptr &snapshot = + const shared_ptr &snapshot = snapshots.front(); const double pixels_offset = offset / scale; @@ -102,7 +102,7 @@ void LogicSignal::paint(QPainter &p, const QRect &rect, double scale, QLineF *const edge_lines = new QLineF[edge_count]; line = edge_lines; - for (vector::const_iterator i = + for (vector::const_iterator i = edges.begin() + 1; i != edges.end() - 1; i++) { const float x = ((*i).first / samples_per_pixel - @@ -135,7 +135,7 @@ void LogicSignal::paint_caps(QPainter &p, QLineF *const lines, { QLineF *line = lines; - for (vector::const_iterator i = + for (vector::const_iterator i = edges.begin(); i != (edges.end() - 1); i++) if ((*i).second == level) { *line++ = QLineF( diff --git a/pv/view/logicsignal.h b/pv/view/logicsignal.h index 4241f801..e20f13c7 100644 --- a/pv/view/logicsignal.h +++ b/pv/view/logicsignal.h @@ -27,7 +27,9 @@ namespace pv { -class LogicData; +namespace data { +class Logic; +} namespace view { @@ -44,7 +46,7 @@ private: public: LogicSignal(QString name, - boost::shared_ptr data, + boost::shared_ptr data, int probe_index); /** @@ -72,7 +74,7 @@ private: private: int _probe_index; - boost::shared_ptr _data; + boost::shared_ptr _data; }; } // namespace view diff --git a/pv/view/signal.h b/pv/view/signal.h index 72d42cc2..72019032 100644 --- a/pv/view/signal.h +++ b/pv/view/signal.h @@ -32,7 +32,9 @@ namespace pv { +namespace data { class SignalData; +} namespace view { diff --git a/pv/view/view.cpp b/pv/view/view.cpp index 8fca4be2..64ecf83a 100644 --- a/pv/view/view.cpp +++ b/pv/view/view.cpp @@ -34,9 +34,9 @@ #include "view.h" #include "viewport.h" -#include "../logicdata.h" -#include "../logicdatasnapshot.h" -#include "../sigsession.h" +#include "pv/sigsession.h" +#include "pv/data/logic.h" +#include "pv/data/logicsnapshot.h" using namespace boost; using namespace std; @@ -189,7 +189,7 @@ void View::normalize_layout() void View::get_scroll_layout(double &length, double &offset) const { - const shared_ptr sig_data = _session.get_data(); + const shared_ptr sig_data = _session.get_data(); if (!sig_data) return; @@ -319,11 +319,11 @@ void View::data_updated() { // Get the new data length _data_length = 0; - shared_ptr sig_data = _session.get_data(); + shared_ptr sig_data = _session.get_data(); if (sig_data) { - deque< shared_ptr > &snapshots = + deque< shared_ptr > &snapshots = sig_data->get_snapshots(); - BOOST_FOREACH(shared_ptr s, snapshots) + BOOST_FOREACH(shared_ptr s, snapshots) if (s) _data_length = max(_data_length, s->get_sample_count()); diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 6da1a247..5fff12b0 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -21,9 +21,9 @@ find_package(Boost 1.46 COMPONENTS unit_test_framework REQUIRED) set(pulseview_TEST_SOURCES - ${PROJECT_SOURCE_DIR}/pv/datasnapshot.cpp - ${PROJECT_SOURCE_DIR}/pv/logicdatasnapshot.cpp - logicdatasnapshot.cpp + ${PROJECT_SOURCE_DIR}/pv/data/snapshot.cpp + ${PROJECT_SOURCE_DIR}/pv/data/logicsnapshot.cpp + data/logicsnapshot.cpp test.cpp ) diff --git a/test/logicdatasnapshot.cpp b/test/data/logicsnapshot.cpp similarity index 79% rename from test/logicdatasnapshot.cpp rename to test/data/logicsnapshot.cpp index 07d34f28..1c536791 100644 --- a/test/logicdatasnapshot.cpp +++ b/test/data/logicsnapshot.cpp @@ -25,15 +25,15 @@ #include -#include "../pv/logicdatasnapshot.h" +#include "../../pv/data/logicsnapshot.h" using namespace std; -using pv::LogicDataSnapshot; +using pv::data::LogicSnapshot; -BOOST_AUTO_TEST_SUITE(LogicDataSnapshotTest) +BOOST_AUTO_TEST_SUITE(LogicSnapshotTest) -void push_logic(LogicDataSnapshot &s, unsigned int length, uint8_t value) +void push_logic(LogicSnapshot &s, unsigned int length, uint8_t value) { sr_datafeed_logic logic; logic.unitsize = 1; @@ -46,37 +46,37 @@ void push_logic(LogicDataSnapshot &s, unsigned int length, uint8_t value) BOOST_AUTO_TEST_CASE(Pow2) { - BOOST_CHECK_EQUAL(LogicDataSnapshot::pow2_ceil(0, 0), 0); - BOOST_CHECK_EQUAL(LogicDataSnapshot::pow2_ceil(1, 0), 1); - BOOST_CHECK_EQUAL(LogicDataSnapshot::pow2_ceil(2, 0), 2); + BOOST_CHECK_EQUAL(LogicSnapshot::pow2_ceil(0, 0), 0); + BOOST_CHECK_EQUAL(LogicSnapshot::pow2_ceil(1, 0), 1); + BOOST_CHECK_EQUAL(LogicSnapshot::pow2_ceil(2, 0), 2); BOOST_CHECK_EQUAL( - LogicDataSnapshot::pow2_ceil(INT64_MIN, 0), INT64_MIN); + LogicSnapshot::pow2_ceil(INT64_MIN, 0), INT64_MIN); BOOST_CHECK_EQUAL( - LogicDataSnapshot::pow2_ceil(INT64_MAX, 0), INT64_MAX); + LogicSnapshot::pow2_ceil(INT64_MAX, 0), INT64_MAX); - BOOST_CHECK_EQUAL(LogicDataSnapshot::pow2_ceil(0, 1), 0); - BOOST_CHECK_EQUAL(LogicDataSnapshot::pow2_ceil(1, 1), 2); - BOOST_CHECK_EQUAL(LogicDataSnapshot::pow2_ceil(2, 1), 2); - BOOST_CHECK_EQUAL(LogicDataSnapshot::pow2_ceil(3, 1), 4); + BOOST_CHECK_EQUAL(LogicSnapshot::pow2_ceil(0, 1), 0); + BOOST_CHECK_EQUAL(LogicSnapshot::pow2_ceil(1, 1), 2); + BOOST_CHECK_EQUAL(LogicSnapshot::pow2_ceil(2, 1), 2); + BOOST_CHECK_EQUAL(LogicSnapshot::pow2_ceil(3, 1), 4); } BOOST_AUTO_TEST_CASE(Basic) { - // Create an empty LogicDataSnapshot object + // Create an empty LogicSnapshot object sr_datafeed_logic logic; logic.length = 0; logic.unitsize = 1; logic.data = NULL; - LogicDataSnapshot s(logic); + LogicSnapshot s(logic); - //----- Test LogicDataSnapshot::push_logic -----// + //----- Test LogicSnapshot::push_logic -----// BOOST_CHECK(s.get_sample_count() == 0); - for (unsigned int i = 0; i < LogicDataSnapshot::ScaleStepCount; i++) + for (unsigned int i = 0; i < LogicSnapshot::ScaleStepCount; i++) { - const LogicDataSnapshot::MipMapLevel &m = s._mip_map[i]; + const LogicSnapshot::MipMapLevel &m = s._mip_map[i]; BOOST_CHECK_EQUAL(m.length, 0); BOOST_CHECK_EQUAL(m.data_length, 0); BOOST_CHECK(m.data == NULL); @@ -88,9 +88,9 @@ BOOST_AUTO_TEST_CASE(Basic) BOOST_CHECK(s.get_sample_count() == 8); // There should not be enough samples to have a single mip map sample - for (unsigned int i = 0; i < LogicDataSnapshot::ScaleStepCount; i++) + for (unsigned int i = 0; i < LogicSnapshot::ScaleStepCount; i++) { - const LogicDataSnapshot::MipMapLevel &m = s._mip_map[i]; + const LogicSnapshot::MipMapLevel &m = s._mip_map[i]; BOOST_CHECK_EQUAL(m.length, 0); BOOST_CHECK_EQUAL(m.data_length, 0); BOOST_CHECK(m.data == NULL); @@ -101,16 +101,16 @@ BOOST_AUTO_TEST_CASE(Basic) // There should now be enough data for exactly one sample // in mip map level 0, and that sample should be 0 - const LogicDataSnapshot::MipMapLevel &m0 = s._mip_map[0]; + const LogicSnapshot::MipMapLevel &m0 = s._mip_map[0]; BOOST_CHECK_EQUAL(m0.length, 1); - BOOST_CHECK_EQUAL(m0.data_length, LogicDataSnapshot::MipMapDataUnit); + BOOST_CHECK_EQUAL(m0.data_length, LogicSnapshot::MipMapDataUnit); BOOST_REQUIRE(m0.data != NULL); BOOST_CHECK_EQUAL(((uint8_t*)m0.data)[0], 0x11); // The higher levels should still be empty - for (unsigned int i = 1; i < LogicDataSnapshot::ScaleStepCount; i++) + for (unsigned int i = 1; i < LogicSnapshot::ScaleStepCount; i++) { - const LogicDataSnapshot::MipMapLevel &m = s._mip_map[i]; + const LogicSnapshot::MipMapLevel &m = s._mip_map[i]; BOOST_CHECK_EQUAL(m.length, 0); BOOST_CHECK_EQUAL(m.data_length, 0); BOOST_CHECK(m.data == NULL); @@ -120,22 +120,22 @@ BOOST_AUTO_TEST_CASE(Basic) push_logic(s, 240, 0); BOOST_CHECK_EQUAL(m0.length, 16); - BOOST_CHECK_EQUAL(m0.data_length, LogicDataSnapshot::MipMapDataUnit); + BOOST_CHECK_EQUAL(m0.data_length, LogicSnapshot::MipMapDataUnit); BOOST_CHECK_EQUAL(((uint8_t*)m0.data)[1], 0x11); for (unsigned int i = 2; i < m0.length; i++) BOOST_CHECK_EQUAL(((uint8_t*)m0.data)[i], 0); - const LogicDataSnapshot::MipMapLevel &m1 = s._mip_map[1]; + const LogicSnapshot::MipMapLevel &m1 = s._mip_map[1]; BOOST_CHECK_EQUAL(m1.length, 1); - BOOST_CHECK_EQUAL(m1.data_length, LogicDataSnapshot::MipMapDataUnit); + BOOST_CHECK_EQUAL(m1.data_length, LogicSnapshot::MipMapDataUnit); BOOST_REQUIRE(m1.data != NULL); BOOST_CHECK_EQUAL(((uint8_t*)m1.data)[0], 0x11); - //----- Test LogicDataSnapshot::get_subsampled_edges -----// + //----- Test LogicSnapshot::get_subsampled_edges -----// // Test a full view at full zoom. - vector edges; + vector edges; s.get_subsampled_edges(edges, 0, 255, 1, 0); BOOST_REQUIRE_EQUAL(edges.size(), 4); @@ -169,7 +169,7 @@ BOOST_AUTO_TEST_CASE(LargeData) for (unsigned int i = 0; i < Length; i++) *data++ = (uint8_t)(i >> 8); - LogicDataSnapshot s(logic); + LogicSnapshot s(logic); delete[] (uint8_t*)logic.data; BOOST_CHECK(s.get_sample_count() == Length); @@ -177,7 +177,7 @@ BOOST_AUTO_TEST_CASE(LargeData) // Check mip map level 0 BOOST_CHECK_EQUAL(s._mip_map[0].length, 62500); BOOST_CHECK_EQUAL(s._mip_map[0].data_length, - LogicDataSnapshot::MipMapDataUnit); + LogicSnapshot::MipMapDataUnit); BOOST_REQUIRE(s._mip_map[0].data != NULL); prev_sample = 0; @@ -200,7 +200,7 @@ BOOST_AUTO_TEST_CASE(LargeData) // Check mip map level 1 BOOST_CHECK_EQUAL(s._mip_map[1].length, 3906); BOOST_CHECK_EQUAL(s._mip_map[1].data_length, - LogicDataSnapshot::MipMapDataUnit); + LogicSnapshot::MipMapDataUnit); BOOST_REQUIRE(s._mip_map[1].data != NULL); prev_sample = 0; @@ -218,7 +218,7 @@ BOOST_AUTO_TEST_CASE(LargeData) // Check mip map level 2 BOOST_CHECK_EQUAL(s._mip_map[2].length, 244); BOOST_CHECK_EQUAL(s._mip_map[2].data_length, - LogicDataSnapshot::MipMapDataUnit); + LogicSnapshot::MipMapDataUnit); BOOST_REQUIRE(s._mip_map[2].data != NULL); prev_sample = 0; @@ -236,7 +236,7 @@ BOOST_AUTO_TEST_CASE(LargeData) // Check mip map level 3 BOOST_CHECK_EQUAL(s._mip_map[3].length, 15); BOOST_CHECK_EQUAL(s._mip_map[3].data_length, - LogicDataSnapshot::MipMapDataUnit); + LogicSnapshot::MipMapDataUnit); BOOST_REQUIRE(s._mip_map[3].data != NULL); for (unsigned int i = 0; i < s._mip_map[3].length; i++) @@ -244,17 +244,17 @@ BOOST_AUTO_TEST_CASE(LargeData) 0xFF); // Check the higher levels - for (unsigned int i = 4; i < LogicDataSnapshot::ScaleStepCount; i++) + for (unsigned int i = 4; i < LogicSnapshot::ScaleStepCount; i++) { - const LogicDataSnapshot::MipMapLevel &m = s._mip_map[i]; + const LogicSnapshot::MipMapLevel &m = s._mip_map[i]; BOOST_CHECK_EQUAL(m.length, 0); BOOST_CHECK_EQUAL(m.data_length, 0); BOOST_CHECK(m.data == NULL); } - //----- Test LogicDataSnapshot::get_subsampled_edges -----// + //----- Test LogicSnapshot::get_subsampled_edges -----// // Check in normal case - vector edges; + vector edges; s.get_subsampled_edges(edges, 0, Length-1, 1, 7); BOOST_CHECK_EQUAL(edges.size(), 32); @@ -280,9 +280,9 @@ BOOST_AUTO_TEST_CASE(Pulses) const int Period = 64; const int Length = Cycles * Period; - vector edges; + vector edges; - //----- Create a LogicDataSnapshot -----// + //----- Create a LogicSnapshot -----// sr_datafeed_logic logic; logic.unitsize = 1; logic.length = Length; @@ -295,14 +295,14 @@ BOOST_AUTO_TEST_CASE(Pulses) *p++ = 0x00; } - LogicDataSnapshot s(logic); + LogicSnapshot s(logic); delete[] (uint8_t*)logic.data; //----- Check the mip-map -----// // Check mip map level 0 BOOST_CHECK_EQUAL(s._mip_map[0].length, 12); BOOST_CHECK_EQUAL(s._mip_map[0].data_length, - LogicDataSnapshot::MipMapDataUnit); + LogicSnapshot::MipMapDataUnit); BOOST_REQUIRE(s._mip_map[0].data != NULL); for (unsigned int i = 0; i < s._mip_map[0].length;) { @@ -311,7 +311,7 @@ BOOST_AUTO_TEST_CASE(Pulses) for (int j = 1; i < s._mip_map[0].length && - j < Period/LogicDataSnapshot::MipMapScaleFactor; j++) { + j < Period/LogicSnapshot::MipMapScaleFactor; j++) { BOOST_TEST_MESSAGE( "Testing mip_map[0].data[" << i << "]"); BOOST_CHECK_EQUAL(s.get_subsample(0, i++) & 0xFF, 0x00); @@ -319,8 +319,8 @@ BOOST_AUTO_TEST_CASE(Pulses) } // Check the higher levels are all inactive - for (unsigned int i = 1; i < LogicDataSnapshot::ScaleStepCount; i++) { - const LogicDataSnapshot::MipMapLevel &m = s._mip_map[i]; + for (unsigned int i = 1; i < LogicSnapshot::ScaleStepCount; i++) { + const LogicSnapshot::MipMapLevel &m = s._mip_map[i]; BOOST_CHECK_EQUAL(m.length, 0); BOOST_CHECK_EQUAL(m.data_length, 0); BOOST_CHECK(m.data == NULL); @@ -343,9 +343,9 @@ BOOST_AUTO_TEST_CASE(LongPulses) const int Length = Cycles * Period; int j; - vector edges; + vector edges; - //----- Create a LogicDataSnapshot -----// + //----- Create a LogicSnapshot -----// sr_datafeed_logic logic; logic.unitsize = 8; logic.length = Length; @@ -359,14 +359,14 @@ BOOST_AUTO_TEST_CASE(LongPulses) *p++ = 0; } - LogicDataSnapshot s(logic); + LogicSnapshot s(logic); delete[] (uint64_t*)logic.data; //----- Check the mip-map -----// // Check mip map level 0 BOOST_CHECK_EQUAL(s._mip_map[0].length, 12); BOOST_CHECK_EQUAL(s._mip_map[0].data_length, - LogicDataSnapshot::MipMapDataUnit); + LogicSnapshot::MipMapDataUnit); BOOST_REQUIRE(s._mip_map[0].data != NULL); for (unsigned int i = 0; i < s._mip_map[0].length;) { @@ -377,7 +377,7 @@ BOOST_AUTO_TEST_CASE(LongPulses) } for (; i < s._mip_map[0].length && - j < Period/LogicDataSnapshot::MipMapScaleFactor; j++) { + j < Period/LogicSnapshot::MipMapScaleFactor; j++) { BOOST_TEST_MESSAGE( "Testing mip_map[0].data[" << i << "]"); BOOST_CHECK_EQUAL(s.get_subsample(0, i++), 0); @@ -385,8 +385,8 @@ BOOST_AUTO_TEST_CASE(LongPulses) } // Check the higher levels are all inactive - for (unsigned int i = 1; i < LogicDataSnapshot::ScaleStepCount; i++) { - const LogicDataSnapshot::MipMapLevel &m = s._mip_map[i]; + for (unsigned int i = 1; i < LogicSnapshot::ScaleStepCount; i++) { + const LogicSnapshot::MipMapLevel &m = s._mip_map[i]; BOOST_CHECK_EQUAL(m.length, 0); BOOST_CHECK_EQUAL(m.data_length, 0); BOOST_CHECK(m.data == NULL); @@ -440,7 +440,7 @@ BOOST_AUTO_TEST_CASE(LisaMUsbHid) bool state = false; int lastEdgePos = 0; - //----- Create a LogicDataSnapshot -----// + //----- Create a LogicSnapshot -----// sr_datafeed_logic logic; logic.unitsize = 1; logic.length = Length; @@ -456,10 +456,10 @@ BOOST_AUTO_TEST_CASE(LisaMUsbHid) state = !state; } - LogicDataSnapshot s(logic); + LogicSnapshot s(logic); delete[] (uint64_t*)logic.data; - vector edges; + vector edges; /* The trailing edge of the pulse train is falling in the source data. -- 2.30.2