X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=bindings%2Fcxx%2Finclude%2Flibsigrokcxx%2Flibsigrokcxx.hpp;h=6fdb153fe14a6af86310f2ada0783cd24e8ba1bf;hb=a73d49263611b0d65a3ca1ad85bbee592cf1a234;hp=3c8e7276b13a6b7a563eaf7fc265f829a1d56384;hpb=5faebab2903dc91949edc31f0a4b118d86090a30;p=libsigrok.git diff --git a/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp b/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp index 3c8e7276..6fdb153f 100644 --- a/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp +++ b/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp @@ -120,10 +120,10 @@ class SR_API UserDevice; class SR_API Error: public exception { public: - Error(int result); - ~Error() throw(); + explicit Error(int result); + ~Error() noexcept; const int result; - const char *what() const throw(); + const char *what() const noexcept; }; /* Base template for classes whose resources are owned by a parent object. */ @@ -163,7 +163,7 @@ public: if (!(shared = _weak_this.lock())) { - shared = shared_ptr((Class *) this, reset_parent); + shared = shared_ptr(static_cast(this), reset_parent); _weak_this = shared; } @@ -194,7 +194,7 @@ protected: Struct *_structure; - ParentOwned(Struct *structure) : + explicit ParentOwned(Struct *structure) : _structure(structure) { } @@ -215,7 +215,7 @@ public: protected: Struct *_structure; - UserOwned(Struct *structure) : + explicit UserOwned(Struct *structure) : _structure(structure) { } @@ -246,11 +246,11 @@ private: virtual size_t read(const struct sr_resource *res, void *buf, size_t count) = 0; static SR_PRIV int open_callback(struct sr_resource *res, - const char *name, void *cb_data); + const char *name, void *cb_data) noexcept; static SR_PRIV int close_callback(struct sr_resource *res, - void *cb_data); + void *cb_data) noexcept; static SR_PRIV ssize_t read_callback(const struct sr_resource *res, - void *buf, size_t count, void *cb_data); + void *buf, size_t count, void *cb_data) noexcept; friend class Context; }; @@ -261,9 +261,9 @@ public: /** Create new context */ static shared_ptr create(); /** libsigrok package version. */ - string package_version(); + static string package_version(); /** libsigrok library version. */ - string lib_version(); + static string lib_version(); /** Available hardware drivers, indexed by name. */ map > drivers(); /** Available input formats, indexed by name. */ @@ -292,15 +292,15 @@ public: shared_ptr create_header_packet(Glib::TimeVal start_time); /** Create a meta packet. */ shared_ptr create_meta_packet( - map config); + const map &config); /** Create a logic packet. */ shared_ptr create_logic_packet( void *data_pointer, size_t data_length, unsigned int unit_size); /** Create an analog packet. */ - shared_ptr create_analog_old_packet( - vector > channels, + shared_ptr create_analog_packet( + const vector > &channels, float *data_pointer, unsigned int num_samples, const Quantity *mq, - const Unit *unit, vector mqflags); + const Unit *unit, const vector &mqflags); /** Load a saved session. * @param filename File name string. */ shared_ptr load_session(string filename); @@ -343,7 +343,7 @@ public: /** Set configuration for the given key to a specified value. * @param key ConfigKey to set. * @param value Value to set. */ - void config_set(const ConfigKey *key, Glib::VariantBase value); + void config_set(const ConfigKey *key, const Glib::VariantBase &value); /** Enumerate available values for the given configuration key. * @param key ConfigKey to enumerate values for. */ Glib::VariantContainerBase config_list(const ConfigKey *key); @@ -375,12 +375,11 @@ public: /** Scan for devices and return a list of devices found. * @param options Mapping of (ConfigKey, value) pairs. */ vector > scan( - map options = - map()); + const map &options = {}); protected: bool _initialized; vector _devices; - Driver(struct sr_dev_driver *structure); + explicit Driver(struct sr_dev_driver *structure); ~Driver(); friend class Context; friend class HardwareDevice; @@ -410,7 +409,7 @@ public: /** Close device. */ void close(); protected: - Device(struct sr_dev_inst *structure); + explicit Device(struct sr_dev_inst *structure); ~Device(); virtual shared_ptr get_shared_from_this() = 0; shared_ptr get_channel(struct sr_channel *ptr); @@ -428,7 +427,7 @@ protected: friend class Channel; friend class ChannelGroup; friend class Output; - friend class AnalogOld; + friend class Analog; }; /** A real hardware device, connected via a driver */ @@ -497,7 +496,7 @@ public: /** Get the index number of this channel. */ unsigned int index(); protected: - Channel(struct sr_channel *structure); + explicit Channel(struct sr_channel *structure); ~Channel(); const ChannelType * const _type; friend class Device; @@ -565,7 +564,7 @@ public: void add_match(shared_ptr channel, const TriggerMatchType *type, float value); protected: vector _matches; - TriggerStage(struct sr_trigger_stage *structure); + explicit TriggerStage(struct sr_trigger_stage *structure); ~TriggerStage(); friend class Trigger; }; @@ -615,7 +614,7 @@ class SR_API SessionDevice : public Device { protected: - SessionDevice(struct sr_dev_inst *sdi); + explicit SessionDevice(struct sr_dev_inst *sdi); ~SessionDevice(); shared_ptr get_shared_from_this(); /** Deleter needed to allow shared_ptr use with protected destructor. */ @@ -664,7 +663,7 @@ public: /** Get filename this session was loaded from. */ string filename(); protected: - Session(shared_ptr context); + explicit Session(shared_ptr context); Session(shared_ptr context, string filename); ~Session(); shared_ptr get_device(const struct sr_dev_inst *sdi); @@ -702,7 +701,7 @@ protected: friend class Header; friend class Meta; friend class Logic; - friend class AnalogOld; + friend class Analog; friend class Context; }; @@ -735,7 +734,7 @@ public: /* Start time of this session. */ Glib::TimeVal start_time(); protected: - Header(const struct sr_datafeed_header *structure); + explicit Header(const struct sr_datafeed_header *structure); ~Header(); shared_ptr get_shared_pointer(Packet *parent); friend class Packet; @@ -750,7 +749,7 @@ public: /* Mapping of (ConfigKey, value) pairs. */ map config(); protected: - Meta(const struct sr_datafeed_meta *structure); + explicit Meta(const struct sr_datafeed_meta *structure); ~Meta(); shared_ptr get_shared_pointer(Packet *parent); map _config; @@ -770,22 +769,22 @@ public: /* Size of each sample in bytes. */ unsigned int unit_size(); protected: - Logic(const struct sr_datafeed_logic *structure); + explicit Logic(const struct sr_datafeed_logic *structure); ~Logic(); shared_ptr get_shared_pointer(Packet *parent); friend class Packet; }; /** Payload of a datafeed packet with analog data */ -class SR_API AnalogOld : - public ParentOwned, +class SR_API Analog : + public ParentOwned, public PacketPayload { public: /** Pointer to data. */ - float *data_pointer(); + void *data_pointer(); /** Number of samples in this packet. */ - unsigned int num_samples(); + uint32_t num_samples(); /** Channels for which this packet contains data. */ vector > channels(); /** Measured quantity of the samples in this packet. */ @@ -795,8 +794,8 @@ public: /** Measurement flags associated with the samples in this packet. */ vector mq_flags(); protected: - AnalogOld(const struct sr_datafeed_analog_old *structure); - ~AnalogOld(); + explicit Analog(const struct sr_datafeed_analog *structure); + ~Analog(); shared_ptr get_shared_pointer(Packet *parent); friend class Packet; }; @@ -817,10 +816,9 @@ public: map > options(); /** Create an input using this input format. * @param options Mapping of (option name, value) pairs. */ - shared_ptr create_input(map options = - map()); + shared_ptr create_input(const map &options = {}); protected: - InputFormat(const struct sr_input_module *structure); + explicit InputFormat(const struct sr_input_module *structure); ~InputFormat(); friend class Context; friend class InputDevice; @@ -904,16 +902,14 @@ public: * @param options Mapping of (option name, value) pairs. */ shared_ptr create_output( shared_ptr device, - map options = - map()); + const map &options = {}); /** Create an output using this format. * @param filename Name of destination file. * @param device Device to output for. * @param options Mapping of (option name, value) pairs. */ shared_ptr create_output(string filename, shared_ptr device, - map options = - map()); + const map &options = {}); /** * Checks whether a given flag is set. * @param flag Flag to check @@ -922,7 +918,7 @@ public: */ bool test_flag(const OutputFlag *flag); protected: - OutputFormat(const struct sr_output_module *structure); + explicit OutputFormat(const struct sr_output_module *structure); ~OutputFormat(); friend class Context; friend class Output; @@ -938,9 +934,9 @@ public: protected: Output(shared_ptr format, shared_ptr device); Output(shared_ptr format, - shared_ptr device, map options); + shared_ptr device, const map &options); Output(string filename, shared_ptr format, - shared_ptr device, map options); + shared_ptr device, const map &options); ~Output(); const shared_ptr _format; const shared_ptr _device;