+ assert(gvar_list);
+
+ if ((gvar_list_samplerates = g_variant_lookup_value(gvar_list,
+ "samplerate-steps", G_VARIANT_TYPE("at"))))
+ {
+ gsize num_elements;
+ const uint64_t *const elements =
+ (const uint64_t *)g_variant_get_fixed_array(
+ gvar_list_samplerates, &num_elements, sizeof(uint64_t));
+
+ assert(num_elements == 3);
+
+ _properties.push_back(shared_ptr<Property>(
+ new Double(name, 0, QObject::tr("Hz"),
+ make_pair((double)elements[0], (double)elements[1]),
+ (double)elements[2],
+ bind(samplerate_double_getter, _sdi),
+ bind(samplerate_double_setter, _sdi, _1))));
+
+ g_variant_unref(gvar_list_samplerates);
+ }
+ else if ((gvar_list_samplerates = g_variant_lookup_value(gvar_list,
+ "samplerates", G_VARIANT_TYPE("at"))))
+ {
+ bind_enum(name, SR_CONF_SAMPLERATE,
+ gvar_list_samplerates, print_samplerate);
+ g_variant_unref(gvar_list_samplerates);
+ }