X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fsigsession.cpp;h=80830214877148f38a6100c06dc43bbc56c0a134;hb=ed1d9d81f46c6595bea7278aa5dc9c1213c81609;hp=f3eb19460593141de7b33740bb94eb2d0e69f4a3;hpb=2acdb232d6bb452cfdfaea3ef5218fb4da592329;p=pulseview.git diff --git a/pv/sigsession.cpp b/pv/sigsession.cpp index f3eb194..8083021 100644 --- a/pv/sigsession.cpp +++ b/pv/sigsession.cpp @@ -153,6 +153,8 @@ void SigSession::set_device(shared_ptr device) }); update_signals(device); } + + device_selected(); } void SigSession::set_file(const string &name) @@ -166,6 +168,7 @@ void SigSession::set_file(const string &name) }); device_manager_.update_display_name(device_); update_signals(device_); + device_selected(); } void SigSession::set_default_device() @@ -418,8 +421,12 @@ shared_ptr SigSession::signal_from_channel( void SigSession::read_sample_rate(shared_ptr device) { - uint64_t sample_rate = VariantBase::cast_dynamic>( - device->config_get(ConfigKey::SAMPLERATE)).get(); + const auto keys = device_->config_keys(ConfigKey::DEVICE_OPTIONS); + const auto iter = keys.find(ConfigKey::SAMPLERATE); + const uint64_t sample_rate = (iter != keys.end() && + (*iter).second.find(sigrok::GET) != (*iter).second.end()) ? + VariantBase::cast_dynamic>( + device->config_get(ConfigKey::SAMPLERATE)).get() : 0; // Set the sample rate of all data const set< shared_ptr > data_set = get_data(); @@ -504,13 +511,14 @@ void SigSession::feed_in_logic(shared_ptr logic) set_capture_state(Running); // Get sample limit. - uint64_t sample_limit; - try { - sample_limit = VariantBase::cast_dynamic>( - device_->config_get(ConfigKey::LIMIT_SAMPLES)).get(); - } catch (Error) { - sample_limit = 0; - } + const auto keys = device_->config_keys( + ConfigKey::DEVICE_OPTIONS); + const auto iter = keys.find(ConfigKey::LIMIT_SAMPLES); + const uint64_t sample_limit = (iter != keys.end() && + (*iter).second.find(sigrok::GET) != + (*iter).second.end()) ? + VariantBase::cast_dynamic>( + device_->config_get(ConfigKey::LIMIT_SAMPLES)).get() : 0; // Create a new data snapshot cur_logic_snapshot_ = shared_ptr(