]> sigrok.org Git - libsigrokdecode.git/blobdiff - libsigrokdecode.h
avr_isp: Add more parts
[libsigrokdecode.git] / libsigrokdecode.h
index 30282f504fce7051c3a9f370bde262b41b4a9f0c..ea17cb8d014c654708e9a71fef632f697da0916c 100644 (file)
@@ -106,17 +106,21 @@ enum srd_loglevel {
  */
 
 /* Marks public libsigrokdecode API symbols. */
-#ifndef _WIN32
-#define SRD_API __attribute__((visibility("default")))
+#if defined _WIN32
+#  if defined DLL_EXPORT
+#    define SRD_API __declspec(dllexport)
+#  else
+#    define SRD_API extern
+#  endif
 #else
-#define SRD_API
+#  define SRD_API __attribute__((visibility("default")))
 #endif
 
 /* Marks private, non-public libsigrokdecode symbols (not part of the API). */
-#ifndef _WIN32
-#define SRD_PRIV __attribute__((visibility("hidden")))
+#if defined _WIN32
+#  define SRD_PRIV /* EMPTY */
 #else
-#define SRD_PRIV
+#  define SRD_PRIV __attribute__((visibility("hidden")))
 #endif
 
 /*
@@ -291,6 +295,9 @@ struct srd_decoder_inst {
        /** Requests termination of wait() and decode(). */
        gboolean want_wait_terminate;
 
+       /** Requests that .wait() terminates a Python iteration. */
+       gboolean communicate_eof;
+
        /** Indicates the current state of the decoder stack. */
        int decoder_state;
 
@@ -323,12 +330,12 @@ struct srd_proto_data_annotation {
 struct srd_proto_data_binary {
        int bin_class; /* Index into "struct srd_decoder"->binary. */
        uint64_t size;
-       const unsigned char *data;
+       const uint8_t *data;
 };
 struct srd_proto_data_logic {
-       int logic_class;
-       uint64_t size;
-       const unsigned char *data;
+       int logic_group;
+       uint64_t repeat_count; /* Number of times the value in data was repeated. */
+       const uint8_t *data; /* Bitfield containing the states of the logic outputs */
 };
 
 typedef void (*srd_pd_output_callback)(struct srd_proto_data *pdata,
@@ -353,6 +360,7 @@ SRD_API int srd_session_metadata_set(struct srd_session *sess, int key,
 SRD_API int srd_session_send(struct srd_session *sess,
                uint64_t abs_start_samplenum, uint64_t abs_end_samplenum,
                const uint8_t *inbuf, uint64_t inbuflen, uint64_t unitsize);
+SRD_API int srd_session_send_eof(struct srd_session *sess);
 SRD_API int srd_session_terminate_reset(struct srd_session *sess);
 SRD_API int srd_session_destroy(struct srd_session *sess);
 SRD_API int srd_pd_output_callback_add(struct srd_session *sess,