#include <map>
#include <boost/shared_ptr.hpp>
+#include <boost/thread.hpp>
struct srd_decoder;
+struct srd_decoder_inst;
struct srd_probe;
namespace pv {
namespace data {
+class Logic;
+
class Decoder : public SignalData
{
public:
- Decoder(const srd_decoder *const dec, std::map<const srd_probe*,
- boost::shared_ptr<pv::view::Signal> > probes);
+ Decoder(const srd_decoder *const decoder,
+ std::map<const srd_probe*,
+ boost::shared_ptr<pv::view::Signal> > probes);
+
+ virtual ~Decoder();
const srd_decoder* get_decoder() const;
+ void begin_decode();
+
void clear_snapshots();
+private:
+ void init_decoder();
+
+ void decode_proc(boost::shared_ptr<data::Logic> data);
+
private:
const srd_decoder *const _decoder;
std::map<const srd_probe*, boost::shared_ptr<view::Signal> >
_probes;
+
+ srd_decoder_inst *_decoder_inst;
+
+ boost::thread _decode_thread;
};
} // namespace data