projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
AnalogSignal: Only report an extent change when there is one
[pulseview.git]
/
pv
/
data
/
decode
/
decoder.cpp
diff --git
a/pv/data/decode/decoder.cpp
b/pv/data/decode/decoder.cpp
index 13c40a355aafdad2aa3961e7be524bfb8a510616..d7ec5e11bc3525102d073b7d171fb5be6f478d2c 100644
(file)
--- a/
pv/data/decode/decoder.cpp
+++ b/
pv/data/decode/decoder.cpp
@@
-14,20
+14,21
@@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* 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
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
*/
-#include <libsigrok/libsigrok.h>
+#include <cassert>
+
+#include <libsigrokcxx/libsigrokcxx.hpp>
#include <libsigrokdecode/libsigrokdecode.h>
#include <libsigrokdecode/libsigrokdecode.h>
-#include "decoder.h"
+#include "decoder.h
pp
"
-#include <pv/
view/logicsignal.h
>
+#include <pv/
data/signalbase.hpp
>
-using boost::shared_ptr;
using std::set;
using std::map;
using std::set;
using std::map;
+using std::shared_ptr;
using std::string;
namespace pv {
using std::string;
namespace pv {
@@
-35,62
+36,62
@@
namespace data {
namespace decode {
Decoder::Decoder(const srd_decoder *const dec) :
namespace decode {
Decoder::Decoder(const srd_decoder *const dec) :
-
_decoder
(dec),
-
_shown
(true)
+
decoder_
(dec),
+
shown_
(true)
{
}
Decoder::~Decoder()
{
{
}
Decoder::~Decoder()
{
- for (auto
i = _options.begin(); i != _options.end(); i++
)
- g_variant_unref(
(*i)
.second);
+ for (auto
& option : options_
)
+ g_variant_unref(
option
.second);
}
const srd_decoder* Decoder::decoder() const
{
}
const srd_decoder* Decoder::decoder() const
{
- return
_decoder
;
+ return
decoder_
;
}
bool Decoder::shown() const
{
}
bool Decoder::shown() const
{
- return
_shown
;
+ return
shown_
;
}
void Decoder::show(bool show)
{
}
void Decoder::show(bool show)
{
-
_shown
= show;
+
shown_
= show;
}
}
-const map<const srd_channel*, shared_ptr<
view::LogicSignal
> >&
+const map<const srd_channel*, shared_ptr<
data::SignalBase
> >&
Decoder::channels() const
{
Decoder::channels() const
{
- return
_probes
;
+ return
channels_
;
}
}
-void Decoder::set_
probes(std::
map<const srd_channel*,
-
boost::shared_ptr<view::LogicSignal> > probe
s)
+void Decoder::set_
channels(
map<const srd_channel*,
+
shared_ptr<data::SignalBase> > channel
s)
{
{
-
_probes = probe
s;
+
channels_ = channel
s;
}
}
-const
std::map<std::
string, GVariant*>& Decoder::options() const
+const
map<
string, GVariant*>& Decoder::options() const
{
{
- return
_options
;
+ return
options_
;
}
void Decoder::set_option(const char *id, GVariant *value)
{
assert(value);
g_variant_ref(value);
}
void Decoder::set_option(const char *id, GVariant *value)
{
assert(value);
g_variant_ref(value);
-
_options
[id] = value;
+
options_
[id] = value;
}
}
-bool Decoder::have_required_
probe
s() const
+bool Decoder::have_required_
channel
s() const
{
{
- for (GSList *l =
_decoder
->channels; l; l = l->next) {
+ for (GSList *l =
decoder_
->channels; l; l = l->next) {
const srd_channel *const pdch = (const srd_channel*)l->data;
assert(pdch);
const srd_channel *const pdch = (const srd_channel*)l->data;
assert(pdch);
- if (
_probes.find(pdch) == _probes
.end())
+ if (
channels_.find(pdch) == channels_
.end())
return false;
}
return false;
}
@@
-100,53
+101,50
@@
bool Decoder::have_required_probes() const
set< shared_ptr<pv::data::Logic> > Decoder::get_data()
{
set< shared_ptr<pv::data::Logic> > data;
set< shared_ptr<pv::data::Logic> > Decoder::get_data()
{
set< shared_ptr<pv::data::Logic> > data;
- for
(auto i = _probes.cbegin(); i != _probes.cend(); i++
) {
- shared_ptr<
view::LogicSignal> signal((*i)
.second);
- assert(
signal
);
- data.insert(
signal
->logic_data());
+ for
(const auto& channel : channels_
) {
+ shared_ptr<
data::SignalBase> b(channel
.second);
+ assert(
b
);
+ data.insert(
b
->logic_data());
}
return data;
}
}
return data;
}
-srd_decoder_inst* Decoder::create_decoder_inst(srd_session *session
, int unit_size
) const
+srd_decoder_inst* Decoder::create_decoder_inst(srd_session *session) const
{
GHashTable *const opt_hash = g_hash_table_new_full(g_str_hash,
g_str_equal, g_free, (GDestroyNotify)g_variant_unref);
{
GHashTable *const opt_hash = g_hash_table_new_full(g_str_hash,
g_str_equal, g_free, (GDestroyNotify)g_variant_unref);
- for (auto i = _options.cbegin(); i != _options.cend(); i++)
- {
- GVariant *const value = (*i).second;
+ for (const auto& option : options_) {
+ GVariant *const value = option.second;
g_variant_ref(value);
g_hash_table_replace(opt_hash, (void*)g_strdup(
g_variant_ref(value);
g_hash_table_replace(opt_hash, (void*)g_strdup(
-
(*i)
.first.c_str()), value);
+
option
.first.c_str()), value);
}
srd_decoder_inst *const decoder_inst = srd_inst_new(
}
srd_decoder_inst *const decoder_inst = srd_inst_new(
- session,
_decoder
->id, opt_hash);
+ session,
decoder_
->id, opt_hash);
g_hash_table_destroy(opt_hash);
g_hash_table_destroy(opt_hash);
- if(!decoder_inst)
- return
NULL
;
+ if
(!decoder_inst)
+ return
nullptr
;
- // Setup the
probe
s
- GHashTable *const
probe
s = g_hash_table_new_full(g_str_hash,
+ // Setup the
channel
s
+ GHashTable *const
channel
s = g_hash_table_new_full(g_str_hash,
g_str_equal, g_free, (GDestroyNotify)g_variant_unref);
g_str_equal, g_free, (GDestroyNotify)g_variant_unref);
- for(auto i = _probes.cbegin(); i != _probes.cend(); i++)
- {
- shared_ptr<view::LogicSignal> signal((*i).second);
- GVariant *const gvar = g_variant_new_int32(
- signal->probe()->index);
+ for (const auto& channel : channels_) {
+ shared_ptr<data::SignalBase> b(channel.second);
+ GVariant *const gvar = g_variant_new_int32(b->index());
g_variant_ref_sink(gvar);
g_variant_ref_sink(gvar);
- g_hash_table_insert(
probes, (*i)
.first->id, gvar);
+ g_hash_table_insert(
channels, channel
.first->id, gvar);
}
}
- srd_inst_channel_set_all(decoder_inst,
probes, unit_size
);
+ srd_inst_channel_set_all(decoder_inst,
channels
);
return decoder_inst;
}
return decoder_inst;
}
-}
//
decode
-}
//
data
-}
//
pv
+}
// namespace
decode
+}
// namespace
data
+}
// namespace
pv