X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=libsigrokdecode.h;h=ea17cb8d014c654708e9a71fef632f697da0916c;hb=24ba9e1bdfe107e394176eda3116b714463a8437;hp=30282f504fce7051c3a9f370bde262b41b4a9f0c;hpb=460e6cfa5d45c8d2ba0f5be1235ab31d4ec9508b;p=libsigrokdecode.git diff --git a/libsigrokdecode.h b/libsigrokdecode.h index 30282f5..ea17cb8 100644 --- a/libsigrokdecode.h +++ b/libsigrokdecode.h @@ -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,