#endif
using std::shared_ptr;
-using std::unordered_set;
+using std::vector;
namespace pv {
enum ViewType {
ViewTypeTrace,
#ifdef ENABLE_DECODE
- ViewTypeDecoderOutput,
+ ViewTypeDecoderBinary,
+ ViewTypeTabularDecoder,
#endif
ViewTypeCount // Indicates how many view types there are, must always be last
};
{
Q_OBJECT
-private:
+public:
static const int MaxViewAutoUpdateRate;
public:
explicit ViewBase(Session &session, bool is_main_view = false, QMainWindow *parent = nullptr);
+ virtual ViewType get_type() const = 0;
+ bool is_main_view() const;
+
/**
* Resets the view to its default state after construction. It does however
* not reset the signal bases or any other connections with the session.
Session& session();
const Session& session() const;
- virtual void clear_signals();
-
/**
* Returns the signal bases contained in this view.
*/
- unordered_set< shared_ptr<data::SignalBase> > signalbases() const;
+ vector< shared_ptr<data::SignalBase> > signalbases() const;
virtual void clear_signalbases();
-
virtual void add_signalbase(const shared_ptr<data::SignalBase> signalbase);
+ virtual void remove_signalbase(const shared_ptr<data::SignalBase> signalbase);
#ifdef ENABLE_DECODE
virtual void clear_decode_signals();
-
virtual void add_decode_signal(shared_ptr<data::DecodeSignal> signal);
-
virtual void remove_decode_signal(shared_ptr<data::DecodeSignal> signal);
#endif
virtual void save_settings(QSettings &settings) const;
-
virtual void restore_settings(QSettings &settings);
+ virtual void focus_on_range(uint64_t start_sample, uint64_t end_sample);
+
public Q_SLOTS:
virtual void trigger_event(int segment_id, util::Timestamp location);
virtual void signals_changed();
util::TimeUnit time_unit_;
- unordered_set< shared_ptr<data::SignalBase> > signalbases_;
+ vector< shared_ptr<data::SignalBase> > signalbases_;
+#ifdef ENABLE_DECODE
+ vector< shared_ptr<data::DecodeSignal> > decode_signals_;
+#endif
/// The ID of the currently displayed segment
uint32_t current_segment_;