]> sigrok.org Git - libsigrok.git/blobdiff - libsigrok.h
drivers: return SR_ERR_NA on unsupported config key
[libsigrok.git] / libsigrok.h
index 351bc0a4aa6466dbf5e622d81634c5045bd798de..294bb15d7d3ba0a5fd7827ddf89b9640dfaead1a 100644 (file)
@@ -70,6 +70,7 @@ enum {
        SR_ERR_ARG        = -3, /**< Function argument error. */
        SR_ERR_BUG        = -4, /**< Errors hinting at internal bugs. */
        SR_ERR_SAMPLERATE = -5, /**< Incorrect samplerate. */
+       SR_ERR_NA         = -6, /**< Not applicable. */
 };
 
 #define SR_MAX_NUM_PROBES    64 /* Limited by uint64_t. */
@@ -636,6 +637,12 @@ enum {
        /** The device supports setting its sample interval, in ms. */
        SR_CONF_SAMPLE_INTERVAL,
 
+       /** Number of timebases, as related to SR_CONF_TIMEBASE.  */
+       SR_CONF_NUM_TIMEBASE,
+
+       /** Number of vertical divisions, as related to SR_CONF_VDIV.  */
+       SR_CONF_NUM_VDIV,
+
        /*--- Special stuff -------------------------------------------------*/
 
        /** Scan options supported by the driver. */
@@ -722,18 +729,6 @@ enum {
        SR_ST_STOPPING,
 };
 
-/*
- * A device supports either a range of samplerates with steps of a given
- * granularity, or is limited to a set of defined samplerates. Use either
- * step or list, but not both.
- */
-struct sr_samplerates {
-       uint64_t low;
-       uint64_t high;
-       uint64_t step;
-       const uint64_t *list;
-};
-
 struct sr_dev_driver {
        /* Driver-specific */
        char *name;
@@ -781,6 +776,14 @@ struct sr_session {
        struct source *sources;
        GPollFD *pollfds;
        int source_timeout;
+
+       /*
+        * These are our synchronization primitives for stopping the session in
+        * an async fashion. We need to make sure the session is stopped from
+        * within the session thread itself.
+        */
+       GMutex stop_mutex;
+       gboolean abort_session;
 };
 
 #include "proto.h"