X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=libsigrokdecode.h;fp=libsigrokdecode.h;h=a4d28d40b943db1a73da1e3e50a89643994a583f;hb=21dfd91d99836bdc6c0da939b601dd8a52358f21;hp=03a5de096b18ebd7d2c4cf3fbf9ba103a3894ffe;hpb=ee9304c667bf98b3c4e3a767943e3d8f6964601e;p=libsigrokdecode.git diff --git a/libsigrokdecode.h b/libsigrokdecode.h index 03a5de0..a4d28d4 100644 --- a/libsigrokdecode.h +++ b/libsigrokdecode.h @@ -228,6 +228,43 @@ struct srd_decoder_inst { int data_unitsize; uint8_t *channel_samples; GSList *next_di; + + /** List of conditions a PD wants to wait for. */ + GSList *condition_list; + + /** Array of booleans denoting which conditions matched. */ + GArray *match_array; + + /** Absolute start sample number. */ + uint64_t start_samplenum; + + /** Absolute end sample number. */ + uint64_t end_samplenum; + + /** Pointer to the buffer/chunk of input samples. */ + const uint8_t *inbuf; + + /** Length (in bytes) of the input sample buffer. */ + uint64_t inbuflen; + + /** Absolute current samplenumber. */ + uint64_t cur_samplenum; + + /** Array of "old" (previous sample) pin values. */ + GArray *old_pins_array; + + /** Handle for this PD stack's worker thread. */ + GThread *thread_handle; + + /** Indicates whether new samples are available for processing. */ + gboolean got_new_samples; + + /** Indicates whether the worker thread has handled all samples. */ + gboolean handled_all_samples; + + GCond got_new_samples_cond; + GCond handled_all_samples_cond; + GMutex data_mutex; }; struct srd_pd_output {