From: Michael Olbrich Date: Fri, 6 Apr 2012 19:38:01 +0000 (+0200) Subject: dbus: add generic DEFINE_BUS_PROPERTY_SET_ENUM() macro for enum properties X-Git-Tag: v183~414 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=c57c09eed40704363256149e7b50582a68de6162;hp=9612f07cbf2b0ec54c5dc6ed7e521e181cc3612d dbus: add generic DEFINE_BUS_PROPERTY_SET_ENUM() macro for enum properties The defined function can be used as BusPropertySetCallback. --- 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);