X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=bindings%2Fcxx%2Finclude%2Flibsigrokcxx%2Flibsigrokcxx.hpp;h=1db6c7dfecf0cd502ed646266fc46cc5ff62148b;hb=36bb818d6f10ac1187f160f4c2ab1169aeb4e86f;hp=b60d613257ee5bb3341c7077decee3339c36ac1d;hpb=cea8c3124f982606f4b466374c568d0f723b8197;p=libsigrok.git diff --git a/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp b/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp index b60d6132..1db6c7df 100644 --- a/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp +++ b/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp @@ -98,6 +98,7 @@ class SR_API HardwareDevice; class SR_API Channel; class SR_API Session; class SR_API ConfigKey; +class SR_API Capability; class SR_API InputFormat; class SR_API OutputFormat; class SR_API OutputFlag; @@ -307,19 +308,15 @@ private: ~Context(); friend class Session; friend class Driver; - friend class std::default_delete; -}; - -enum Capability { - GET = SR_CONF_GET, - SET = SR_CONF_SET, - LIST = SR_CONF_LIST + friend struct std::default_delete; }; /** An object that can be configured. */ class SR_API Configurable { public: + /** Supported configuration keys. */ + set config_keys() const; /** Read configuration for the given key. * @param key ConfigKey to read. */ Glib::VariantBase config_get(const ConfigKey *key) const; @@ -330,10 +327,13 @@ public: /** Enumerate available values for the given configuration key. * @param key ConfigKey to enumerate values for. */ Glib::VariantContainerBase config_list(const ConfigKey *key) const; - /** Enumerate available keys, according to a given index key. */ - map > config_keys(const ConfigKey *key); - /** Check for a key in the list from a given index key. */ - bool config_check(const ConfigKey *key, const ConfigKey *index_key) const; + /** Enumerate configuration capabilities for the given configuration key. + * @param key ConfigKey to enumerate capabilities for. */ + set config_capabilities(const ConfigKey *key) const; + /** Check whether a configuration capability is supported for a given key. + * @param key ConfigKey to check. + * @param capability Capability to check for. */ + bool config_check(const ConfigKey *key, const Capability *capability) const; protected: Configurable( struct sr_dev_driver *driver, @@ -346,15 +346,15 @@ protected: }; /** A hardware driver provided by the library */ -class SR_API Driver : - public ParentOwned, - public Configurable +class SR_API Driver : public ParentOwned, public Configurable { public: /** Name of this driver. */ string name() const; /** Long name for this driver. */ string long_name() const; + /** Scan options supported by this driver. */ + set scan_options() const; /** Scan for devices and return a list of devices found. * @param options Mapping of (ConfigKey, value) pairs. */ vector > scan(map @@ -368,7 +368,7 @@ private: friend class Context; friend class HardwareDevice; friend class ChannelGroup; - friend class std::default_delete; + friend struct std::default_delete; }; /** A generic device, either hardware or virtual */ @@ -409,7 +409,7 @@ private: friend class ChannelGroup; friend class Output; friend class Analog; - friend class std::default_delete; + friend struct std::default_delete; }; /** A real hardware device, connected via a driver */ @@ -428,7 +428,7 @@ private: friend class Driver; friend class ChannelGroup; - friend class std::default_delete; + friend struct std::default_delete; }; /** A virtual device, created by the user */ @@ -445,7 +445,7 @@ private: shared_ptr get_shared_from_this(); friend class Context; - friend class std::default_delete; + friend struct std::default_delete; }; /** A channel on a device */ @@ -478,7 +478,7 @@ private: friend class Session; friend class TriggerStage; friend class Context; - friend class std::default_delete; + friend struct std::default_delete; }; /** A group of channels on a device, which share some configuration */ @@ -496,7 +496,7 @@ private: ~ChannelGroup(); vector _channels; friend class Device; - friend class std::default_delete; + friend struct std::default_delete; }; /** A trigger configuration */ @@ -517,7 +517,7 @@ private: vector > _stages; friend class Context; friend class Session; - friend class std::default_delete; + friend struct std::default_delete; }; /** A stage in a trigger configuration */ @@ -544,7 +544,7 @@ private: explicit TriggerStage(struct sr_trigger_stage *structure); ~TriggerStage(); friend class Trigger; - friend class std::default_delete; + friend struct std::default_delete; }; /** A match condition in a trigger configuration */ @@ -564,7 +564,7 @@ private: struct sr_trigger_match *_structure; shared_ptr _channel; friend class TriggerStage; - friend class std::default_delete; + friend struct std::default_delete; }; /** Type of session stopped callback */ @@ -599,7 +599,7 @@ private: shared_ptr get_shared_from_this(); friend class Session; - friend class std::default_delete; + friend struct std::default_delete; }; /** A sigrok session */ @@ -654,7 +654,7 @@ private: friend class Context; friend class DatafeedCallbackData; friend class SessionDevice; - friend class std::default_delete; + friend struct std::default_delete; }; /** A packet on the session datafeed */ @@ -681,7 +681,7 @@ private: friend class Logic; friend class Analog; friend class Context; - friend class std::default_delete; + friend struct std::default_delete; }; /** Abstract base class for datafeed packet payloads */ @@ -695,7 +695,7 @@ private: friend class Packet; friend class Output; - friend class std::default_delete; + friend struct std::default_delete; }; /** Payload of a datafeed header packet */ @@ -813,7 +813,7 @@ private: friend class Context; friend class InputDevice; - friend class std::default_delete; + friend struct std::default_delete; }; /** An input instance (an input format applied to a file or stream) */ @@ -837,7 +837,7 @@ private: friend class Context; friend class InputFormat; - friend class std::default_delete; + friend struct std::default_delete; }; /** A virtual device associated with an input */ @@ -851,7 +851,7 @@ private: shared_ptr get_shared_from_this(); shared_ptr _input; friend class Input; - friend class std::default_delete; + friend struct std::default_delete; }; /** An option used by an output format */ @@ -877,7 +877,7 @@ private: friend class InputFormat; friend class OutputFormat; - friend class std::default_delete