Home | History | Annotate | Download | only in server
      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 
      8 dbus_bool_t append_key_value(DBusMessageIter *iter, const char *key,
      9 			     int type, const char *type_string,
     10 			     void *value)
     11 {
     12        DBusMessageIter entry, variant;
     13 
     14        if (!dbus_message_iter_open_container(iter, DBUS_TYPE_DICT_ENTRY, NULL,
     15                                              &entry))
     16                return FALSE;
     17        if (!dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &key))
     18                return FALSE;
     19        if (!dbus_message_iter_open_container(&entry, DBUS_TYPE_VARIANT,
     20                                              type_string, &variant))
     21                return FALSE;
     22        if (!dbus_message_iter_append_basic(&variant, type, value))
     23                return FALSE;
     24        if (!dbus_message_iter_close_container(&entry, &variant))
     25                return FALSE;
     26        if (!dbus_message_iter_close_container(iter, &entry))
     27                return FALSE;
     28 
     29        return TRUE;
     30 }
     31