X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fdevices%2Fdevice.cpp;h=403acc4896c684d82d3ee35cf279bc2c945c700e;hb=2b2d10621d5cfd4502fa7a0500170412a5b67941;hp=4027a1c2d820a35ba248e312f3d066af789df620;hpb=5237f0c50352b523c6a0c3d7f931081ecdbdecaa;p=pulseview.git diff --git a/pv/devices/device.cpp b/pv/devices/device.cpp index 4027a1c2..403acc48 100644 --- a/pv/devices/device.cpp +++ b/pv/devices/device.cpp @@ -28,6 +28,7 @@ using std::map; using std::set; using sigrok::ConfigKey; +using sigrok::Capability; using sigrok::Error; using Glib::VariantBase; @@ -36,19 +37,23 @@ using Glib::Variant; namespace pv { namespace devices { -Device::Device() { +Device::Device() +{ } -Device::~Device() { +Device::~Device() +{ if (session_) session_->remove_datafeed_callbacks(); } -std::shared_ptr Device::session() const { +std::shared_ptr Device::session() const +{ return session_; } -std::shared_ptr Device::device() const { +std::shared_ptr Device::device() const +{ return device_; } @@ -60,38 +65,32 @@ template T Device::read_config(const ConfigKey *key, const T default_value) { assert(key); - map< const ConfigKey*, set > keys; if (!device_) return default_value; - try { - keys = device_->config_keys(ConfigKey::DEVICE_OPTIONS); - } catch (const Error) { + if (!device_->config_check(key, Capability::GET)) return default_value; - } - const auto iter = keys.find(key); - if (iter == keys.end() || - (*iter).second.find(sigrok::GET) != (*iter).second.end()) - return default_value; - - return VariantBase::cast_dynamic>( + return VariantBase::cast_dynamic>( device_->config_get(ConfigKey::SAMPLERATE)).get(); } -void Device::start() { +void Device::start() +{ assert(session_); session_->start(); } -void Device::run() { +void Device::run() +{ assert(device_); assert(session_); session_->run(); } -void Device::stop() { +void Device::stop() +{ assert(session_); session_->stop(); }