X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;ds=sidebyside;f=pv%2Fdevices%2Fdevice.cpp;h=c6784d403661a21d5ae58f82686695fc577d1d77;hb=8b2eb22ed4f467f5364e8e9824a12137e2433b7e;hp=004749c9462f5bee93bd983901151737d5ea3337;hpb=da30ecb7e72bd2547e524258efa5ec642988b70b;p=pulseview.git
diff --git a/pv/devices/device.cpp b/pv/devices/device.cpp
index 004749c..c6784d4 100644
--- a/pv/devices/device.cpp
+++ b/pv/devices/device.cpp
@@ -14,8 +14,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ * along with this program; if not, see .
*/
#include
@@ -24,32 +23,69 @@
#include "device.hpp"
+using std::map;
+using std::set;
+
+using sigrok::ConfigKey;
+using sigrok::Capability;
+using sigrok::Error;
+
+using Glib::VariantBase;
+using Glib::Variant;
+
namespace pv {
namespace devices {
-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_;
}
-void Device::run() {
+template
+uint64_t Device::read_config(const sigrok::ConfigKey*,
+ const uint64_t);
+
+template
+T Device::read_config(const ConfigKey *key, const T default_value)
+{
+ assert(key);
+
+ if (!device_)
+ return default_value;
+
+ if (!device_->config_check(key, Capability::GET))
+ return default_value;
+
+ return VariantBase::cast_dynamic>(
+ device_->config_get(ConfigKey::SAMPLERATE)).get();
+}
+
+void Device::start()
+{
+ assert(session_);
+ session_->start();
+}
+
+void Device::run()
+{
assert(device_);
assert(session_);
session_->run();
}
-void Device::stop() {
+void Device::stop()
+{
assert(session_);
session_->stop();
}