#ifndef PULSEVIEW_PV_DECODER_H
#define PULSEVIEW_PV_DECODER_H
+#include <vector>
+#include <map>
+
+#include <boost/shared_ptr.hpp>
+
#include <QComboBox>
#include <QDialog>
#include <QDialogButtonBox>
#include <QFormLayout>
+#include <QLabel>
#include <QVBoxLayout>
+#include <pv/prop/binding/decoderoptions.h>
+
+struct srd_decoder;
+
namespace pv {
+
+namespace view {
+class Signal;
+}
+
namespace dialogs {
class Decoder : public QDialog
{
public:
- Decoder(QWidget *parent);
+ Decoder(QWidget *parent, const srd_decoder *decoder,
+ const std::vector< boost::shared_ptr<view::Signal> > &sigs,
+ GHashTable *options);
+
+ void accept();
+
+ std::map<const srd_probe*, boost::shared_ptr<view::Signal> >
+ get_probes();
+
+private:
+ QComboBox* create_probe_selector(
+ QWidget *parent, const char *name);
private:
+ const srd_decoder *const _decoder;
+ const std::vector< boost::shared_ptr<view::Signal> > &_sigs;
+
+ std::map<const srd_probe*, QComboBox*> _probe_selector_map;
+
+ GHashTable *const _options;
+ pv::prop::binding::DecoderOptions _binding;
+
QVBoxLayout _layout;
QWidget _form;
QFormLayout _form_layout;
+ QLabel _heading;
QDialogButtonBox _button_box;
};