+ options_[id] = value;
+}
+
+bool Decoder::have_required_channels() const
+{
+ for (GSList *l = decoder_->channels; l; l = l->next) {
+ const srd_channel *const pdch = (const srd_channel*)l->data;
+ assert(pdch);
+ if (channels_.find(pdch) == channels_.end())
+ return false;
+ }
+
+ return true;
+}
+
+set< shared_ptr<pv::data::Logic> > Decoder::get_data()
+{
+ set< shared_ptr<pv::data::Logic> > data;
+ for (const auto & channel : channels_) {
+ shared_ptr<view::LogicSignal> signal(channel.second);
+ assert(signal);
+ data.insert(signal->logic_data());
+ }
+
+ return data;