X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdata%2Fdecoder.cpp;h=292430b6f0969290d206258bc2859fa10b0f041e;hp=65fc8fff7c858312fa77a902d8df9d33ea3acddd;hb=e92cd4e4cddac2639c1a5e278124b5bb22ace10f;hpb=b213ef0991a13af0c74ffe5c54382c5c455c5496 diff --git a/pv/data/decoder.cpp b/pv/data/decoder.cpp index 65fc8fff..292430b6 100644 --- a/pv/data/decoder.cpp +++ b/pv/data/decoder.cpp @@ -22,6 +22,8 @@ #include +#include + #include #include "decoder.h" @@ -51,7 +53,9 @@ Decoder::Decoder(const srd_decoder *const dec, _session(NULL), _decoder_inst(NULL) { - init_decoder(); + if (!init_decoder()) + throw runtime_error("Failed to initialise decoder."); + begin_decode(); } @@ -101,7 +105,7 @@ void Decoder::clear_snapshots() { } -void Decoder::init_decoder() +bool Decoder::init_decoder() { if (!_probes.empty()) { @@ -124,7 +128,7 @@ void Decoder::init_decoder() _decoder_inst = srd_inst_new(_session, _decoder->id, _options); if(!_decoder_inst) { qDebug() << "Failed to initialise decoder"; - return; + return false; } _decoder_inst->data_samplerate = _samplerate; @@ -144,6 +148,8 @@ void Decoder::init_decoder() } srd_inst_probe_set_all(_decoder_inst, probes); + + return true; } void Decoder::decode_proc(shared_ptr data)