projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added pv::device::Device
[pulseview.git]
/
pv
/
sigsession.cpp
diff --git
a/pv/sigsession.cpp
b/pv/sigsession.cpp
index 809509bb78768fc9a054b1a7db8d6b64c2d57f4d..4469a3eef367071c44a545d3c3a1a8ae746742cc 100644
(file)
--- a/
pv/sigsession.cpp
+++ b/
pv/sigsession.cpp
@@
-25,7
+25,7
@@
#include "sigsession.h"
#include "devicemanager.h"
#include "sigsession.h"
#include "devicemanager.h"
-#include "devi
nst
.h"
+#include "devi
ce/device
.h"
#include "data/analog.h"
#include "data/analogsnapshot.h"
#include "data/analog.h"
#include "data/analogsnapshot.h"
@@
-75,7
+75,8
@@
SigSession::~SigSession()
{
stop_capture();
{
stop_capture();
- _sampling_thread.join();
+ if (_sampling_thread.joinable())
+ _sampling_thread.join();
if (_dev_inst)
_device_manager.release_device(_dev_inst);
if (_dev_inst)
_device_manager.release_device(_dev_inst);
@@
-84,12
+85,12
@@
SigSession::~SigSession()
_session = NULL;
}
_session = NULL;
}
-shared_ptr<DevInst> SigSession::get_device() const
+shared_ptr<
device::
DevInst> SigSession::get_device() const
{
return _dev_inst;
}
{
return _dev_inst;
}
-void SigSession::set_device(shared_ptr<DevInst> dev_inst)
+void SigSession::set_device(shared_ptr<
device::
DevInst> dev_inst)
{
// Ensure we are not capturing before setting the device
stop_capture();
{
// Ensure we are not capturing before setting the device
stop_capture();
@@
-102,12
+103,12
@@
void SigSession::set_device(shared_ptr<DevInst> dev_inst)
update_signals(dev_inst);
}
update_signals(dev_inst);
}
-void SigSession::release_device(shared_ptr<DevInst> dev_inst)
+void SigSession::release_device(shared_ptr<
device::
DevInst> dev_inst)
{
(void)dev_inst;
assert(_capture_state == Stopped);
{
(void)dev_inst;
assert(_capture_state == Stopped);
- _dev_inst = shared_ptr<DevInst>();
+ _dev_inst = shared_ptr<
device::
DevInst>();
}
void SigSession::load_file(const string &name,
}
void SigSession::load_file(const string &name,
@@
-125,8
+126,8
@@
void SigSession::load_file(const string &name,
return;
}
return;
}
- shared_ptr<DevInst> dev_inst(
- new
DevInst
((sr_dev_inst*)devlist->data));
+ shared_ptr<
device::
DevInst> dev_inst(
+ new
device::Device
((sr_dev_inst*)devlist->data));
g_slist_free(devlist);
_decode_traces.clear();
g_slist_free(devlist);
_decode_traces.clear();
@@
-145,7
+146,8
@@
void SigSession::load_file(const string &name,
return;
_decode_traces.clear();
return;
_decode_traces.clear();
- update_signals(shared_ptr<DevInst>(new DevInst(in->sdi)));
+ update_signals(shared_ptr<device::DevInst>(
+ new device::Device(in->sdi)));
read_sample_rate(in->sdi);
_sampling_thread = boost::thread(
read_sample_rate(in->sdi);
_sampling_thread = boost::thread(
@@
-200,7
+202,8
@@
void SigSession::stop_capture()
sr_session_stop();
// Check that sampling stopped
sr_session_stop();
// Check that sampling stopped
- _sampling_thread.join();
+ if (_sampling_thread.joinable())
+ _sampling_thread.join();
}
set< shared_ptr<data::SignalData> > SigSession::get_data() const
}
set< shared_ptr<data::SignalData> > SigSession::get_data() const
@@
-384,7
+387,7
@@
sr_input* SigSession::load_input_file_format(const string &filename,
return in;
}
return in;
}
-void SigSession::update_signals(shared_ptr<DevInst> dev_inst)
+void SigSession::update_signals(shared_ptr<
device::
DevInst> dev_inst)
{
assert(dev_inst);
assert(_capture_state == Stopped);
{
assert(dev_inst);
assert(_capture_state == Stopped);
@@
-442,8
+445,8
@@
void SigSession::update_signals(shared_ptr<DevInst> dev_inst)
switch(probe->type) {
case SR_PROBE_LOGIC:
signal = shared_ptr<view::Signal>(
switch(probe->type) {
case SR_PROBE_LOGIC:
signal = shared_ptr<view::Signal>(
- new view::LogicSignal(
*this, probe
,
- _logic_data));
+ new view::LogicSignal(
dev_inst
,
+
probe,
_logic_data));
break;
case SR_PROBE_ANALOG:
break;
case SR_PROBE_ANALOG:
@@
-451,8
+454,8
@@
void SigSession::update_signals(shared_ptr<DevInst> dev_inst)
shared_ptr<data::Analog> data(
new data::Analog());
signal = shared_ptr<view::Signal>(
shared_ptr<data::Analog> data(
new data::Analog());
signal = shared_ptr<view::Signal>(
- new view::AnalogSignal(
*this, probe
,
- data));
+ new view::AnalogSignal(
dev_inst
,
+
probe,
data));
break;
}
break;
}
@@
-566,7
+569,7
@@
void SigSession::load_input_thread_proc(const string name,
delete in;
}
delete in;
}
-void SigSession::sample_thread_proc(shared_ptr<DevInst> dev_inst,
+void SigSession::sample_thread_proc(shared_ptr<
device::
DevInst> dev_inst,
function<void (const QString)> error_handler)
{
assert(dev_inst);
function<void (const QString)> error_handler)
{
assert(dev_inst);
@@
-645,7
+648,7
@@
void SigSession::feed_in_logic(const sr_datafeed_logic &logic)
// Create a new data snapshot
_cur_logic_snapshot = shared_ptr<data::LogicSnapshot>(
// Create a new data snapshot
_cur_logic_snapshot = shared_ptr<data::LogicSnapshot>(
- new data::LogicSnapshot(logic));
+ new data::LogicSnapshot(logic
, _dev_inst->get_sample_limit()
));
_logic_data->push_snapshot(_cur_logic_snapshot);
}
else
_logic_data->push_snapshot(_cur_logic_snapshot);
}
else
@@
-687,7
+690,7
@@
void SigSession::feed_in_analog(const sr_datafeed_analog &analog)
// Create a snapshot, keep it in the maps of probes
snapshot = shared_ptr<data::AnalogSnapshot>(
// Create a snapshot, keep it in the maps of probes
snapshot = shared_ptr<data::AnalogSnapshot>(
- new data::AnalogSnapshot());
+ new data::AnalogSnapshot(
_dev_inst->get_sample_limit()
));
_cur_analog_snapshots[probe] = snapshot;
// Find the annalog data associated with the probe
_cur_analog_snapshots[probe] = snapshot;
// Find the annalog data associated with the probe