X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=libsigrok.h;h=2b07236a53136d9e1ac16473e2b43085df7111c6;hb=3a0fe4023d1dd02051c126fffead6de631840974;hp=450e72b94a70cbbeae910811427cd932192635eb;hpb=b7e941113f2e4d534e109f4aeb8b0dc4cda36598;p=libsigrok.git diff --git a/libsigrok.h b/libsigrok.h index 450e72b9..2b07236a 100644 --- a/libsigrok.h +++ b/libsigrok.h @@ -193,8 +193,9 @@ struct sr_datafeed_analog { struct sr_input { struct sr_input_format *format; - char *param; + GHashTable *param; struct sr_dev *vdev; + void *internal; }; struct sr_input_format { @@ -249,7 +250,7 @@ struct sr_dev { }; enum { - SR_PROBE_TYPE_LOGIC, + SR_PROBE_LOGIC, }; struct sr_probe { @@ -260,7 +261,24 @@ struct sr_probe { char *trigger; }; -/* Hardware driver capabilities */ +struct sr_hwopt { + int hwopt; + const void *value; +}; + +/* Hardware driver options */ +enum { + /** Some drivers cannot detect the exact model they're talking to. */ + SR_HWOPT_MODEL, + + /** Specification on how to connect to a device */ + SR_HWOPT_CONN, + + /** Serial communication spec: e.g. 8n1 */ + SR_HWOPT_SERIALCOMM, +}; + +/* Hardware device capabilities */ enum { SR_HWCAP_DUMMY = 0, /* Used to terminate lists. Must be 0! */ @@ -279,17 +297,6 @@ enum { SR_HWCAP_DEMO_DEV, - /*--- Device communication ------------------------------------------*/ - /** Some drivers cannot detect the exact model they're talking to. */ - SR_HWCAP_MODEL, - - /** Specification on how to connect to a device */ - SR_HWCAP_CONN, - - /** Serial communication spec: e.g. 8n1 */ - SR_HWCAP_SERIALCOMM, - - /*--- Device configuration ------------------------------------------*/ /** The device supports setting/changing its samplerate. */ @@ -336,6 +343,9 @@ enum { /*--- Special stuff -------------------------------------------------*/ + /** Session filename */ + SR_HWCAP_SESSIONFILE, + /* TODO: Better description. */ /** The device supports specifying a capturefile to inject. */ SR_HWCAP_CAPTUREFILE, @@ -392,6 +402,7 @@ struct sr_dev_inst { char *vendor; char *model; char *version; + GSList *probes; void *priv; }; @@ -466,8 +477,9 @@ struct sr_dev_driver { char *name; char *longname; int api_version; - int (*init) (const char *devinfo); + int (*init) (void); int (*cleanup) (void); + GSList *(*scan) (GSList *options); /* Device-specific */ int (*dev_open) (int dev_index); @@ -478,6 +490,9 @@ struct sr_dev_driver { int (*dev_config_set) (int dev_index, int hwcap, const void *value); int (*dev_acquisition_start) (int dev_index, void *session_dev_id); int (*dev_acquisition_stop) (int dev_index, void *session_dev_id); + + /* Dynamic */ + GSList *instances; }; struct sr_session {