]> sigrok.org Git - pulseview.git/blobdiff - pv/data/decode/decoder.cpp
Pass new unit_size argument to srd_inst_probe_set_all()
[pulseview.git] / pv / data / decode / decoder.cpp
index 0404227eeaef48a92da5581e93f29d16e7e42bf7..8cde226da847327395bcb306e2cc28c4b0d6b0b0 100644 (file)
@@ -18,6 +18,7 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
+#include <libsigrok/libsigrok.h>
 #include <libsigrokdecode/libsigrokdecode.h>
 
 #include "decoder.h"
 #include <libsigrokdecode/libsigrokdecode.h>
 
 #include "decoder.h"
@@ -84,8 +85,19 @@ void Decoder::set_option(const char *id, GVariant *value)
        _options[id] = value;
 }
 
        _options[id] = value;
 }
 
-srd_decoder_inst* Decoder::create_decoder_inst(
-       srd_session *const session) const
+bool Decoder::have_required_probes() const
+{
+       for (GSList *p = _decoder->probes; p; p = p->next) {
+               const srd_probe *const probe = (const srd_probe*)p->data;
+               assert(probe);
+               if (_probes.find(probe) == _probes.end())
+                       return false;
+       }
+
+       return true;
+}
+
+srd_decoder_inst* Decoder::create_decoder_inst(srd_session *session, int unit_size) 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);
@@ -121,7 +133,7 @@ srd_decoder_inst* Decoder::create_decoder_inst(
                g_hash_table_insert(probes, (*i).first->id, gvar);
        }
 
                g_hash_table_insert(probes, (*i).first->id, gvar);
        }
 
-       srd_inst_probe_set_all(decoder_inst, probes);
+       srd_inst_probe_set_all(decoder_inst, probes, unit_size);
 
        return decoder_inst;
 }
 
        return decoder_inst;
 }