namespace decode {
Decoder::Decoder(const srd_decoder *const dec) :
- decoder_(dec),
+ srd_decoder_(dec),
shown_(true),
decoder_inst_(nullptr)
{
+ // Query the decoder outputs
+ uint32_t i = 0;
+ for (GSList *l = dec->binary; l; l = l->next) {
+ char **bin_class = (char**)l->data;
+ char *name = bin_class[0];
+ char *desc = bin_class[1];
+ bin_classes_.push_back({i++, name, desc});
+ }
}
Decoder::~Decoder()
const srd_decoder* Decoder::decoder() const
{
- return decoder_;
+ return srd_decoder_;
+}
+
+const char* Decoder::name() const
+{
+ return srd_decoder_->name;
}
bool Decoder::shown() const
if (decoder_inst_)
qDebug() << "WARNING: previous decoder instance" << decoder_inst_ << "exists";
- decoder_inst_ = srd_inst_new(session, decoder_->id, opt_hash);
+ decoder_inst_ = srd_inst_new(session, srd_decoder_->id, opt_hash);
g_hash_table_destroy(opt_hash);
if (!decoder_inst_)
decoder_inst_ = nullptr;
}
+uint32_t Decoder::get_binary_class_count() const
+{
+ return bin_classes_.size();
+}
+
+const DecodeBinaryClassInfo* Decoder::get_binary_class(uint32_t id) const
+{
+ return &(bin_classes_.at(id));
+}
+
} // namespace decode
} // namespace data
} // namespace pv