]> sigrok.org Git - libsigrok.git/blobdiff - libsigrok.h
sr: add new driver API call: scan()
[libsigrok.git] / libsigrok.h
index 2c0d6f9648a6ee762c85fdf6703e11ee8320e6c0..ccad393c05d8111eab3df25e41f2395c9bf6f79c 100644 (file)
@@ -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 {
@@ -336,6 +337,9 @@ enum {
 
        /*--- Special stuff -------------------------------------------------*/
 
+       /** Session filename */
+       SR_HWCAP_SESSIONFILE,
+
        /* TODO: Better description. */
        /** The device supports specifying a capturefile to inject. */
        SR_HWCAP_CAPTUREFILE,
@@ -466,8 +470,9 @@ struct sr_dev_driver {
        char *name;
        char *longname;
        int api_version;
-       int (*init) (const char *devinfo);
+       int (*init) (void);
        int (*cleanup) (void);
+       int (*scan) (void);
 
        /* Device-specific */
        int (*dev_open) (int dev_index);
@@ -487,6 +492,17 @@ struct sr_session {
        GSList *datafeed_callbacks;
        GTimeVal starttime;
        gboolean running;
+
+       unsigned int num_sources;
+
+       /* Both "sources" and "pollfds" are of the same size and contain pairs of
+        * descriptor and callback function. We can not embed the GPollFD into the
+        * source struct since we want to be able to pass the array of all poll
+        * descriptors to g_poll.
+        */
+       struct source *sources;
+       GPollFD *pollfds;
+       int source_timeout;
 };
 
 #include "proto.h"