X-Git-Url: http://git.code-monkey.de/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fsigsession.cpp;h=80830214877148f38a6100c06dc43bbc56c0a134;hp=fb457f6dcd7599003cf0d0b9981e3c07424fc507;hb=ed1d9d81f46c6595bea7278aa5dc9c1213c81609;hpb=3e7636f9f0037ea4b616a35c6bec4f003f37bc8a diff --git a/pv/sigsession.cpp b/pv/sigsession.cpp index fb457f6..8083021 100644 --- a/pv/sigsession.cpp +++ b/pv/sigsession.cpp @@ -421,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(); @@ -507,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(