From c57c09eed40704363256149e7b50582a68de6162 Mon Sep 17 00:00:00 2001 From: Michael Olbrich Date: Fri, 6 Apr 2012 21:38:01 +0200 Subject: [PATCH] dbus: add generic DEFINE_BUS_PROPERTY_SET_ENUM() macro for enum properties The defined function can be used as BusPropertySetCallback. --- src/dbus-common.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/dbus-common.h b/src/dbus-common.h index 1dc0f591d..892d1297f 100644 --- a/src/dbus-common.h +++ b/src/dbus-common.h @@ -160,6 +160,21 @@ int bus_property_append_long(DBusMessageIter *i, const char *property, void *dat return 0; \ } +#define DEFINE_BUS_PROPERTY_SET_ENUM(function,name,type) \ + int function(DBusMessageIter *i, const char *property, void *data) { \ + const char *value; \ + type *field = data; \ + \ + assert(i); \ + assert(property); \ + \ + dbus_message_iter_get_basic(i, &value); \ + \ + *field = name##_from_string(value); \ + \ + return 0; \ + } + const char *bus_errno_to_dbus(int error); DBusMessage* bus_properties_changed_new(const char *path, const char *interface, const char *properties); -- 2.30.2