1 /* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
2 * Use of this source code is governed by a BSD-style license that can be
3 * found in the LICENSE file.
4 */
5
6 #include "cras_dbus_util.h"
7
append_key_value(DBusMessageIter * iter,const char * key,int type,const char * type_string,void * value)8 dbus_bool_t append_key_value(DBusMessageIter *iter, const char *key, int type,
9 const char *type_string, void *value)
10 {
11 DBusMessageIter entry, variant;
12
13 if (!dbus_message_iter_open_container(iter, DBUS_TYPE_DICT_ENTRY, NULL,
14 &entry))
15 return FALSE;
16 if (!dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &key))
17 return FALSE;
18 if (!dbus_message_iter_open_container(&entry, DBUS_TYPE_VARIANT,
19 type_string, &variant))
20 return FALSE;
21 if (!dbus_message_iter_append_basic(&variant, type, value))
22 return FALSE;
23 if (!dbus_message_iter_close_container(&entry, &variant))
24 return FALSE;
25 if (!dbus_message_iter_close_container(iter, &entry))
26 return FALSE;
27
28 return TRUE;
29 }
30