X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=include%2Flibsigrok%2Flibsigrok.h;h=61e0caa897ef8e27076a5ed7831911cf6b6d8cda;hb=1b9e567b086ebd854d2db4d74dddb6bbf0277a72;hp=5c04221611825240a1b7ecc33abaf6f1a40bf6a9;hpb=a1eaa9e066ff8d86db8a1fba6615204d442c53d7;p=libsigrok.git diff --git a/include/libsigrok/libsigrok.h b/include/libsigrok/libsigrok.h index 5c042216..61e0caa8 100644 --- a/include/libsigrok/libsigrok.h +++ b/include/libsigrok/libsigrok.h @@ -469,6 +469,8 @@ struct sr_channel { gboolean enabled; /** Name of channel. */ char *name; + /** Private data for driver use. */ + void *priv; }; /** Structure for groups of channels that have common properties. */ @@ -484,7 +486,7 @@ struct sr_channel_group { /** Used for setting or getting value of a config item. */ struct sr_config { /** Config key like SR_CONF_CONN, etc. */ - int key; + uint32_t key; /** Key-specific data. */ GVariant *data; }; @@ -492,7 +494,7 @@ struct sr_config { /** Information about a config key. */ struct sr_config_info { /** Config key like SR_CONF_CONN, etc. */ - int key; + uint32_t key; /** Data type like SR_T_STRING, etc. */ int datatype; /** Id string, e.g. "serialcomm". */ @@ -503,6 +505,11 @@ struct sr_config_info { char *description; }; +#define SR_CONF_GET (1 << 31) +#define SR_CONF_SET (1 << 30) +#define SR_CONF_LIST (1 << 29) +#define SR_CONF_MASK 0x1fffffff + /** Constants for device classes */ enum sr_configkey { /*--- Device classes ------------------------------------------------*/ @@ -849,8 +856,6 @@ enum sr_configkey { struct sr_dev_inst { /** Device driver. */ struct sr_dev_driver *driver; - /** Index of device in driver. */ - int index; /** Device instance status. SR_ST_NOT_FOUND, etc. */ int status; /** Device instance type. SR_INST_USB, etc. */ @@ -861,6 +866,10 @@ struct sr_dev_inst { char *model; /** Device version. */ char *version; + /** Serial number. */ + char *serial_num; + /** Connection string to uniquely identify devices. */ + char *connection_id; /** List of channels. */ GSList *channels; /** List of sr_channel_group structs */ @@ -928,12 +937,12 @@ struct sr_dev_driver { /** Query value of a configuration key in driver or given device instance. * @see sr_config_get(). */ - int (*config_get) (int id, GVariant **data, + int (*config_get) (uint32_t key, GVariant **data, const struct sr_dev_inst *sdi, const struct sr_channel_group *cg); /** Set value of a configuration key in driver or a given device instance. * @see sr_config_set(). */ - int (*config_set) (int id, GVariant *data, + int (*config_set) (uint32_t key, GVariant *data, const struct sr_dev_inst *sdi, const struct sr_channel_group *cg); /** Channel status change. @@ -946,7 +955,7 @@ struct sr_dev_driver { /** List all possible values for a configuration key in a device instance. * @see sr_config_list(). */ - int (*config_list) (int info_id, GVariant **data, + int (*config_list) (uint32_t key, GVariant **data, const struct sr_dev_inst *sdi, const struct sr_channel_group *cg);