Удалить значение из a{ss}
У меня есть этот код для записи имени устройства в меню выбора настроек:
GVariant devices
GVariantBuilder builder;
GVariantIter iter;
char *device;
char *p;
g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{ss}"));
g_variant_iter_init (&iter, devices);
while (g_variant_iter_loop (&iter, "{ss}", &device, &p))
{
if (g_strcmp0 (device, settings.device) == 0)
{
g_variant_builder_add (&builder, "{ss}", device, p);
}
}
devices = g_variant_builder_end (&builder);
будет производить:
{'device1': 'device1_name', 'device2': 'device2_name' 'device3': 'device3_name'}
Как удалить массив fom, например 'device2': 'device2_name', если устройство исчезло?