/* * This file is part of the PulseView project. * * Copyright (C) 2013 Joel Holdsworth * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef DSLOGIC_PV_DATA_DECODE_DECODER_H #define DSLOGIC_PV_DATA_DECODE_DECODER_H #include #include #include #include struct srd_decoder; struct srd_decoder_inst; struct srd_channel; struct srd_session; namespace pv { namespace view { class LogicSignal; } namespace data { class Logic; namespace decode { class Decoder { public: Decoder(const srd_decoder *const decoder); virtual ~Decoder(); const srd_decoder* decoder() const; bool shown() const; void show(bool show = true); void commit_show(); const std::map >& channels() const; void set_probes(std::map > probes); const std::map& options() const; void set_option(const char *id, GVariant *value); bool have_required_probes() const; srd_decoder_inst* create_decoder_inst( srd_session *session, int unit_size) const; std::set< boost::shared_ptr > get_data(); bool commit(); private: const srd_decoder *const _decoder; bool _shown; bool _shown_back; bool _shown_setted; std::map > _probes; std::map _options; std::map > _probes_back; std::map _options_back; bool _setted; }; } // namespace decode } // namespace data } // namespace pv #endif // DSLOGIC_PV_DATA_DECODE_DECODER_H