bindings: Remove 'get_' prefix from all accessors.

This commit is contained in:
Martin Ling 2014-09-11 21:25:52 +01:00
parent edbd09250b
commit 3b16108573
8 changed files with 498 additions and 486 deletions

View File

@ -1,22 +1,22 @@
const DataType *ConfigKey::get_data_type() const const DataType *ConfigKey::data_type() const
{ {
const struct sr_config_info *info = sr_config_info_get(id); const struct sr_config_info *info = sr_config_info_get(_id);
if (!info) if (!info)
throw Error(SR_ERR_NA); throw Error(SR_ERR_NA);
return DataType::get(info->datatype); return DataType::get(info->datatype);
} }
string ConfigKey::get_identifier() const string ConfigKey::identifier() const
{ {
const struct sr_config_info *info = sr_config_info_get(id); const struct sr_config_info *info = sr_config_info_get(_id);
if (!info) if (!info)
throw Error(SR_ERR_NA); throw Error(SR_ERR_NA);
return valid_string(info->id); return valid_string(info->id);
} }
string ConfigKey::get_description() const string ConfigKey::description() const
{ {
const struct sr_config_info *info = sr_config_info_get(id); const struct sr_config_info *info = sr_config_info_get(_id);
if (!info) if (!info)
throw Error(SR_ERR_NA); throw Error(SR_ERR_NA);
return valid_string(info->name); return valid_string(info->name);
@ -75,7 +75,7 @@ Glib::VariantBase ConfigKey::parse_string(string value) const
GVariant *variant; GVariant *variant;
uint64_t p, q; uint64_t p, q;
switch (get_data_type()->get_id()) switch (data_type()->id())
{ {
case SR_T_UINT64: case SR_T_UINT64:
check(sr_parse_sizestring(value.c_str(), &p)); check(sr_parse_sizestring(value.c_str(), &p));

View File

@ -1,9 +1,9 @@
/** Data type used for this configuration key. */ /** Data type used for this configuration key. */
const DataType *get_data_type() const; const DataType *data_type() const;
/** String identifier for this configuration key, suitable for CLI use. */ /** String identifier for this configuration key, suitable for CLI use. */
string get_identifier() const; string identifier() const;
/** Description of this configuration key. */ /** Description of this configuration key. */
string get_description() const; string description() const;
/** Get configuration key by string identifier. */ /** Get configuration key by string identifier. */
static const ConfigKey *get(string identifier); static const ConfigKey *get(string identifier);
/** Parse a string argument into the appropriate type for this key. */ /** Parse a string argument into the appropriate type for this key. */

File diff suppressed because it is too large Load Diff

View File

@ -82,7 +82,7 @@ public:
# Template for beginning of private members. # Template for beginning of private members.
header_private_template = """ header_private_template = """
private: private:
static const std::map<enum {enumname}, const {classname} *> values; static const std::map<enum {enumname}, const {classname} *> _values;
{classname}(enum {enumname} id, const char name[]); {classname}(enum {enumname} id, const char name[]);
""" """
@ -95,7 +95,7 @@ code_template = """
const {classname} *{classname}::get(int id) const {classname} *{classname}::get(int id)
{{ {{
return {classname}::values.at(static_cast<{enumname}>(id)); return {classname}::_values.at(static_cast<{enumname}>(id));
}} }}
""" """
@ -153,7 +153,7 @@ for enum, (classname, classbrief) in classes.items():
classname, classname, trimmed_name, classname, trimmed_name) classname, classname, trimmed_name, classname, trimmed_name)
# Define map of enum values to constants # Define map of enum values to constants
print >> code, 'const std::map<enum %s, const %s *> %s::values = {' % ( print >> code, 'const std::map<enum %s, const %s *> %s::_values = {' % (
enum_name, classname, classname) enum_name, classname, classname)
for name, trimmed_name in zip(member_names, trimmed_names): for name, trimmed_name in zip(member_names, trimmed_names):
print >> code, '\t{%s, %s::%s},' % (name, classname, trimmed_name) print >> code, '\t{%s, %s::%s},' % (name, classname, trimmed_name)

View File

@ -142,10 +142,10 @@ protected:
This strategy ensures that the destructors for both the child and This strategy ensures that the destructors for both the child and
the parent are called at the correct time, i.e. only when all the parent are called at the correct time, i.e. only when all
references to both the parent and all its children are gone. */ references to both the parent and all its children are gone. */
shared_ptr<Parent> parent; shared_ptr<Parent> _parent;
/* Weak pointer for shared_from_this() implementation. */ /* Weak pointer for shared_from_this() implementation. */
weak_ptr<Class> weak_this; weak_ptr<Class> _weak_this;
public: public:
/* Note, this implementation will create a new smart_ptr if none exists. */ /* Note, this implementation will create a new smart_ptr if none exists. */
@ -153,10 +153,10 @@ public:
{ {
shared_ptr<Class> shared; shared_ptr<Class> shared;
if (!(shared = weak_this.lock())) if (!(shared = _weak_this.lock()))
{ {
shared = shared_ptr<Class>((Class *) this, reset_parent); shared = shared_ptr<Class>((Class *) this, reset_parent);
weak_this = shared; _weak_this = shared;
} }
return shared; return shared;
@ -166,7 +166,7 @@ public:
{ {
if (!parent) if (!parent)
throw Error(SR_ERR_BUG); throw Error(SR_ERR_BUG);
this->parent = parent; this->_parent = parent;
return shared_from_this(); return shared_from_this();
} }
@ -179,15 +179,15 @@ public:
protected: protected:
static void reset_parent(Class *object) static void reset_parent(Class *object)
{ {
if (!object->parent) if (!object->_parent)
throw Error(SR_ERR_BUG); throw Error(SR_ERR_BUG);
object->parent.reset(); object->_parent.reset();
} }
Struct *structure; Struct *_structure;
ParentOwned<Class, Parent, Struct>(Struct *structure) : ParentOwned<Class, Parent, Struct>(Struct *structure) :
structure(structure) _structure(structure)
{ {
} }
}; };
@ -205,10 +205,10 @@ public:
return shared; return shared;
} }
protected: protected:
Struct *structure; Struct *_structure;
UserOwned<Class, Struct>(Struct *structure) : UserOwned<Class, Struct>(Struct *structure) :
structure(structure) _structure(structure)
{ {
} }
@ -230,22 +230,22 @@ public:
/** Create new context */ /** Create new context */
static shared_ptr<Context> create(); static shared_ptr<Context> create();
/** libsigrok package version. */ /** libsigrok package version. */
string get_package_version(); string package_version();
/** libsigrok library version. */ /** libsigrok library version. */
string get_lib_version(); string lib_version();
/** Available hardware drivers, indexed by name. */ /** Available hardware drivers, indexed by name. */
map<string, shared_ptr<Driver> > get_drivers(); map<string, shared_ptr<Driver> > drivers();
/** Available input formats, indexed by name. */ /** Available input formats, indexed by name. */
map<string, shared_ptr<InputFormat> > get_input_formats(); map<string, shared_ptr<InputFormat> > input_formats();
/** Available output formats, indexed by name. */ /** Available output formats, indexed by name. */
map<string, shared_ptr<OutputFormat> > get_output_formats(); map<string, shared_ptr<OutputFormat> > output_formats();
/** Current log level. */ /** Current log level. */
const LogLevel *get_log_level(); const LogLevel *log_level();
/** Set the log level. /** Set the log level.
* @param level LogLevel to use. */ * @param level LogLevel to use. */
void set_log_level(const LogLevel *level); void set_log_level(const LogLevel *level);
/** Current log domain. */ /** Current log domain. */
string get_log_domain(); string log_domain();
/** Set the log domain. /** Set the log domain.
* @param value Log domain prefix string. */ * @param value Log domain prefix string. */
void set_log_domain(string value); void set_log_domain(string value);
@ -269,11 +269,11 @@ public:
* @param header Initial data from stream. */ * @param header Initial data from stream. */
shared_ptr<Input> open_stream(string header); shared_ptr<Input> open_stream(string header);
protected: protected:
map<string, Driver *> drivers; map<string, Driver *> _drivers;
map<string, InputFormat *> input_formats; map<string, InputFormat *> _input_formats;
map<string, OutputFormat *> output_formats; map<string, OutputFormat *> _output_formats;
Session *session; Session *_session;
LogCallbackFunction log_callback; LogCallbackFunction _log_callback;
Context(); Context();
~Context(); ~Context();
friend class Deleter; friend class Deleter;
@ -317,16 +317,16 @@ class SR_API Driver :
{ {
public: public:
/** Name of this driver. */ /** Name of this driver. */
string get_name(); string name();
/** Long name for this driver. */ /** Long name for this driver. */
string get_long_name(); string long_name();
/** Scan for devices and return a list of devices found. /** Scan for devices and return a list of devices found.
* @param options Mapping of (ConfigKey, value) pairs. */ * @param options Mapping of (ConfigKey, value) pairs. */
vector<shared_ptr<HardwareDevice> > scan( vector<shared_ptr<HardwareDevice> > scan(
map<const ConfigKey *, Glib::VariantBase> options = {}); map<const ConfigKey *, Glib::VariantBase> options = {});
protected: protected:
bool initialized; bool _initialized;
vector<HardwareDevice *> devices; vector<HardwareDevice *> _devices;
Driver(struct sr_dev_driver *structure); Driver(struct sr_dev_driver *structure);
~Driver(); ~Driver();
friend class Context; friend class Context;
@ -339,17 +339,17 @@ class SR_API Device : public Configurable
{ {
public: public:
/** Description identifying this device. */ /** Description identifying this device. */
string get_description(); string description();
/** Vendor name for this device. */ /** Vendor name for this device. */
string get_vendor(); string vendor();
/** Model name for this device. */ /** Model name for this device. */
string get_model(); string model();
/** Version string for this device. */ /** Version string for this device. */
string get_version(); string version();
/** List of the channels available on this device. */ /** List of the channels available on this device. */
vector<shared_ptr<Channel> > get_channels(); vector<shared_ptr<Channel> > channels();
/** Channel groups available on this device, indexed by name. */ /** Channel groups available on this device, indexed by name. */
map<string, shared_ptr<ChannelGroup> > get_channel_groups(); map<string, shared_ptr<ChannelGroup> > channel_groups();
/** Open device. */ /** Open device. */
void open(); void open();
/** Close device. */ /** Close device. */
@ -359,9 +359,9 @@ protected:
~Device(); ~Device();
virtual shared_ptr<Device> get_shared_from_this() = 0; virtual shared_ptr<Device> get_shared_from_this() = 0;
shared_ptr<Channel> get_channel(struct sr_channel *ptr); shared_ptr<Channel> get_channel(struct sr_channel *ptr);
struct sr_dev_inst *structure; struct sr_dev_inst *_structure;
map<struct sr_channel *, Channel *> channels; map<struct sr_channel *, Channel *> _channels;
map<string, ChannelGroup *> channel_groups; map<string, ChannelGroup *> _channel_groups;
/** Deleter needed to allow shared_ptr use with protected destructor. */ /** Deleter needed to allow shared_ptr use with protected destructor. */
class Deleter class Deleter
{ {
@ -383,12 +383,12 @@ class SR_API HardwareDevice :
{ {
public: public:
/** Driver providing this device. */ /** Driver providing this device. */
shared_ptr<Driver> get_driver(); shared_ptr<Driver> driver();
protected: protected:
HardwareDevice(Driver *driver, struct sr_dev_inst *structure); HardwareDevice(Driver *driver, struct sr_dev_inst *structure);
~HardwareDevice(); ~HardwareDevice();
shared_ptr<Device> get_shared_from_this(); shared_ptr<Device> get_shared_from_this();
Driver *driver; Driver *_driver;
friend class Driver; friend class Driver;
friend class ChannelGroup; friend class ChannelGroup;
}; };
@ -399,23 +399,23 @@ class SR_API Channel :
{ {
public: public:
/** Current name of this channel. */ /** Current name of this channel. */
string get_name(); string name();
/** Set the name of this channel. * /** Set the name of this channel. *
* @param name Name string to set. */ * @param name Name string to set. */
void set_name(string name); void set_name(string name);
/** Type of this channel. */ /** Type of this channel. */
const ChannelType *get_type(); const ChannelType *type();
/** Enabled status of this channel. */ /** Enabled status of this channel. */
bool get_enabled(); bool enabled();
/** Set the enabled status of this channel. /** Set the enabled status of this channel.
* @param value Boolean value to set. */ * @param value Boolean value to set. */
void set_enabled(bool value); void set_enabled(bool value);
/** Get the index number of this channel. */ /** Get the index number of this channel. */
unsigned int get_index(); unsigned int index();
protected: protected:
Channel(struct sr_channel *structure); Channel(struct sr_channel *structure);
~Channel(); ~Channel();
const ChannelType * const type; const ChannelType * const _type;
friend class Device; friend class Device;
friend class ChannelGroup; friend class ChannelGroup;
friend class Session; friend class Session;
@ -429,13 +429,13 @@ class SR_API ChannelGroup :
{ {
public: public:
/** Name of this channel group. */ /** Name of this channel group. */
string get_name(); string name();
/** List of the channels in this group. */ /** List of the channels in this group. */
vector<shared_ptr<Channel> > get_channels(); vector<shared_ptr<Channel> > channels();
protected: protected:
ChannelGroup(Device *device, struct sr_channel_group *structure); ChannelGroup(Device *device, struct sr_channel_group *structure);
~ChannelGroup(); ~ChannelGroup();
vector<Channel *> channels; vector<Channel *> _channels;
friend class Device; friend class Device;
}; };
@ -444,16 +444,16 @@ class SR_API Trigger : public UserOwned<Trigger, struct sr_trigger>
{ {
public: public:
/** Name of this trigger configuration. */ /** Name of this trigger configuration. */
string get_name(); string name();
/** List of the stages in this trigger. */ /** List of the stages in this trigger. */
vector<shared_ptr<TriggerStage> > get_stages(); vector<shared_ptr<TriggerStage> > stages();
/** Add a new stage to this trigger. */ /** Add a new stage to this trigger. */
shared_ptr<TriggerStage> add_stage(); shared_ptr<TriggerStage> add_stage();
protected: protected:
Trigger(shared_ptr<Context> context, string name); Trigger(shared_ptr<Context> context, string name);
~Trigger(); ~Trigger();
shared_ptr<Context> context; shared_ptr<Context> _context;
vector<TriggerStage *> stages; vector<TriggerStage *> _stages;
friend class Deleter; friend class Deleter;
friend class Context; friend class Context;
friend class Session; friend class Session;
@ -465,9 +465,9 @@ class SR_API TriggerStage :
{ {
public: public:
/** Index number of this stage. */ /** Index number of this stage. */
int get_number(); int number();
/** List of match conditions on this stage. */ /** List of match conditions on this stage. */
vector<shared_ptr<TriggerMatch> > get_matches(); vector<shared_ptr<TriggerMatch> > matches();
/** Add a new match condition to this stage. /** Add a new match condition to this stage.
* @param channel Channel to match on. * @param channel Channel to match on.
* @param type TriggerMatchType to apply. */ * @param type TriggerMatchType to apply. */
@ -478,7 +478,7 @@ public:
* @param value Threshold value. */ * @param value Threshold value. */
void add_match(shared_ptr<Channel> channel, const TriggerMatchType *type, float value); void add_match(shared_ptr<Channel> channel, const TriggerMatchType *type, float value);
protected: protected:
vector<TriggerMatch *> matches; vector<TriggerMatch *> _matches;
TriggerStage(struct sr_trigger_stage *structure); TriggerStage(struct sr_trigger_stage *structure);
~TriggerStage(); ~TriggerStage();
friend class Trigger; friend class Trigger;
@ -490,15 +490,15 @@ class SR_API TriggerMatch :
{ {
public: public:
/** Channel this condition matches on. */ /** Channel this condition matches on. */
shared_ptr<Channel> get_channel(); shared_ptr<Channel> channel();
/** Type of match. */ /** Type of match. */
const TriggerMatchType *get_type(); const TriggerMatchType *type();
/** Threshold value. */ /** Threshold value. */
float get_value(); float value();
protected: protected:
TriggerMatch(struct sr_trigger_match *structure, shared_ptr<Channel> channel); TriggerMatch(struct sr_trigger_match *structure, shared_ptr<Channel> channel);
~TriggerMatch(); ~TriggerMatch();
shared_ptr<Channel> channel; shared_ptr<Channel> _channel;
friend class TriggerStage; friend class TriggerStage;
}; };
@ -513,10 +513,10 @@ public:
void run(const struct sr_dev_inst *sdi, void run(const struct sr_dev_inst *sdi,
const struct sr_datafeed_packet *pkt); const struct sr_datafeed_packet *pkt);
protected: protected:
DatafeedCallbackFunction callback; DatafeedCallbackFunction _callback;
DatafeedCallbackData(Session *session, DatafeedCallbackData(Session *session,
DatafeedCallbackFunction callback); DatafeedCallbackFunction callback);
Session *session; Session *_session;
friend class Session; friend class Session;
}; };
@ -531,7 +531,7 @@ public:
bool run(int revents); bool run(int revents);
protected: protected:
SourceCallbackData(shared_ptr<EventSource> source); SourceCallbackData(shared_ptr<EventSource> source);
shared_ptr<EventSource> source; shared_ptr<EventSource> _source;
friend class Session; friend class Session;
}; };
@ -567,13 +567,13 @@ protected:
SOURCE_FD, SOURCE_FD,
SOURCE_POLLFD, SOURCE_POLLFD,
SOURCE_IOCHANNEL SOURCE_IOCHANNEL
} type; } _type;
int fd; int _fd;
Glib::PollFD pollfd; Glib::PollFD _pollfd;
Glib::RefPtr<Glib::IOChannel> channel; Glib::RefPtr<Glib::IOChannel> _channel;
Glib::IOCondition events; Glib::IOCondition _events;
int timeout; int _timeout;
SourceCallbackFunction callback; SourceCallbackFunction _callback;
/** Deleter needed to allow shared_ptr use with protected destructor. */ /** Deleter needed to allow shared_ptr use with protected destructor. */
class Deleter class Deleter
{ {
@ -612,7 +612,7 @@ public:
* @param device Device to add. */ * @param device Device to add. */
void add_device(shared_ptr<Device> device); void add_device(shared_ptr<Device> device);
/** List devices attached to this session. */ /** List devices attached to this session. */
vector<shared_ptr<Device> > get_devices(); vector<shared_ptr<Device> > devices();
/** Remove all devices from this session. */ /** Remove all devices from this session. */
void remove_devices(); void remove_devices();
/** Add a datafeed callback to this session. /** Add a datafeed callback to this session.
@ -641,7 +641,7 @@ public:
/** Append raw logic data to the session file being saved. */ /** Append raw logic data to the session file being saved. */
void append(void *data, size_t length, unsigned int unit_size); void append(void *data, size_t length, unsigned int unit_size);
/** Get current trigger setting. */ /** Get current trigger setting. */
shared_ptr<Trigger> get_trigger(); shared_ptr<Trigger> trigger();
/** Set trigger setting. /** Set trigger setting.
* @param trigger Trigger object to use. */ * @param trigger Trigger object to use. */
void set_trigger(shared_ptr<Trigger> trigger); void set_trigger(shared_ptr<Trigger> trigger);
@ -649,15 +649,15 @@ protected:
Session(shared_ptr<Context> context); Session(shared_ptr<Context> context);
Session(shared_ptr<Context> context, string filename); Session(shared_ptr<Context> context, string filename);
~Session(); ~Session();
const shared_ptr<Context> context; const shared_ptr<Context> _context;
map<const struct sr_dev_inst *, shared_ptr<Device> > devices; map<const struct sr_dev_inst *, shared_ptr<Device> > _devices;
vector<DatafeedCallbackData *> datafeed_callbacks; vector<DatafeedCallbackData *> _datafeed_callbacks;
map<shared_ptr<EventSource>, SourceCallbackData *> source_callbacks; map<shared_ptr<EventSource>, SourceCallbackData *> _source_callbacks;
bool saving; bool _saving;
bool save_initialized; bool _save_initialized;
string save_filename; string _save_filename;
uint64_t save_samplerate; uint64_t _save_samplerate;
shared_ptr<Trigger> trigger; shared_ptr<Trigger> _trigger;
friend class Deleter; friend class Deleter;
friend class Context; friend class Context;
friend class DatafeedCallbackData; friend class DatafeedCallbackData;
@ -668,15 +668,15 @@ class SR_API Packet : public UserOwned<Packet, const struct sr_datafeed_packet>
{ {
public: public:
/** Type of this packet. */ /** Type of this packet. */
const PacketType *get_type(); const PacketType *type();
/** Payload of this packet. */ /** Payload of this packet. */
shared_ptr<PacketPayload> get_payload(); shared_ptr<PacketPayload> payload();
protected: protected:
Packet(shared_ptr<Device> device, Packet(shared_ptr<Device> device,
const struct sr_datafeed_packet *structure); const struct sr_datafeed_packet *structure);
~Packet(); ~Packet();
shared_ptr<Device> device; shared_ptr<Device> _device;
PacketPayload *payload; PacketPayload *_payload;
friend class Deleter; friend class Deleter;
friend class Session; friend class Session;
friend class Output; friend class Output;
@ -712,9 +712,9 @@ class SR_API Header :
{ {
public: public:
/* Feed version number. */ /* Feed version number. */
int get_feed_version(); int feed_version();
/* Start time of this session. */ /* Start time of this session. */
Glib::TimeVal get_start_time(); Glib::TimeVal start_time();
protected: protected:
Header(const struct sr_datafeed_header *structure); Header(const struct sr_datafeed_header *structure);
~Header(); ~Header();
@ -729,12 +729,12 @@ class SR_API Meta :
{ {
public: public:
/* Mapping of (ConfigKey, value) pairs. */ /* Mapping of (ConfigKey, value) pairs. */
map<const ConfigKey *, Glib::VariantBase> get_config(); map<const ConfigKey *, Glib::VariantBase> config();
protected: protected:
Meta(const struct sr_datafeed_meta *structure); Meta(const struct sr_datafeed_meta *structure);
~Meta(); ~Meta();
shared_ptr<PacketPayload> get_shared_pointer(Packet *parent); shared_ptr<PacketPayload> get_shared_pointer(Packet *parent);
map<const ConfigKey *, Glib::VariantBase> config; map<const ConfigKey *, Glib::VariantBase> _config;
friend class Packet; friend class Packet;
}; };
@ -745,11 +745,11 @@ class SR_API Logic :
{ {
public: public:
/* Pointer to data. */ /* Pointer to data. */
void *get_data_pointer(); void *data_pointer();
/* Data length in bytes. */ /* Data length in bytes. */
size_t get_data_length(); size_t data_length();
/* Size of each sample in bytes. */ /* Size of each sample in bytes. */
unsigned int get_unit_size(); unsigned int unit_size();
protected: protected:
Logic(const struct sr_datafeed_logic *structure); Logic(const struct sr_datafeed_logic *structure);
~Logic(); ~Logic();
@ -764,17 +764,17 @@ class SR_API Analog :
{ {
public: public:
/** Pointer to data. */ /** Pointer to data. */
float *get_data_pointer(); float *data_pointer();
/** Number of samples in this packet. */ /** Number of samples in this packet. */
unsigned int get_num_samples(); unsigned int num_samples();
/** Channels for which this packet contains data. */ /** Channels for which this packet contains data. */
vector<shared_ptr<Channel> > get_channels(); vector<shared_ptr<Channel> > channels();
/** Measured quantity of the samples in this packet. */ /** Measured quantity of the samples in this packet. */
const Quantity *get_mq(); const Quantity *mq();
/** Unit of the samples in this packet. */ /** Unit of the samples in this packet. */
const Unit *get_unit(); const Unit *unit();
/** Measurement flags associated with the samples in this packet. */ /** Measurement flags associated with the samples in this packet. */
vector<const QuantityFlag *> get_mq_flags(); vector<const QuantityFlag *> mq_flags();
protected: protected:
Analog(const struct sr_datafeed_analog *structure); Analog(const struct sr_datafeed_analog *structure);
~Analog(); ~Analog();
@ -788,11 +788,11 @@ class SR_API InputFormat :
{ {
public: public:
/** Name of this input format. */ /** Name of this input format. */
string get_name(); string name();
/** Description of this input format. */ /** Description of this input format. */
string get_description(); string description();
/** Options supported by this input format. */ /** Options supported by this input format. */
map<string, shared_ptr<Option> > get_options(); map<string, shared_ptr<Option> > options();
/** Create an input using this input format. /** Create an input using this input format.
* @param options Mapping of (option name, value) pairs. */ * @param options Mapping of (option name, value) pairs. */
shared_ptr<Input> create_input(map<string, Glib::VariantBase> options = {}); shared_ptr<Input> create_input(map<string, Glib::VariantBase> options = {});
@ -808,15 +808,15 @@ class SR_API Input : public UserOwned<Input, const struct sr_input>
{ {
public: public:
/** Virtual device associated with this input. */ /** Virtual device associated with this input. */
shared_ptr<InputDevice> get_device(); shared_ptr<InputDevice> device();
/** Send next stream data. /** Send next stream data.
* @param data Next stream data. */ * @param data Next stream data. */
void send(string data); void send(string data);
protected: protected:
Input(shared_ptr<Context> context, const struct sr_input *structure); Input(shared_ptr<Context> context, const struct sr_input *structure);
~Input(); ~Input();
shared_ptr<Context> context; shared_ptr<Context> _context;
InputDevice *device; InputDevice *_device;
friend class Deleter; friend class Deleter;
friend class Context; friend class Context;
friend class InputFormat; friend class InputFormat;
@ -831,7 +831,7 @@ protected:
InputDevice(shared_ptr<Input> input, struct sr_dev_inst *sdi); InputDevice(shared_ptr<Input> input, struct sr_dev_inst *sdi);
~InputDevice(); ~InputDevice();
shared_ptr<Device> get_shared_from_this(); shared_ptr<Device> get_shared_from_this();
shared_ptr<Input> input; shared_ptr<Input> _input;
friend class Input; friend class Input;
}; };
@ -840,20 +840,20 @@ class SR_API Option : public UserOwned<Option, const struct sr_option>
{ {
public: public:
/** Short name of this option suitable for command line usage. */ /** Short name of this option suitable for command line usage. */
string get_id(); string id();
/** Short name of this option suitable for GUI usage. */ /** Short name of this option suitable for GUI usage. */
string get_name(); string name();
/** Description of this option in a sentence. */ /** Description of this option in a sentence. */
string get_description(); string description();
/** Default value for this option. */ /** Default value for this option. */
Glib::VariantBase get_default_value(); Glib::VariantBase default_value();
/** Possible values for this option, if a limited set. */ /** Possible values for this option, if a limited set. */
vector<Glib::VariantBase> get_values(); vector<Glib::VariantBase> values();
protected: protected:
Option(const struct sr_option *structure, Option(const struct sr_option *structure,
shared_ptr<const struct sr_option *> structure_array); shared_ptr<const struct sr_option *> structure_array);
~Option(); ~Option();
shared_ptr<const struct sr_option *> structure_array; shared_ptr<const struct sr_option *> _structure_array;
friend class Deleter; friend class Deleter;
friend class InputFormat; friend class InputFormat;
friend class OutputFormat; friend class OutputFormat;
@ -865,11 +865,11 @@ class SR_API OutputFormat :
{ {
public: public:
/** Name of this output format. */ /** Name of this output format. */
string get_name(); string name();
/** Description of this output format. */ /** Description of this output format. */
string get_description(); string description();
/** Options supported by this output format. */ /** Options supported by this output format. */
map<string, shared_ptr<Option> > get_options(); map<string, shared_ptr<Option> > options();
/** Create an output using this format. /** Create an output using this format.
* @param device Device to output for. * @param device Device to output for.
* @param options Mapping of (option name, value) pairs. */ * @param options Mapping of (option name, value) pairs. */
@ -894,9 +894,9 @@ protected:
Output(shared_ptr<OutputFormat> format, Output(shared_ptr<OutputFormat> format,
shared_ptr<Device> device, map<string, Glib::VariantBase> options); shared_ptr<Device> device, map<string, Glib::VariantBase> options);
~Output(); ~Output();
const shared_ptr<OutputFormat> format; const shared_ptr<OutputFormat> _format;
const shared_ptr<Device> device; const shared_ptr<Device> _device;
const map<string, Glib::VariantBase> options; const map<string, Glib::VariantBase> _options;
friend class Deleter; friend class Deleter;
friend class OutputFormat; friend class OutputFormat;
}; };
@ -906,14 +906,14 @@ template <typename T> class SR_API EnumValue
{ {
public: public:
/** The enum constant associated with this value. */ /** The enum constant associated with this value. */
T get_id() const { return id; } T id() const { return _id; }
/** The name associated with this value. */ /** The name associated with this value. */
string get_name() const { return name; } string name() const { return _name; }
protected: protected:
EnumValue(T id, const char name[]) : id(id), name(name) {} EnumValue(T id, const char name[]) : _id(id), _name(name) {}
~EnumValue() {} ~EnumValue() {}
const T id; const T _id;
const string name; const string _name;
}; };
#include "enums.hpp" #include "enums.hpp"

View File

@ -376,8 +376,5 @@ typedef jobject jsourcecallback;
} }
} }
/* Currently broken due to some std::map typemap issues. */
%ignore sigrok::Meta::get_config;
%include "doc.i" %include "doc.i"
%include "bindings/swig/classes.i" %include "bindings/swig/classes.i"

View File

@ -287,7 +287,7 @@ std::map<std::string, std::string> dict_to_map_string(PyObject *dict)
/* Convert from a Python type to Glib::Variant, according to config key data type. */ /* Convert from a Python type to Glib::Variant, according to config key data type. */
Glib::VariantBase python_to_variant_by_key(PyObject *input, const sigrok::ConfigKey *key) Glib::VariantBase python_to_variant_by_key(PyObject *input, const sigrok::ConfigKey *key)
{ {
enum sr_datatype type = key->get_data_type()->get_id(); enum sr_datatype type = key->data_type()->id();
if (type == SR_T_UINT64 && PyInt_Check(input)) if (type == SR_T_UINT64 && PyInt_Check(input))
return Glib::Variant<guint64>::create(PyInt_AsLong(input)); return Glib::Variant<guint64>::create(PyInt_AsLong(input));
@ -309,7 +309,7 @@ Glib::VariantBase python_to_variant_by_key(PyObject *input, const sigrok::Config
Glib::VariantBase python_to_variant_by_option(PyObject *input, Glib::VariantBase python_to_variant_by_option(PyObject *input,
std::shared_ptr<sigrok::Option> option) std::shared_ptr<sigrok::Option> option)
{ {
GVariantType *type = option->get_default_value().get_type().gobj(); GVariantType *type = option->default_value().get_type().gobj();
if (type == G_VARIANT_TYPE_UINT64 && PyInt_Check(input)) if (type == G_VARIANT_TYPE_UINT64 && PyInt_Check(input))
return Glib::Variant<guint64>::create(PyInt_AsLong(input)); return Glib::Variant<guint64>::create(PyInt_AsLong(input));
@ -400,7 +400,7 @@ std::map<std::string, Glib::VariantBase> dict_to_map_options(PyObject *dict,
std::shared_ptr<sigrok::Input> _create_input_kwargs(PyObject *dict) std::shared_ptr<sigrok::Input> _create_input_kwargs(PyObject *dict)
{ {
return $self->create_input( return $self->create_input(
dict_to_map_options(dict, $self->get_options())); dict_to_map_options(dict, $self->options()));
} }
} }
@ -419,7 +419,7 @@ std::map<std::string, Glib::VariantBase> dict_to_map_options(PyObject *dict,
std::shared_ptr<sigrok::Device> device, PyObject *dict) std::shared_ptr<sigrok::Device> device, PyObject *dict)
{ {
return $self->create_output(device, return $self->create_output(device,
dict_to_map_options(dict, $self->get_options())); dict_to_map_options(dict, $self->options()));
} }
} }

View File

@ -139,12 +139,6 @@ template< class T > class enable_shared_from_this;
%ignore sigrok::DatafeedCallbackData; %ignore sigrok::DatafeedCallbackData;
%ignore sigrok::SourceCallbackData; %ignore sigrok::SourceCallbackData;
%include "libsigrok/libsigrok.hpp"
namespace sigrok {
%include "libsigrok/enums.hpp"
}
#define SWIG_ATTRIBUTE_TEMPLATE #define SWIG_ATTRIBUTE_TEMPLATE
%include "attribute.i" %include "attribute.i"
@ -167,108 +161,114 @@ typedef std::map<const sigrok::ConfigKey *, Glib::VariantBase>
} }
%attributeval(sigrok::Context, %attributeval(sigrok::Context,
map_string_Driver, drivers, get_drivers); map_string_Driver, drivers, drivers);
%attributeval(sigrok::Context, %attributeval(sigrok::Context,
map_string_InputFormat, input_formats, get_input_formats); map_string_InputFormat, input_formats, input_formats);
%attributeval(sigrok::Context, %attributeval(sigrok::Context,
map_string_OutputFormat, output_formats, get_output_formats); map_string_OutputFormat, output_formats, output_formats);
%attributestring(sigrok::Context, %attributestring(sigrok::Context,
std::string, package_version, get_package_version); std::string, package_version, package_version);
%attributestring(sigrok::Context, %attributestring(sigrok::Context,
std::string, lib_version, get_lib_version); std::string, lib_version, lib_version);
%attribute(sigrok::Context, %attribute(sigrok::Context,
const sigrok::LogLevel *, log_level, get_log_level, set_log_level); const sigrok::LogLevel *, log_level, log_level, set_log_level);
%attributestring(sigrok::Context, %attributestring(sigrok::Context,
std::string, log_domain, get_log_domain, set_log_domain); std::string, log_domain, log_domain, set_log_domain);
%attributestring(sigrok::Driver, std::string, name, get_name); %attributestring(sigrok::Driver, std::string, name, name);
%attributestring(sigrok::Driver, std::string, long_name, get_long_name); %attributestring(sigrok::Driver, std::string, long_name, long_name);
%attributestring(sigrok::InputFormat, %attributestring(sigrok::InputFormat,
std::string, name, get_name); std::string, name, name);
%attributestring(sigrok::InputFormat, %attributestring(sigrok::InputFormat,
std::string, description, get_description); std::string, description, description);
%attributestring(sigrok::Input, %attributestring(sigrok::Input,
std::shared_ptr<sigrok::InputDevice>, device, get_device); std::shared_ptr<sigrok::InputDevice>, device, device);
%attributestring(sigrok::Option, %attributestring(sigrok::Option,
std::string, id, get_id); std::string, id, id);
%attributestring(sigrok::Option, %attributestring(sigrok::Option,
std::string, name, get_name); std::string, name, name);
%attributestring(sigrok::Option, %attributestring(sigrok::Option,
std::string, description, get_description); std::string, description, description);
/* Currently broken on Python due to some issue with variant typemaps. */ /* Currently broken on Python due to some issue with variant typemaps. */
/* %attributeval(sigrok::Option, /* %attributeval(sigrok::Option,
Glib::VariantBase, default_value, get_default_value); */ Glib::VariantBase, default_value, default_value); */
%attributeval(sigrok::Option, %attributeval(sigrok::Option,
std::vector<Glib::VariantBase>, values, get_values); std::vector<Glib::VariantBase>, values, values);
%attributestring(sigrok::OutputFormat, %attributestring(sigrok::OutputFormat,
std::string, name, get_name); std::string, name, name);
%attributestring(sigrok::OutputFormat, %attributestring(sigrok::OutputFormat,
std::string, description, get_description); std::string, description, description);
%attributeval(sigrok::OutputFormat, %attributeval(sigrok::OutputFormat,
map_string_Option, options, get_options); map_string_Option, options, options);
%attributestring(sigrok::Device, std::string, description, get_description); %attributestring(sigrok::Device, std::string, description, description);
%attributestring(sigrok::Device, std::string, vendor, get_vendor); %attributestring(sigrok::Device, std::string, vendor, vendor);
%attributestring(sigrok::Device, std::string, model, get_model); %attributestring(sigrok::Device, std::string, model, model);
%attributestring(sigrok::Device, std::string, version, get_version); %attributestring(sigrok::Device, std::string, version, version);
%attributeval(sigrok::Device, %attributeval(sigrok::Device,
std::vector<std::shared_ptr<sigrok::Channel> >, std::vector<std::shared_ptr<sigrok::Channel> >,
channels, get_channels); channels, channels);
%attributeval(sigrok::Device, map_string_ChannelGroup, %attributeval(sigrok::Device, map_string_ChannelGroup,
channel_groups, get_channel_groups); channel_groups, channel_groups);
/* Using %attributestring for shared_ptr attribute. See /* Using %attributestring for shared_ptr attribute. See
http://sourceforge.net/p/swig/mailman/message/31832070/ */ http://sourceforge.net/p/swig/mailman/message/31832070/ */
%attributestring(sigrok::HardwareDevice, %attributestring(sigrok::HardwareDevice,
std::shared_ptr<sigrok::Driver>, driver, get_driver); std::shared_ptr<sigrok::Driver>, driver, driver);
%attributestring(sigrok::Channel, std::string, name, get_name, set_name); %attributestring(sigrok::Channel, std::string, name, name, set_name);
%attribute(sigrok::Channel, bool, enabled, get_enabled, set_enabled); %attribute(sigrok::Channel, bool, enabled, enabled, set_enabled);
%attribute(sigrok::Channel, const sigrok::ChannelType *, type, get_type); %attribute(sigrok::Channel, const sigrok::ChannelType *, type, type);
%attribute(sigrok::Channel, unsigned int, index, get_index); %attribute(sigrok::Channel, unsigned int, index, index);
%attributestring(sigrok::ChannelGroup, std::string, name, get_name); %attributestring(sigrok::ChannelGroup, std::string, name, name);
%attributeval(sigrok::ChannelGroup, %attributeval(sigrok::ChannelGroup,
std::vector<std::shared_ptr<sigrok::Channel> >, std::vector<std::shared_ptr<sigrok::Channel> >,
channels, get_channels); channels, channels);
%attributestring(sigrok::Trigger, std::string, name, get_name); %attributestring(sigrok::Trigger, std::string, name, name);
%attributeval(sigrok::Trigger, %attributeval(sigrok::Trigger,
std::vector<std::shared_ptr<sigrok::TriggerStage> >, std::vector<std::shared_ptr<sigrok::TriggerStage> >,
stages, get_stages); stages, stages);
%attribute(sigrok::TriggerStage, int, number, get_number); %attribute(sigrok::TriggerStage, int, number, number);
%attributeval(sigrok::TriggerStage, %attributeval(sigrok::TriggerStage,
std::vector<std::shared_ptr<sigrok::TriggerMatch> >, std::vector<std::shared_ptr<sigrok::TriggerMatch> >,
matches, get_matches); matches, matches);
%attributestring(sigrok::TriggerMatch, %attributestring(sigrok::TriggerMatch,
std::shared_ptr<sigrok::Channel>, channel, get_channel); std::shared_ptr<sigrok::Channel>, channel, channel);
%attribute(sigrok::TriggerMatch, const sigrok::TriggerMatchType *, type, get_type); %attribute(sigrok::TriggerMatch, const sigrok::TriggerMatchType *, type, type);
%attribute(sigrok::TriggerMatch, float, value, get_value); %attribute(sigrok::TriggerMatch, float, value, value);
%attributeval(sigrok::Session, %attributeval(sigrok::Session,
std::vector<std::shared_ptr<sigrok::Device> >, std::vector<std::shared_ptr<sigrok::Device> >,
devices, get_devices); devices, devices);
%attributestring(sigrok::Session, %attributestring(sigrok::Session,
std::shared_ptr<sigrok::Trigger>, trigger, get_trigger, set_trigger); std::shared_ptr<sigrok::Trigger>, trigger, trigger, set_trigger);
%attributestring(sigrok::Packet, %attributestring(sigrok::Packet,
std::shared_ptr<sigrok::PacketPayload>, payload, get_payload); std::shared_ptr<sigrok::PacketPayload>, payload, payload);
%attributeval(sigrok::Meta, map_ConfigKey_Variant, config, get_config); %attributeval(sigrok::Meta, map_ConfigKey_Variant, config, config);
%attribute(sigrok::Analog, int, num_samples, get_num_samples); %attribute(sigrok::Analog, int, num_samples, num_samples);
%attribute(sigrok::Analog, const sigrok::Quantity *, mq, get_mq); %attribute(sigrok::Analog, const sigrok::Quantity *, mq, mq);
%attribute(sigrok::Analog, const sigrok::Unit *, unit, get_unit); %attribute(sigrok::Analog, const sigrok::Unit *, unit, unit);
%attributeval(sigrok::Analog, std::vector<const sigrok::QuantityFlag *>, mq_flags, get_mq_flags); %attributeval(sigrok::Analog, std::vector<const sigrok::QuantityFlag *>, mq_flags, mq_flags);
%include "libsigrok/libsigrok.hpp"
namespace sigrok {
%include "libsigrok/enums.hpp"
}