X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fsession.cpp;h=2a4814f807e2be19fe0c4aeef93d5abfb982e13f;hb=4365a4406b5a81a12c6a7d0fbaed01f6d59df882;hp=e187a4d35245aecefe25b344433346595664c1f4;hpb=8524a597c3625c49cb42436c25fd9b06d9b5b06a;p=pulseview.git diff --git a/pv/session.cpp b/pv/session.cpp index e187a4d..2a4814f 100644 --- a/pv/session.cpp +++ b/pv/session.cpp @@ -405,31 +405,13 @@ shared_ptr Session::signal_from_channel( return shared_ptr(); } -void Session::read_sample_rate(shared_ptr device) -{ - assert(device); - map< const ConfigKey*, set > keys; - - try { - keys = device->config_keys(ConfigKey::DEVICE_OPTIONS); - } catch (const Error) {} - - const auto iter = keys.find(ConfigKey::SAMPLERATE); - cur_samplerate_ = (iter != keys.end() && - (*iter).second.find(sigrok::GET) != (*iter).second.end()) ? - VariantBase::cast_dynamic>( - device->config_get(ConfigKey::SAMPLERATE)).get() : 0; -} - void Session::sample_thread_proc(shared_ptr device, function error_handler) { assert(device); assert(error_handler); - const std::shared_ptr sr_dev = device->device(); - assert(sr_dev); - read_sample_rate(sr_dev); + cur_samplerate_ = device_->read_config(ConfigKey::SAMPLERATE); try { device_->session()->start(); @@ -454,7 +436,7 @@ void Session::sample_thread_proc(shared_ptr device, void Session::feed_in_header() { - read_sample_rate(device_->device()); + cur_samplerate_ = device_->read_config(ConfigKey::SAMPLERATE); } void Session::feed_in_meta(shared_ptr meta) @@ -495,18 +477,8 @@ void Session::feed_in_logic(shared_ptr logic) set_capture_state(Running); // Get sample limit. - assert(device_); - const std::shared_ptr device = - device_->device(); - assert(device); - 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; + const uint64_t sample_limit = device_->read_config( + ConfigKey::LIMIT_SAMPLES); // Create a new data segment cur_logic_segment_ = shared_ptr(