#define PULSEVIEW_PV_DATA_DECODE_DECODER_H
#include <map>
-
-#include <boost/shared_ptr.hpp>
+#include <memory>
+#include <set>
#include <glib.h>
struct srd_decoder;
struct srd_decoder_inst;
-struct srd_probe;
+struct srd_channel;
struct srd_session;
namespace pv {
}
namespace data {
+
+class Logic;
+
namespace decode {
class Decoder
const srd_decoder* decoder() const;
- const std::map<const srd_probe*,
- boost::shared_ptr<view::LogicSignal> >& probes() const;
- void set_probes(std::map<const srd_probe*,
- boost::shared_ptr<view::LogicSignal> > probes);
+ bool shown() const;
+ void show(bool show = true);
+
+ const std::map<const srd_channel*,
+ std::shared_ptr<view::LogicSignal> >& channels() const;
+ void set_probes(std::map<const srd_channel*,
+ std::shared_ptr<view::LogicSignal> > probes);
- const GHashTable* options() const;
+ const std::map<std::string, GVariant*>& options() const;
void set_option(const char *id, GVariant *value);
+ bool have_required_probes() const;
+
srd_decoder_inst* create_decoder_inst(
- srd_session *const session) const;
+ srd_session *session, int unit_size) const;
+
+ std::set< std::shared_ptr<pv::data::Logic> > get_data();
private:
const srd_decoder *const _decoder;
- std::map<const srd_probe*, boost::shared_ptr<pv::view::LogicSignal> >
+
+ bool _shown;
+
+ std::map<const srd_channel*, std::shared_ptr<pv::view::LogicSignal> >
_probes;
- GHashTable *_options;
+ std::map<std::string, GVariant*> _options;
};
} // namespace decode