return _capture_state;
}
-void SigSession::start_capture(uint64_t record_length,
- function<void (const QString)> error_handler)
+void SigSession::start_capture(function<void (const QString)> error_handler)
{
stop_capture();
// Begin the session
_sampling_thread = boost::thread(
- &SigSession::sample_thread_proc, this, _sdi,
- record_length, error_handler);
+ &SigSession::sample_thread_proc, this, _sdi, error_handler);
}
void SigSession::stop_capture()
decoder_stack = shared_ptr<data::DecoderStack>(
new data::DecoderStack(dec));
- // Auto select the initial probes
+ // Make a list of all the probes
+ std::vector<const srd_probe*> all_probes;
for(const GSList *i = dec->probes; i; i = i->next)
- {
- const srd_probe *const probe = (const srd_probe*)i->data;
+ all_probes.push_back((const srd_probe*)i->data);
+ for(const GSList *i = dec->opt_probes; i; i = i->next)
+ all_probes.push_back((const srd_probe*)i->data);
+
+ // Auto select the initial probes
+ BOOST_FOREACH(const srd_probe *probe, all_probes)
BOOST_FOREACH(shared_ptr<view::Signal> s, _signals)
{
shared_ptr<view::LogicSignal> l =
l->get_name().toLower()))
probes[probe] = l;
}
- }
assert(decoder_stack);
assert(!decoder_stack->stack().empty());
}
void SigSession::sample_thread_proc(struct sr_dev_inst *sdi,
- uint64_t record_length,
function<void (const QString)> error_handler)
{
assert(sdi);
return;
}
- // Set the sample limit
- if (sr_config_set(sdi, NULL, SR_CONF_LIMIT_SAMPLES,
- g_variant_new_uint64(record_length)) != SR_OK) {
- error_handler(tr("Failed to configure "
- "time-based sample limit."));
- sr_session_destroy();
- return;
- }
-
if (sr_session_start() != SR_OK) {
error_handler(tr("Failed to start session."));
return;