]> sigrok.org Git - libsigrok.git/blobdiff - sigrok.h.in
hantek-dso: proper protocol implementation of trigger/samplerate setting
[libsigrok.git] / sigrok.h.in
index 96059d227042be73fa4de767464511a28fdf70a9..2b57bcfceeccc7574847d997582983f8d88022d9 100644 (file)
@@ -115,14 +115,25 @@ extern "C" {
  *
  * This uses the 'visibility' feature of gcc (requires gcc >= 4.0).
  *
+ * This feature is not available on MinGW/Windows, as it is a feature of
+ * ELF files and MinGW/Windows uses PE files.
+ *
  * Details: http://gcc.gnu.org/wiki/Visibility
  */
 
 /* Marks public libsigrok API symbols. */
+#ifndef _WIN32
 #define SR_API __attribute__((visibility("default")))
+#else
+#define SR_API
+#endif
 
 /* Marks private, non-public libsigrok symbols (not part of the API). */
+#ifndef _WIN32
 #define SR_PRIV __attribute__((visibility("hidden")))
+#else
+#define SR_PRIV
+#endif
 
 typedef int (*sr_receive_data_callback_t)(int fd, int revents, void *cb_data);
 
@@ -139,7 +150,11 @@ enum {
        SR_DF_END,
        SR_DF_TRIGGER,
        SR_DF_LOGIC,
-       SR_DF_PD,
+       SR_DF_META_LOGIC,
+       SR_DF_ANALOG,
+       SR_DF_META_ANALOG,
+       SR_DF_FRAME_BEGIN,
+       SR_DF_FRAME_END,
 };
 
 struct sr_datafeed_packet {
@@ -150,8 +165,11 @@ struct sr_datafeed_packet {
 struct sr_datafeed_header {
        int feed_version;
        struct timeval starttime;
+};
+
+struct sr_datafeed_meta_logic {
+       int num_probes;
        uint64_t samplerate;
-       int num_logic_probes;
 };
 
 struct sr_datafeed_logic {
@@ -160,6 +178,15 @@ struct sr_datafeed_logic {
        void *data;
 };
 
+struct sr_datafeed_meta_analog {
+       int num_probes;
+};
+
+struct sr_datafeed_analog {
+       int num_samples;
+       float *data;
+};
+
 struct sr_input {
        struct sr_input_format *format;
        char *param;
@@ -238,7 +265,8 @@ enum {
        /** The device can act as logic analyzer. */
        SR_HWCAP_LOGIC_ANALYZER,
 
-       /* TODO: SR_HWCAP_SCOPE, SW_HWCAP_PATTERN_GENERATOR, etc.? */
+       /** The device can act as an oscilloscope. */
+       SR_HWCAP_OSCILLOSCOPE,
 
        /*--- Device types --------------------------------------------------*/
 
@@ -264,6 +292,9 @@ enum {
        /** The device supports Run Length Encoding. */
        SR_HWCAP_RLE,
 
+       /** The device supports setting trigger slope. */
+       SR_HWCAP_TRIGGERSLOPE,
+
        /*--- Special stuff -------------------------------------------------*/
 
        /* TODO: Better description. */
@@ -292,6 +323,12 @@ enum {
         */
        SR_HWCAP_LIMIT_SAMPLES,
 
+       /**
+        * The device supports setting a frame limit, i.e. how many
+        * frames should be acquired.
+        */
+       SR_HWCAP_LIMIT_FRAMES,
+
        /**
         * The device supports continuous sampling, i.e. neither a time limit
         * nor a sample number limit has to be supplied, it will just acquire
@@ -299,7 +336,6 @@ enum {
         */
        SR_HWCAP_CONTINUOUS,
 
-       /* TODO: SR_HWCAP_JUST_SAMPLE or similar. */
 };
 
 struct sr_hwcap_option {