X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fdevice%2Fdevinst.h;h=bdadc2c3e72e44eccc2ca7012f3260358d412824;hb=2445160a5d1eb98196d2a1d57246d4c37dd13811;hp=073813f2f7d1d03f418c05b07952ecc63fe784c4;hpb=945745012eb57cefa1ef457daf48cfffa99f9ec2;p=pulseview.git diff --git a/pv/device/devinst.h b/pv/device/devinst.h index 073813f..bdadc2c 100644 --- a/pv/device/devinst.h +++ b/pv/device/devinst.h @@ -33,27 +33,37 @@ struct sr_dev_inst; struct sr_probe; -struct sr_probe_group; +struct sr_channel_group; namespace pv { + +class SigSession; + namespace device { class DevInst : public QObject { Q_OBJECT +protected: + DevInst(); + public: - DevInst(sr_dev_inst *sdi); + virtual sr_dev_inst* dev_inst() const = 0; + + virtual void use(SigSession *owner) throw(QString); + + virtual void release(); - sr_dev_inst* dev_inst() const; + SigSession* owner() const; - std::string format_device_title() const; + virtual std::string format_device_title() const = 0; - GVariant* get_config(const sr_probe_group *group, int key); + GVariant* get_config(const sr_channel_group *group, int key); - bool set_config(const sr_probe_group *group, int key, GVariant *data); + bool set_config(const sr_channel_group *group, int key, GVariant *data); - GVariant* list_config(const sr_probe_group *group, int key); + GVariant* list_config(const sr_channel_group *group, int key); void enable_probe(const sr_probe *probe, bool enable = true); @@ -65,11 +75,18 @@ public: */ uint64_t get_sample_limit(); + virtual bool is_trigger_enabled() const; + +public: + virtual void start(); + + virtual void run(); + signals: void config_changed(); -private: - sr_dev_inst *const _sdi; +protected: + SigSession *_owner; }; } // device