+ 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;
+
+ /**
+ * 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;