X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fdata%2Fdecode%2Fdecoder.cpp;h=ffdbeb93bc3835eee32594045af1e79f32260467;hb=bcaf033478ecf9a482f53b3dc973b7d2b9c4c52b;hp=5fae925886155a900394cb64d6861e6e3fb37b82;hpb=efdec55aec1a137460fa362a381ed1904182bfed;p=pulseview.git diff --git a/pv/data/decode/decoder.cpp b/pv/data/decode/decoder.cpp index 5fae9258..ffdbeb93 100644 --- a/pv/data/decode/decoder.cpp +++ b/pv/data/decode/decoder.cpp @@ -68,13 +68,13 @@ Decoder::channels() const return channels_; } -void Decoder::set_channels(std::map > channels) +void Decoder::set_channels(map > channels) { channels_ = channels; } -const std::map& Decoder::options() const +const map& Decoder::options() const { return options_; } @@ -130,11 +130,20 @@ srd_decoder_inst* Decoder::create_decoder_inst(srd_session *session) const return nullptr; // Setup the channels + GArray *const init_pin_states = g_array_sized_new(FALSE, TRUE, + sizeof(uint8_t), channels_.size()); + + g_array_set_size(init_pin_states, channels_.size()); + GHashTable *const channels = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, (GDestroyNotify)g_variant_unref); for (const auto& channel : channels_) { shared_ptr b(channel.second); + +// init_pin_states->data[pdch->order] = +// channel.initial_pin_state; + GVariant *const gvar = g_variant_new_int32(b->index()); g_variant_ref_sink(gvar); g_hash_table_insert(channels, channel.first->id, gvar); @@ -142,9 +151,12 @@ srd_decoder_inst* Decoder::create_decoder_inst(srd_session *session) const srd_inst_channel_set_all(decoder_inst, channels); +// srd_inst_initial_pins_set_all(decoder_inst, initial_pin_states); + g_array_free(init_pin_states, TRUE); + return decoder_inst; } -} // decode -} // data -} // pv +} // namespace decode +} // namespace data +} // namespace pv