X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fsigsession.cpp;h=282b7ec5c691959f432fe2627a60b1eddde69754;hb=d9aecf1fcd9af471db3b59de7efc65b9632a6d79;hp=b93ecc85952ecc4053169782bd666bdd06cd968f;hpb=1f3740351a99b9c5cb4cb8a3537e27db9f2e6f60;p=pulseview.git diff --git a/pv/sigsession.cpp b/pv/sigsession.cpp index b93ecc8..282b7ec 100644 --- a/pv/sigsession.cpp +++ b/pv/sigsession.cpp @@ -43,8 +43,6 @@ #include -#include - #include #include @@ -120,12 +118,34 @@ void SigSession::set_device( void SigSession::set_file(const string &name) throw(QString) { - // Deslect the old device, because file type detection in File::create - // destorys the old session inside libsigrok. + // Deselect the old device, because file type detection in File::create + // destroys the old session inside libsigrok. set_device(shared_ptr()); set_device(shared_ptr(device::File::create(name))); } +void SigSession::set_default_device() +{ + shared_ptr default_device; + const list< shared_ptr > &devices = + _device_manager.devices(); + + if (!devices.empty()) { + // Fall back to the first device in the list. + default_device = devices.front(); + + // Try and find the demo device and select that by default + for (shared_ptr dev : devices) + if (strcmp(dev->dev_inst()->driver->name, + "demo") == 0) { + default_device = dev; + break; + } + } + + set_device(default_device); +} + void SigSession::release_device(device::DevInst *dev_inst) { (void)dev_inst; @@ -155,15 +175,15 @@ void SigSession::start_capture(function error_handler) // Check that at least one probe is enabled const GSList *l; - for (l = _dev_inst->dev_inst()->probes; l; l = l->next) { - sr_probe *const probe = (sr_probe*)l->data; + for (l = _dev_inst->dev_inst()->channels; l; l = l->next) { + sr_channel *const probe = (sr_channel*)l->data; assert(probe); if (probe->enabled) break; } if (!l) { - error_handler(tr("No probes enabled.")); + error_handler(tr("No channels enabled.")); return; } @@ -189,7 +209,7 @@ set< shared_ptr > SigSession::get_data() const { lock_guard lock(_signals_mutex); set< shared_ptr > data; - BOOST_FOREACH(const shared_ptr sig, _signals) { + for (const shared_ptr sig : _signals) { assert(sig); data.insert(sig->data()); } @@ -206,7 +226,7 @@ vector< shared_ptr > SigSession::get_signals() const #ifdef ENABLE_DECODE bool SigSession::add_decoder(srd_decoder *const dec) { - map > probes; + map > probes; shared_ptr decoder_stack; try @@ -218,22 +238,22 @@ bool SigSession::add_decoder(srd_decoder *const dec) new data::DecoderStack(*this, dec)); // Make a list of all the probes - std::vector all_probes; - for(const GSList *i = dec->probes; i; i = i->next) - 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); + std::vector all_probes; + for(const GSList *i = dec->channels; i; i = i->next) + all_probes.push_back((const srd_channel*)i->data); + for(const GSList *i = dec->opt_channels; i; i = i->next) + all_probes.push_back((const srd_channel*)i->data); // Auto select the initial probes - BOOST_FOREACH(const srd_probe *probe, all_probes) - BOOST_FOREACH(shared_ptr s, _signals) + for (const srd_channel *pdch : all_probes) + for (shared_ptr s : _signals) { shared_ptr l = dynamic_pointer_cast(s); - if (l && QString::fromUtf8(probe->name). + if (l && QString::fromUtf8(pdch->name). toLower().contains( l->get_name().toLower())) - probes[probe] = l; + probes[pdch] = l; } assert(decoder_stack); @@ -268,10 +288,7 @@ vector< shared_ptr > SigSession::get_decode_signals() const void SigSession::remove_decode_signal(view::DecodeTrace *signal) { - for (vector< shared_ptr >::iterator i = - _decode_traces.begin(); - i != _decode_traces.end(); - i++) + for (auto i = _decode_traces.begin(); i != _decode_traces.end(); i++) if ((*i).get() == signal) { _decode_traces.erase(i); @@ -290,28 +307,6 @@ void SigSession::set_capture_state(capture_state state) capture_state_changed(state); } -void SigSession::set_default_device() -{ - shared_ptr default_device; - const list< shared_ptr > &devices = - _device_manager.devices(); - - if (!devices.empty()) { - // Fall back to the first device in the list. - default_device = devices.front(); - - // Try and find the demo device and select that by default - BOOST_FOREACH (shared_ptr dev, devices) - if (strcmp(dev->dev_inst()->driver->name, - "demo") == 0) { - default_device = dev; - break; - } - } - - set_device(default_device); -} - void SigSession::update_signals(shared_ptr dev_inst) { assert(dev_inst); @@ -325,14 +320,14 @@ void SigSession::update_signals(shared_ptr dev_inst) // Detect what data types we will receive if(dev_inst) { assert(dev_inst->dev_inst()); - for (const GSList *l = dev_inst->dev_inst()->probes; + for (const GSList *l = dev_inst->dev_inst()->channels; l; l = l->next) { - const sr_probe *const probe = (const sr_probe *)l->data; + const sr_channel *const probe = (const sr_channel *)l->data; if (!probe->enabled) continue; switch(probe->type) { - case SR_PROBE_LOGIC: + case SR_CHANNEL_LOGIC: logic_probe_count++; break; } @@ -361,20 +356,20 @@ void SigSession::update_signals(shared_ptr dev_inst) break; assert(dev_inst->dev_inst()); - for (const GSList *l = dev_inst->dev_inst()->probes; + for (const GSList *l = dev_inst->dev_inst()->channels; l; l = l->next) { shared_ptr signal; - sr_probe *const probe = (sr_probe *)l->data; + sr_channel *const probe = (sr_channel *)l->data; assert(probe); switch(probe->type) { - case SR_PROBE_LOGIC: + case SR_CHANNEL_LOGIC: signal = shared_ptr( new view::LogicSignal(dev_inst, probe, _logic_data)); break; - case SR_PROBE_ANALOG: + case SR_CHANNEL_ANALOG: { shared_ptr data( new data::Analog()); @@ -399,10 +394,10 @@ void SigSession::update_signals(shared_ptr dev_inst) } shared_ptr SigSession::signal_from_probe( - const sr_probe *probe) const + const sr_channel *probe) const { lock_guard lock(_signals_mutex); - BOOST_FOREACH(shared_ptr sig, _signals) { + for (shared_ptr sig : _signals) { assert(sig); if (sig->probe() == probe) return sig; @@ -431,7 +426,7 @@ void SigSession::read_sample_rate(const sr_dev_inst *const sdi) // Set the sample rate of all data const set< shared_ptr > data_set = get_data(); - BOOST_FOREACH(shared_ptr data, data_set) { + for (shared_ptr data : data_set) { assert(data); data->set_samplerate(sample_rate); } @@ -538,20 +533,20 @@ void SigSession::feed_in_analog(const sr_datafeed_analog &analog) { lock_guard lock(_data_mutex); - const unsigned int probe_count = g_slist_length(analog.probes); + const unsigned int probe_count = g_slist_length(analog.channels); const size_t sample_count = analog.num_samples / probe_count; const float *data = analog.data; bool sweep_beginning = false; - for (GSList *p = analog.probes; p; p = p->next) + for (GSList *p = analog.channels; p; p = p->next) { shared_ptr snapshot; - sr_probe *const probe = (sr_probe*)p->data; + sr_channel *const probe = (sr_channel*)p->data; assert(probe); // Try to get the snapshot of the probe - const map< const sr_probe*, shared_ptr >:: + const map< const sr_channel*, shared_ptr >:: iterator iter = _cur_analog_snapshots.find(probe); if (iter != _cur_analog_snapshots.end()) snapshot = (*iter).second;