projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Factored device title printing code out into pv::DeviceManager::format_device_title
[pulseview.git]
/
pv
/
sigsession.h
diff --git
a/pv/sigsession.h
b/pv/sigsession.h
index 15e247b5953938c72f1e3c0639f8cae8ad031644..1978293481423b0dbae4645c6f57d38e98ceb2e1 100644
(file)
--- a/
pv/sigsession.h
+++ b/
pv/sigsession.h
@@
-21,6
+21,7
@@
#ifndef PULSEVIEW_PV_SIGSESSION_H
#define PULSEVIEW_PV_SIGSESSION_H
#ifndef PULSEVIEW_PV_SIGSESSION_H
#define PULSEVIEW_PV_SIGSESSION_H
+#include <boost/function.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/thread.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/thread.hpp>
@@
-29,15
+30,18
@@
#include <vector>
#include <QObject>
#include <vector>
#include <QObject>
+#include <QString>
-extern "C" {
#include <libsigrok/libsigrok.h>
#include <libsigrok/libsigrok.h>
-}
namespace pv {
namespace pv {
-class LogicData;
-class LogicDataSnapshot;
+namespace data {
+class Analog;
+class AnalogSnapshot;
+class Logic;
+class LogicSnapshot;
+}
namespace view {
class Signal;
namespace view {
class Signal;
@@
-58,48
+62,70
@@
public:
~SigSession();
~SigSession();
- void load_file(const std::string &name);
+ /**
+ * Sets device instance that will be used in the next capture session.
+ */
+ void set_device(struct sr_dev_inst *sdi);
+
+ void load_file(const std::string &name,
+ boost::function<void (const QString)> error_handler);
capture_state get_capture_state() const;
capture_state get_capture_state() const;
- void start_capture(
struct sr_dev_inst* sdi,
uint64_t record_length,
-
uint64_t sample_rate
);
+ void start_capture(uint64_t record_length,
+
boost::function<void (const QString)> error_handler
);
void stop_capture();
std::vector< boost::shared_ptr<view::Signal> >
get_signals();
void stop_capture();
std::vector< boost::shared_ptr<view::Signal> >
get_signals();
- boost::shared_ptr<
LogicData
> get_data();
+ boost::shared_ptr<
data::Logic
> get_data();
private:
void set_capture_state(capture_state state);
private:
private:
void set_capture_state(capture_state state);
private:
- void load_thread_proc(const std::string name);
+ void load_thread_proc(const std::string name,
+ boost::function<void (const QString)> error_handler);
void sample_thread_proc(struct sr_dev_inst *sdi,
void sample_thread_proc(struct sr_dev_inst *sdi,
- uint64_t record_length, uint64_t sample_rate);
+ uint64_t record_length,
+ boost::function<void (const QString)> error_handler);
+
+ void feed_in_header(const sr_dev_inst *sdi);
+
+ void feed_in_meta(const sr_dev_inst *sdi,
+ const sr_datafeed_meta &meta);
- void feed_in_meta_logic(const struct sr_dev_inst *sdi,
- const sr_datafeed_meta_logic &meta_logic);
+ void feed_in_logic(const sr_datafeed_logic &logic);
+
+ void feed_in_analog(const sr_datafeed_analog &analog);
void data_feed_in(const struct sr_dev_inst *sdi,
const struct sr_datafeed_packet *packet);
static void data_feed_in_proc(const struct sr_dev_inst *sdi,
void data_feed_in(const struct sr_dev_inst *sdi,
const struct sr_datafeed_packet *packet);
static void data_feed_in_proc(const struct sr_dev_inst *sdi,
- const struct sr_datafeed_packet *packet);
+ const struct sr_datafeed_packet *packet
, void *cb_data
);
private:
private:
- mutable boost::mutex _state_mutex;
+
+ /**
+ * The device instance that will be used in the next capture session.
+ */
+ struct sr_dev_inst *_sdi;
+
+ mutable boost::mutex _sampling_mutex;
capture_state _capture_state;
mutable boost::mutex _signals_mutex;
std::vector< boost::shared_ptr<view::Signal> > _signals;
mutable boost::mutex _data_mutex;
capture_state _capture_state;
mutable boost::mutex _signals_mutex;
std::vector< boost::shared_ptr<view::Signal> > _signals;
mutable boost::mutex _data_mutex;
- boost::shared_ptr<LogicData> _logic_data;
- boost::shared_ptr<LogicDataSnapshot> _cur_logic_snapshot;
+ boost::shared_ptr<data::Logic> _logic_data;
+ boost::shared_ptr<data::LogicSnapshot> _cur_logic_snapshot;
+ boost::shared_ptr<data::Analog> _analog_data;
+ boost::shared_ptr<data::AnalogSnapshot> _cur_analog_snapshot;
std::auto_ptr<boost::thread> _sampling_thread;
std::auto_ptr<boost::thread> _sampling_thread;