]> sigrok.org Git - libsigrok.git/blobdiff - libsigrok.h
sr/drivers: change driver dev_open/dev_close calls to use sdi
[libsigrok.git] / libsigrok.h
index 2b07236a53136d9e1ac16473e2b43085df7111c6..2b17eef131ffa2d8e2046adbb209e5c0c6a2cf67 100644 (file)
@@ -194,7 +194,7 @@ struct sr_datafeed_analog {
 struct sr_input {
        struct sr_input_format *format;
        GHashTable *param;
-       struct sr_dev *vdev;
+       struct sr_dev_inst *sdi;
        void *internal;
 };
 
@@ -208,7 +208,7 @@ struct sr_input_format {
 
 struct sr_output {
        struct sr_output_format *format;
-       struct sr_dev *dev;
+       struct sr_dev_inst *sdi;
        char *param;
        void *internal;
 };
@@ -268,6 +268,8 @@ struct sr_hwopt {
 
 /* Hardware driver options */
 enum {
+       SR_HWOPT_DUMMY = 0, /* Used to terminate lists. Must be 0! */
+
        /** Some drivers cannot detect the exact model they're talking to. */
        SR_HWOPT_MODEL,
 
@@ -396,6 +398,7 @@ struct sr_hwcap_option {
 };
 
 struct sr_dev_inst {
+       struct sr_dev_driver *driver;
        int index;
        int status;
        int inst_type;
@@ -433,7 +436,12 @@ enum {
 /* Device info IDs */
 enum {
        /* struct sr_dev_inst for this specific device */
+       /* TODO: obsolete */
        SR_DI_INST,
+       /* A list of options supported by the driver. */
+       SR_DI_HWOPTS,
+       /* A list of capabilities supported by the device. */
+       SR_DI_HWCAPS,
        /* The number of probes connected to this device */
        SR_DI_NUM_PROBES,
        /* The probe names on this device */
@@ -482,12 +490,15 @@ struct sr_dev_driver {
        GSList *(*scan) (GSList *options);
 
        /* Device-specific */
-       int (*dev_open) (int dev_index);
-       int (*dev_close) (int dev_index);
+       int (*dev_open) (struct sr_dev_inst *sdi);
+       int (*dev_close) (struct sr_dev_inst *sdi);
+       /* TODO remove this */
        const void *(*dev_info_get) (int dev_index, int dev_info_id);
+       int (*info_get) (int dev_info_id, const void **data,
+                       const struct sr_dev_inst *sdi);
        int (*dev_status_get) (int dev_index);
-       const int *(*hwcap_get_all) (void);
-       int (*dev_config_set) (int dev_index, int hwcap, const void *value);
+       int (*dev_config_set) (const struct sr_dev_inst *sdi, 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);