X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=libsigrok.h;h=2b07236a53136d9e1ac16473e2b43085df7111c6;hb=3a0fe4023d1dd02051c126fffead6de631840974;hp=695b360ba94332d6922b2ce25e4a484574f3b718;hpb=40dda2c3a509e9e031078427e32249e2ebc33ec5;p=libsigrok.git diff --git a/libsigrok.h b/libsigrok.h index 695b360b..2b07236a 100644 --- a/libsigrok.h +++ b/libsigrok.h @@ -250,7 +250,7 @@ struct sr_dev { }; enum { - SR_PROBE_TYPE_LOGIC, + SR_PROBE_LOGIC, }; struct sr_probe { @@ -261,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! */ @@ -280,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. */ @@ -396,6 +402,7 @@ struct sr_dev_inst { char *vendor; char *model; char *version; + GSList *probes; void *priv; }; @@ -472,6 +479,7 @@ struct sr_dev_driver { int api_version; int (*init) (void); int (*cleanup) (void); + GSList *(*scan) (GSList *options); /* Device-specific */ int (*dev_open) (int dev_index); @@ -482,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 {