diff --git a/DSView/pv/data/decoderstack.cpp b/DSView/pv/data/decoderstack.cpp index b9d82653..59cbb434 100755 --- a/DSView/pv/data/decoderstack.cpp +++ b/DSView/pv/data/decoderstack.cpp @@ -444,7 +444,7 @@ void DecoderStack::do_decode_work() if (_samplerate == 0.0) return; - decode_proc(); + execute_decode_stack(); } uint64_t DecoderStack::get_max_sample_count() @@ -552,7 +552,7 @@ void DecoderStack::decode_data(const uint64_t decode_start, const uint64_t decod decode_done(); } -void DecoderStack::decode_proc() +void DecoderStack::execute_decode_stack() { srd_session *session; srd_decoder_inst *prev_di = NULL; @@ -562,6 +562,8 @@ void DecoderStack::decode_proc() assert(_snapshot); // Create the session + // one decoderstatck onwer one session + // all decoderstatck execute in sequence srd_session_new(&session); assert(session); diff --git a/DSView/pv/data/decoderstack.h b/DSView/pv/data/decoderstack.h index a1465ac2..30798170 100755 --- a/DSView/pv/data/decoderstack.h +++ b/DSView/pv/data/decoderstack.h @@ -155,7 +155,7 @@ public: private: void decode_data(const uint64_t decode_start, const uint64_t decode_end, srd_session *const session); - void decode_proc(); + void execute_decode_stack(); static void annotation_callback(srd_proto_data *pdata, void *decoder); void do_decode_work(); diff --git a/DSView/pv/dock/protocoldock.cpp b/DSView/pv/dock/protocoldock.cpp index 63bffefb..e89c29a3 100755 --- a/DSView/pv/dock/protocoldock.cpp +++ b/DSView/pv/dock/protocoldock.cpp @@ -113,7 +113,7 @@ ProtocolDock::ProtocolDock(QWidget *parent, view::View &view, SigSession *sessio _protocol_combobox->setCompleter(NULL); GSList *l = g_slist_sort(g_slist_copy((GSList*)srd_decoder_list()), decoder_name_cmp); - int protocol_index = 0; + std::map pro_key_table; QString repeatNammes; @@ -127,9 +127,8 @@ ProtocolDock::ProtocolDock(QWidget *parent, view::View &view, SigSession *sessio DecoderInfoItem *info = new DecoderInfoItem(); strncpy(info->Name, d->name, DECODER_NAME_LEN-1); strncpy(info->Id, d->id, DECODER_NAME_LEN-1); - info->Index = protocol_index; - info->ObjectHandle = l->data; - protocol_index++; + + info->ObjectHandle = l->data; _decoderInfoList.push_back(info); @@ -145,11 +144,14 @@ ProtocolDock::ProtocolDock(QWidget *parent, view::View &view, SigSession *sessio } } g_slist_free(l); - + //sort protocol list sort(_decoderInfoList.begin(), _decoderInfoList.end(), ProtocolDock::protocol_sort_callback); + int protocol_index = 0; for (auto info : _decoderInfoList){ + info->Index = protocol_index; + protocol_index++; _protocol_combobox->addItem(QString::fromUtf8(info->Name), QVariant::fromValue(info->Index)); } _protocol_combobox->setCurrentIndex(-1);