X-Git-Url: http://git.code-monkey.de/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fsession.cpp;h=46af90cc0fa68141e1fe48782d56dc9a2a8a6771;hp=5e3b492c1ae018c1fe390d7f1f010eb104209203;hb=ff008de665c7990d5f3408f918ff090d8e6c60b2;hpb=7f4038d6abbe86e8a8c511df188293a704064167 diff --git a/pv/session.cpp b/pv/session.cpp index 5e3b492..46af90c 100644 --- a/pv/session.cpp +++ b/pv/session.cpp @@ -85,7 +85,8 @@ namespace pv { Session::Session(DeviceManager &device_manager) : device_manager_(device_manager), session_(device_manager.context()->create_session()), - capture_state_(Stopped) + capture_state_(Stopped), + cur_samplerate_(0) { set_default_device(); } @@ -431,17 +432,10 @@ void Session::read_sample_rate(shared_ptr device) { const auto keys = device_->config_keys(ConfigKey::DEVICE_OPTIONS); const auto iter = keys.find(ConfigKey::SAMPLERATE); - const uint64_t sample_rate = (iter != keys.end() && + cur_samplerate_ = (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(); - for (shared_ptr data : data_set) { - assert(data); - data->set_samplerate(sample_rate); - } } void Session::sample_thread_proc(shared_ptr device, @@ -530,7 +524,8 @@ void Session::feed_in_logic(shared_ptr logic) // Create a new data snapshot cur_logic_snapshot_ = shared_ptr( - new data::LogicSnapshot(logic, sample_limit)); + new data::LogicSnapshot( + logic, cur_samplerate_, sample_limit)); logic_data_->push_snapshot(cur_logic_snapshot_); // @todo Putting this here means that only listeners querying @@ -585,7 +580,8 @@ void Session::feed_in_analog(shared_ptr analog) // Create a snapshot, keep it in the maps of channels snapshot = shared_ptr( - new data::AnalogSnapshot(sample_limit)); + new data::AnalogSnapshot( + cur_samplerate_, sample_limit)); cur_analog_snapshots_[channel] = snapshot; // Find the annalog data associated with the channel