• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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