- 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;
+ if (decoder_inst_) {
+ GHashTable *const opt_hash = g_hash_table_new_full(g_str_hash,
+ g_str_equal, g_free, (GDestroyNotify)g_variant_unref);
+
+ for (const auto& option : options_) {
+ GVariant *const value = option.second;
+ g_variant_ref(value);
+ g_hash_table_replace(opt_hash, (void*)g_strdup(
+ option.first.c_str()), value);
+ }
+
+ srd_inst_option_set(decoder_inst_, opt_hash);
+ g_hash_table_destroy(opt_hash);