X-Git-Url: http://git.code-monkey.de/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdata%2Fdecodesignal.hpp;h=b9cd430aa227c60cab911efdeee1a85e3ce56af0;hp=9c8d382c808a74087f9566cae9535f66fd4ced78;hb=27a3f09baf61c7f9b8c07630d34df75ddfdd476b;hpb=bcaf033478ecf9a482f53b3dc973b7d2b9c4c52b diff --git a/pv/data/decodesignal.hpp b/pv/data/decodesignal.hpp index 9c8d382..b9cd430 100644 --- a/pv/data/decodesignal.hpp +++ b/pv/data/decodesignal.hpp @@ -25,8 +25,6 @@ #include #include -#include - #include #include @@ -101,6 +99,7 @@ public: const vector get_channels() const; void auto_assign_signals(); void assign_signal(const uint16_t channel_id, const SignalBase *signal); + int get_assigned_signal_count() const; void set_initial_pin_state(const uint16_t channel_id, const int init_state); @@ -140,9 +139,11 @@ public: private: void update_channel_list(); - void logic_mux_proc(); + void commit_decoder_channels(); - boost::optional wait_for_data() const; + void mux_logic_samples(const int64_t start, const int64_t end); + + void logic_mux_proc(); void decode_data(const int64_t abs_start_samplenum, const int64_t sample_count, srd_session *const session); @@ -172,7 +173,7 @@ private: pv::util::Timestamp start_time_; double samplerate_; - int64_t sample_count_, annotation_count_, samples_decoded_; + int64_t annotation_count_, samples_decoded_; vector< shared_ptr > stack_; map rows_; @@ -186,7 +187,7 @@ private: */ static mutex global_srd_mutex_; - mutable mutex input_mutex_, output_mutex_; + mutable mutex input_mutex_, output_mutex_, logic_mux_mutex_; mutable condition_variable decode_input_cond_, logic_mux_cond_; bool frame_complete_;