C++: handle uint32_t SR_CONF keys which contain key capabilities

This adapts the C++ bindings according to commits 584560f and 5827f61.
This commit is contained in:
Aurelien Jacobs 2014-09-30 00:37:03 +02:00
parent 5e2c86eb31
commit 03a4c07aff
1 changed files with 8 additions and 8 deletions

View File

@ -356,18 +356,18 @@ vector<const ConfigKey *> Configurable::config_keys(const ConfigKey *key)
{ {
GVariant *gvar_opts; GVariant *gvar_opts;
gsize num_opts; gsize num_opts;
const int32_t *opts; const uint32_t *opts;
vector<const ConfigKey *> result; vector<const ConfigKey *> result;
check(sr_config_list( check(sr_config_list(
config_driver, config_sdi, config_channel_group, config_driver, config_sdi, config_channel_group,
key->id(), &gvar_opts)); key->id(), &gvar_opts));
opts = (const int32_t *) g_variant_get_fixed_array( opts = (const uint32_t *) g_variant_get_fixed_array(
gvar_opts, &num_opts, sizeof(int32_t)); gvar_opts, &num_opts, sizeof(uint32_t));
for (gsize i = 0; i < num_opts; i++) for (gsize i = 0; i < num_opts; i++)
result.push_back(ConfigKey::get(opts[i])); result.push_back(ConfigKey::get(opts[i] & SR_CONF_MASK));
g_variant_unref(gvar_opts); g_variant_unref(gvar_opts);
@ -379,18 +379,18 @@ bool Configurable::config_check(const ConfigKey *key,
{ {
GVariant *gvar_opts; GVariant *gvar_opts;
gsize num_opts; gsize num_opts;
const int32_t *opts; const uint32_t *opts;
if (sr_config_list(config_driver, config_sdi, config_channel_group, if (sr_config_list(config_driver, config_sdi, config_channel_group,
index_key->id(), &gvar_opts) != SR_OK) index_key->id(), &gvar_opts) != SR_OK)
return false; return false;
opts = (const int32_t *) g_variant_get_fixed_array( opts = (const uint32_t *) g_variant_get_fixed_array(
gvar_opts, &num_opts, sizeof(int32_t)); gvar_opts, &num_opts, sizeof(uint32_t));
for (gsize i = 0; i < num_opts; i++) for (gsize i = 0; i < num_opts; i++)
{ {
if (opts[i] == key->id()) if ((opts[i] & SR_CONF_MASK) == key->id())
{ {
g_variant_unref(gvar_opts); g_variant_unref(gvar_opts);
return true; return true;