X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdevice%2Fdevinst.h;h=1e0850c8cd9ae8089e2e98df7e65a97f3feae84f;hp=6e81f49c686fcc8ab1424ed2836ae6e859e5e348;hb=87b79835014a386fb51b52bc993dbb693bd27197;hpb=921b90c0b3ae0cf44247da3d87bd7dc0612e9681 diff --git a/pv/device/devinst.h b/pv/device/devinst.h index 6e81f49c..1e0850c8 100644 --- a/pv/device/devinst.h +++ b/pv/device/devinst.h @@ -21,10 +21,10 @@ #ifndef PULSEVIEW_PV_DEVICE_DEVINST_H #define PULSEVIEW_PV_DEVICE_DEVINST_H +#include +#include #include -#include - #include #include @@ -32,10 +32,13 @@ #include struct sr_dev_inst; -struct sr_probe; -struct sr_probe_group; +struct sr_channel; +struct sr_channel_group; + +#include namespace pv { + namespace device { class DevInst : public QObject @@ -43,20 +46,28 @@ class DevInst : public QObject Q_OBJECT protected: - DevInst(sr_dev_inst *sdi); + DevInst(); public: - sr_dev_inst* dev_inst() const; + virtual sr_dev_inst* dev_inst() const = 0; + + virtual void use(SigSession *owner) throw(QString); + + virtual void release(); + + SigSession* owner() const; virtual std::string format_device_title() const = 0; - GVariant* get_config(const sr_probe_group *group, int key); + virtual std::map get_device_info() const = 0; - bool set_config(const sr_probe_group *group, int key, GVariant *data); + GVariant* get_config(const sr_channel_group *group, int key); - GVariant* list_config(const sr_probe_group *group, int key); + bool set_config(const sr_channel_group *group, int key, GVariant *data); - void enable_probe(const sr_probe *probe, bool enable = true); + GVariant* list_config(const sr_channel_group *group, int key); + + void enable_channel(const sr_channel *channel, bool enable = true); /** * @brief Gets the sample limit from the driver. @@ -66,11 +77,18 @@ public: */ uint64_t get_sample_limit(); -signals: + virtual bool is_trigger_enabled() const; + +public: + virtual void start(); + + virtual void run(); + +Q_SIGNALS: void config_changed(); protected: - sr_dev_inst *const _sdi; + SigSession *_owner; }; } // device