X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=blobdiff_plain;f=bindings%2Fcxx%2Finclude%2Flibsigrokcxx%2Flibsigrokcxx.hpp;fp=bindings%2Fcxx%2Finclude%2Flibsigrokcxx%2Flibsigrokcxx.hpp;h=80888af61c5064a81c97110af4e6568740126371;hp=b1ab7a5bd6f6e04a06607c80017e8fc0d9473f73;hb=8cd15dd4ce2fdbefbcc6e64632c8006e5404f253;hpb=1aba65727015e298f213c851dbc8d2d57d27d37b diff --git a/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp b/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp index b1ab7a5b..80888af6 100644 --- a/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp +++ b/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp @@ -252,6 +252,8 @@ public: map > drivers(); /** Available input formats, indexed by name. */ map > input_formats(); + /** Lookup the responsible input module for an input file. */ + shared_ptr input_format_match(string filename); /** Available output formats, indexed by name. */ map > output_formats(); /** Current log level. */ @@ -283,7 +285,7 @@ public: /** Create an analog packet. */ shared_ptr create_analog_packet( vector > channels, - float *data_pointer, unsigned int num_samples, const Quantity *mq, + const float *data_pointer, unsigned int num_samples, const Quantity *mq, const Unit *unit, vector mqflags); /** Load a saved session. * @param filename File name string. */ @@ -333,7 +335,7 @@ public: 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. */ + * @param capability Capability to check for. */ bool config_check(const ConfigKey *key, const Capability *capability) const; protected: Configurable( @@ -758,6 +760,8 @@ private: const struct sr_datafeed_logic *_structure; friend class Packet; + friend class Analog; + friend struct std::default_delete; }; /** Payload of a datafeed packet with analog data */ @@ -803,6 +807,34 @@ public: const Unit *unit() const; /** Measurement flags associated with the samples in this packet. */ vector mq_flags() const; + /** + * Provides a Logic packet that contains a conversion of the analog + * data using a simple threshold. + * + * @param threshold Threshold to use. + * @param data_ptr Pointer to num_samples() bytes where the logic + * samples are stored. When nullptr, memory for + * logic->data_pointer() will be allocated and must + * be freed by the caller. + */ + shared_ptr get_logic_via_threshold(float threshold, + uint8_t *data_ptr=nullptr) const; + /** + * Provides a Logic packet that contains a conversion of the analog + * data using a Schmitt-Trigger. + * + * @param lo_thr Low threshold to use (anything below this is low). + * @param hi_thr High threshold to use (anything above this is high). + * @param state Points to a byte that contains the current state of the + * converter. For best results, set to value of logic + * sample n-1. + * @param data_ptr Pointer to num_samples() bytes where the logic + * samples are stored. When nullptr, memory for + * logic->data_pointer() will be allocated and must be + * freed by the caller. + */ + shared_ptr get_logic_via_schmitt_trigger(float lo_thr, + float hi_thr, uint8_t *state, uint8_t *data_ptr=nullptr) const; private: explicit Analog(const struct sr_datafeed_analog *structure); ~Analog(); @@ -845,7 +877,7 @@ public: /** Description of this input format. */ string description() const; /** A list of preferred file name extensions for this file format. - * @note This list is a recommendation only. */ + * @note This list is a recommendation only. */ vector extensions() const; /** Options supported by this input format. */ map > options(); @@ -917,6 +949,8 @@ public: Glib::VariantBase default_value() const; /** Possible values for this option, if a limited set. */ vector values() const; + /** Parse a string argument into the appropriate type for this option. */ + Glib::VariantBase parse_string(string value); private: Option(const struct sr_option *structure, shared_ptr structure_array); @@ -939,7 +973,7 @@ public: /** Description of this output format. */ string description() const; /** A list of preferred file name extensions for this file format. - * @note This list is a recommendation only. */ + * @note This list is a recommendation only. */ vector extensions() const; /** Options supported by this output format. */ map > options();