summaryrefslogtreecommitdiffstats
path: root/src/pulsecore/dbus-util.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pulsecore/dbus-util.h')
-rw-r--r--src/pulsecore/dbus-util.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/pulsecore/dbus-util.h b/src/pulsecore/dbus-util.h
index 97328735..1a8aeac9 100644
--- a/src/pulsecore/dbus-util.h
+++ b/src/pulsecore/dbus-util.h
@@ -26,6 +26,7 @@
#include <pulsecore/llist.h>
#include <pulse/mainloop-api.h>
+#include <pulse/proplist.h>
/* A wrap connection is not shared or refcounted, it is available in client side */
typedef struct pa_dbus_wrap_connection pa_dbus_wrap_connection;
@@ -61,4 +62,32 @@ void pa_dbus_sync_pending_list(pa_dbus_pending **p);
/* Free up a list of pa_dbus_pending_call objects */
void pa_dbus_free_pending_list(pa_dbus_pending **p);
+/* Sends an error message as the reply to the given message. */
+void pa_dbus_send_error(DBusConnection *c, DBusMessage *in_reply_to, const char *name, const char *message);
+
+void pa_dbus_send_empty_reply(DBusConnection *c, DBusMessage *in_reply_to);
+void pa_dbus_send_basic_value_reply(DBusConnection *c, DBusMessage *in_reply_to, int type, void *data);
+void pa_dbus_send_basic_variant_reply(DBusConnection *c, DBusMessage *in_reply_to, int type, void *data);
+void pa_dbus_send_basic_array_variant_reply(DBusConnection *c, DBusMessage *in_reply_to, int item_type, void *array, unsigned n);
+
+void pa_dbus_append_basic_array(DBusMessageIter *iter, int item_type, const void *array, unsigned n);
+void pa_dbus_append_basic_array_variant(DBusMessageIter *iter, int item_type, const void *array, unsigned n);
+void pa_dbus_append_basic_variant(DBusMessageIter *iter, int type, void *data);
+void pa_dbus_append_basic_variant_dict_entry(DBusMessageIter *dict_iter, const char *key, int type, void *data);
+void pa_dbus_append_basic_array_variant_dict_entry(DBusMessageIter *dict_iter, const char *key, int item_type, const void *array, unsigned n);
+
+/* Helper function for extracting the value argument of a Set call for a
+ * property with a basic type. If the message is invalid, an error reply is
+ * sent and a negative number is returned. */
+int pa_dbus_get_basic_set_property_arg(DBusConnection *c, DBusMessage *msg, int type, void *data);
+
+/* If the arguments can't be read from the iterator, an error reply is sent and
+ * a negative number is returned. */
+int pa_dbus_get_basic_arg(DBusConnection *c, DBusMessage *msg, DBusMessageIter *iter, int type, void *data);
+int pa_dbus_get_fixed_array_arg(DBusConnection *c, DBusMessage *msg, DBusMessageIter *iter, int item_type, void *array, unsigned *n);
+
+/* Returns a new proplist, that the caller has to free. If the proplist can't
+ * be read from the iterator, an error reply is sent and NULL is returned. */
+pa_proplist *pa_dbus_get_proplist_arg(DBusConnection *c, DBusMessage *msg, DBusMessageIter *iter);
+
#endif