config: Return errors as negative numbers, device ids as positive numbers.

Update dbus-api documentation.
This commit is contained in:
Peter Hutterer 2007-04-19 12:00:24 +09:30
parent ae75afcb1b
commit 9c30f74221
2 changed files with 12 additions and 11 deletions

View File

@ -308,12 +308,15 @@ configMessage(DBusConnection *connection, DBusMessage *message, void *closure)
if (ret != BadDrawable && ret != BadAlloc) { if (ret != BadDrawable && ret != BadAlloc) {
if (!strlen(dbus_message_get_signature(reply))) 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)) { if (!dbus_message_iter_append_basic(&r_iter, DBUS_TYPE_INT32, &ret)) {
ErrorF("[config] couldn't append to iterator\n"); ErrorF("[config] couldn't append to iterator\n");
dbus_message_unref(reply); dbus_message_unref(reply);
dbus_error_free(&error); dbus_error_free(&error);
return DBUS_HANDLER_RESULT_HANDLED; return DBUS_HANDLER_RESULT_HANDLED;
} }
}
if (!dbus_connection_send(bus, reply, NULL)) if (!dbus_connection_send(bus, reply, NULL))
ErrorF("[config] failed to send reply\n"); ErrorF("[config] failed to send reply\n");

View File

@ -15,25 +15,23 @@ org.x.config.input:
Option names beginning with _ are not allowed; they are reserved Option names beginning with _ are not allowed; they are reserved
for internal use. for internal use.
Returns one int32, which is an X Status, as defined in X.h. If Returns one signed int32, which is the device id of the new device.
everything is successful, Success will be returned. BadMatch will If the return value is a negative number, it represents the X
be returned if the options given do not match any device. BadValue Status, as defined in X.h. BadMatch will be returned if the options
is returned for a malformed message. 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 Notably, BadAlloc is never returned: the server internally signals
to D-BUS that the attempt failed for lack of memory. 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: org.x.config.input.remove:
Takes one int32 argument, which is the device ID to remove, i.e.: Takes one int32 argument, which is the device ID to remove, i.e.:
i i
is the signature. 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: 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> ... Return value is sequence of <id> <name> <id> <name> ...