summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter@cs.unisa.edu.au>2007-04-19 12:00:24 +0930
committerPeter Hutterer <peter@cs.unisa.edu.au>2007-04-19 12:00:24 +0930
commit9c30f7422121a0443c8d612d06181e17d8af9730 (patch)
treef15389e6cf73d762a6422b6f2bc4d15d9ec1d821
parentae75afcb1b5419102c5be10b8826ceed50d2ef5d (diff)
config: Return errors as negative numbers, device ids as positive numbers.
Update dbus-api documentation.
-rw-r--r--config/config.c3
-rw-r--r--config/dbus-api20
2 files changed, 12 insertions, 11 deletions
diff --git a/config/config.c b/config/config.c
index 4861d9ead..9b38faf49 100644
--- a/config/config.c
+++ b/config/config.c
@@ -308,12 +308,15 @@ configMessage(DBusConnection *connection, DBusMessage *message, void *closure)
if (ret != BadDrawable && ret != BadAlloc) {
if (!strlen(dbus_message_get_signature(reply)))
+ {
+ ret = -ret; /* return errors as negative numbers */
if (!dbus_message_iter_append_basic(&r_iter, DBUS_TYPE_INT32, &ret)) {
ErrorF("[config] couldn't append to iterator\n");
dbus_message_unref(reply);
dbus_error_free(&error);
return DBUS_HANDLER_RESULT_HANDLED;
}
+ }
if (!dbus_connection_send(bus, reply, NULL))
ErrorF("[config] failed to send reply\n");
diff --git a/config/dbus-api b/config/dbus-api
index cada792f5..654c22bec 100644
--- a/config/dbus-api
+++ b/config/dbus-api
@@ -15,25 +15,23 @@ org.x.config.input:
Option names beginning with _ are not allowed; they are reserved
for internal use.
- Returns one int32, which is an X Status, as defined in X.h. If
- everything is successful, Success will be returned. BadMatch will
- be returned if the options given do not match any device. BadValue
- is returned for a malformed message.
+ Returns one signed int32, which is the device id of the new device.
+ If the return value is a negative number, it represents the X
+ Status, as defined in X.h. BadMatch will be returned if the options
+ given do not match any device. BadValue is returned for a malformed
+ message. (Example: 8 is new device id 8. -8 is BadMatch.)
Notably, BadAlloc is never returned: the server internally signals
to D-BUS that the attempt failed for lack of memory.
- The return does not notify the client of which devices were created
- or modified as a result of this request: clients are encouraged to
- listen for the XInput DevicePresenceNotify event to monitor changes
- in the device list.
-
org.x.config.input.remove:
Takes one int32 argument, which is the device ID to remove, i.e.:
i
is the signature.
- Same return values as org.x.config.input.add.
+
+ Returns one signed int32 which represents an X status as defined in
+ X.h. See org.x.config.input.add. Error codes are negative numbers.
org.x.config.input.listDevices:
- Lists the currently active devices.
+ Lists the currently active devices. No argument.
Return value is sequence of <id> <name> <id> <name> ...