diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2014-11-17 12:13:25 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2014-11-18 09:05:16 +1000 |
commit | 3320407c1205896a9d46f7c872ee34eacd9781c9 (patch) | |
tree | 88661431efdafe055376fed87a6023f0736ebfc0 | |
parent | cc3b81f15a646765f18700b2e2c03fd3341d1a2d (diff) | |
download | libevdev-3320407c1205896a9d46f7c872ee34eacd9781c9.tar.gz |
doc: add the prefixing * to all @code doxygen sections
These were removed in (7da329b) because for some reason they got copied into
the output. That was either a buggy doxygen or just some other problem. Add
them again, makes it much easier to read the header file.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | libevdev/libevdev-uinput.h | 126 | ||||
-rw-r--r-- | libevdev/libevdev.h | 326 |
2 files changed, 226 insertions, 226 deletions
diff --git a/libevdev/libevdev-uinput.h b/libevdev/libevdev-uinput.h index 0e7e96b..0cf33a9 100644 --- a/libevdev/libevdev-uinput.h +++ b/libevdev/libevdev-uinput.h @@ -38,72 +38,72 @@ struct libevdev_uinput; * help to create uinput devices that emulate libevdev devices. In the simplest * form it serves to duplicate an existing device: * - @code - int err; - int fd, new_fd, uifd; - struct libevdev *dev; - struct libevdev_uinput *uidev; - struct input_event ev[2]; - - fd = open("/dev/input/event0", O_RDONLY); - if (fd < 0) - return err; - - err = libevdev_new_from_fd(fd, &dev); - if (err != 0) - return err; - - uifd = open("/dev/uinput", O_RDWR); - if (uidev < 0) - return -errno; - - err = libevdev_uinput_create_from_device(dev, uifd, &uidev); - if (err != 0) - return err; - - // post a REL_X event - err = libevdev_uinput_write_event(uidev, EV_REL, REL_X, -1); - if (err != 0) - return err; - libevdev_uinput_write_event(uidev, EV_SYN, SYN_REPORT, 0); - if (err != 0) - return err; - - libevdev_uinput_destroy(uidev); - libevdev_free(dev); - close(uifd); - close(fd); - - @endcode + * @code + * int err; + * int fd, new_fd, uifd; + * struct libevdev *dev; + * struct libevdev_uinput *uidev; + * struct input_event ev[2]; + * + * fd = open("/dev/input/event0", O_RDONLY); + * if (fd < 0) + * return err; + * + * err = libevdev_new_from_fd(fd, &dev); + * if (err != 0) + * return err; + * + * uifd = open("/dev/uinput", O_RDWR); + * if (uidev < 0) + * return -errno; + * + * err = libevdev_uinput_create_from_device(dev, uifd, &uidev); + * if (err != 0) + * return err; + * + * // post a REL_X event + * err = libevdev_uinput_write_event(uidev, EV_REL, REL_X, -1); + * if (err != 0) + * return err; + * libevdev_uinput_write_event(uidev, EV_SYN, SYN_REPORT, 0); + * if (err != 0) + * return err; + * + * libevdev_uinput_destroy(uidev); + * libevdev_free(dev); + * close(uifd); + * close(fd); + * + * @endcode * * Alternatively, a device can be constructed from scratch: * - @code - int err; - struct libevdev *dev; - struct libevdev_uinput *uidev; - - dev = libevdev_new(); - libevdev_set_name(dev, "test device"); - libevdev_enable_event_type(dev, EV_REL); - libevdev_enable_event_code(dev, EV_REL, REL_X, NULL); - libevdev_enable_event_code(dev, EV_REL, REL_Y, NULL); - libevdev_enable_event_type(dev, EV_KEY); - libevdev_enable_event_code(dev, EV_KEY, BTN_LEFT, NULL); - libevdev_enable_event_code(dev, EV_KEY, BTN_MIDDLE, NULL); - libevdev_enable_event_code(dev, EV_KEY, BTN_RIGHT, NULL); - - err = libevdev_uinput_create_from_device(dev, - LIBEVDEV_UINPUT_OPEN_MANAGED, - &uidev); - if (err != 0) - return err; - - // ... do something ... - - libevdev_uinput_destroy(uidev); - - @endcode + * @code + * int err; + * struct libevdev *dev; + * struct libevdev_uinput *uidev; + * + * dev = libevdev_new(); + * libevdev_set_name(dev, "test device"); + * libevdev_enable_event_type(dev, EV_REL); + * libevdev_enable_event_code(dev, EV_REL, REL_X, NULL); + * libevdev_enable_event_code(dev, EV_REL, REL_Y, NULL); + * libevdev_enable_event_type(dev, EV_KEY); + * libevdev_enable_event_code(dev, EV_KEY, BTN_LEFT, NULL); + * libevdev_enable_event_code(dev, EV_KEY, BTN_MIDDLE, NULL); + * libevdev_enable_event_code(dev, EV_KEY, BTN_RIGHT, NULL); + * + * err = libevdev_uinput_create_from_device(dev, + * LIBEVDEV_UINPUT_OPEN_MANAGED, + * &uidev); + * if (err != 0) + * return err; + * + * // ... do something ... + * + * libevdev_uinput_destroy(uidev); + * + * @endcode */ enum libevdev_uinput_open_mode { diff --git a/libevdev/libevdev.h b/libevdev/libevdev.h index 18df2c8..b6f2f45 100644 --- a/libevdev/libevdev.h +++ b/libevdev/libevdev.h @@ -108,37 +108,37 @@ extern "C" { * finds them monitors the device to print the event. * * @code - struct libevdev *dev = NULL; - int fd; - int rc = 1; - - fd = open("/dev/input/event0", O_RDONLY|O_NONBLOCK); - rc = libevdev_new_from_fd(fd, &dev); - if (rc < 0) { - fprintf(stderr, "Failed to init libevdev (%s)\n", strerror(-rc)); - exit(1); - } - printf("Input device name: \"%s\"\n", libevdev_get_name(dev)); - printf("Input device ID: bus %#x vendor %#x product %#x\n", - libevdev_get_id_bustype(dev), - libevdev_get_id_vendor(dev), - libevdev_get_id_product(dev)); - if (!libevdev_has_event_type(dev, EV_REL) || - !libevdev_has_event_code(dev, EV_KEY, BTN_LEFT)) { - printf("This device does not look like a mouse\n"); - exit(1); - } - - do { - struct input_event ev; - rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev); - if (rc == 0) - printf("Event: %s %s %d\n", - libevdev_get_event_type_name(ev.type), - libevdev_get_event_code_name(ev.type, ev.code), - ev.value); - } while (rc == 1 || rc == 0 || rc == -EAGAIN); - @endcode + * struct libevdev *dev = NULL; + * int fd; + * int rc = 1; + * + * fd = open("/dev/input/event0", O_RDONLY|O_NONBLOCK); + * rc = libevdev_new_from_fd(fd, &dev); + * if (rc < 0) { + * fprintf(stderr, "Failed to init libevdev (%s)\n", strerror(-rc)); + * exit(1); + * } + * printf("Input device name: \"%s\"\n", libevdev_get_name(dev)); + * printf("Input device ID: bus %#x vendor %#x product %#x\n", + * libevdev_get_id_bustype(dev), + * libevdev_get_id_vendor(dev), + * libevdev_get_id_product(dev)); + * if (!libevdev_has_event_type(dev, EV_REL) || + * !libevdev_has_event_code(dev, EV_KEY, BTN_LEFT)) { + * printf("This device does not look like a mouse\n"); + * exit(1); + * } + * + * do { + * struct input_event ev; + * rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev); + * if (rc == 0) + * printf("Event: %s %s %d\n", + * libevdev_get_event_type_name(ev.type), + * libevdev_get_event_code_name(ev.type, ev.code), + * ev.value); + * } while (rc == 1 || rc == 0 || rc == -EAGAIN); + * @endcode * * A more complete example is available with the libevdev-events tool here: * http://cgit.freedesktop.org/libevdev/tree/tools/libevdev-events.c @@ -173,17 +173,17 @@ extern "C" { * events. The number of events between SYN_REPORT events is arbitrary and * depends on the hardware. An example event sequence may look like this: * @code - EV_ABS ABS_X 9 - EV_ABS ABS_Y 8 - EV_SYN SYN_REPORT 0 - ------------------------ - EV_ABS ABS_X 10 - EV_ABS ABS_Y 10 - EV_KEY BTN_TOUCH 1 - EV_SYN SYN_REPORT 0 - ------------------------ - EV_ABS ABS_X 11 - EV_SYN SYN_REPORT 0 + * EV_ABS ABS_X 9 + * EV_ABS ABS_Y 8 + * EV_SYN SYN_REPORT 0 + * ------------------------ + * EV_ABS ABS_X 10 + * EV_ABS ABS_Y 10 + * EV_KEY BTN_TOUCH 1 + * EV_SYN SYN_REPORT 0 + * ------------------------ + * EV_ABS ABS_X 11 + * EV_SYN SYN_REPORT 0 * @endcode * * Events are handed to the client buffer as they appear, the kernel adjusts @@ -194,19 +194,19 @@ extern "C" { * the client that some events were lost. The above example event sequence * may look like this (note the missing/repeated events): * @code - EV_ABS ABS_X 9 - EV_ABS ABS_Y 8 - EV_SYN SYN_REPORT 0 - ------------------------ - EV_ABS ABS_X 10 - EV_ABS ABS_Y 10 - EV_SYN SYN_DROPPED 0 - EV_ABS ABS_Y 15 - EV_SYN SYN_REPORT 0 - ------------------------ - EV_ABS ABS_X 11 - EV_KEY BTN_TOUCH 0 - EV_SYN SYN_REPORT 0 + * EV_ABS ABS_X 9 + * EV_ABS ABS_Y 8 + * EV_SYN SYN_REPORT 0 + * ------------------------ + * EV_ABS ABS_X 10 + * EV_ABS ABS_Y 10 + * EV_SYN SYN_DROPPED 0 + * EV_ABS ABS_Y 15 + * EV_SYN SYN_REPORT 0 + * ------------------------ + * EV_ABS ABS_X 11 + * EV_KEY BTN_TOUCH 0 + * EV_SYN SYN_REPORT 0 * @endcode * * A SYN_DROPPED event may be recieved at any time in the event sequence. @@ -239,11 +239,11 @@ extern "C" { * active slot. * Thus, an event sequence from a slot-capable device may look like this: * @code - EV_ABS ABS_MT_POSITION_Y 10 - EV_ABS ABS_MT_SLOT 1 - EV_ABS ABS_MT_POSITION_X 100 - EV_ABS ABS_MT_POSITION_Y 80 - EV_SYN SYN_REPORT 0 + * EV_ABS ABS_MT_POSITION_Y 10 + * EV_ABS ABS_MT_SLOT 1 + * EV_ABS ABS_MT_POSITION_X 100 + * EV_ABS ABS_MT_POSITION_Y 80 + * EV_SYN SYN_REPORT 0 * @endcode * Note the lack of ABS_MT_SLOT: the first ABS_MT_POSITION_Y applies to * a slot opened previously, and is the only axis that changed for that @@ -266,16 +266,16 @@ extern "C" { * * An example event sequence for such a sync may look like this: * @code - EV_ABS ABS_MT_SLOT 0 - EV_ABS ABS_MT_POSITION_Y 10 - EV_ABS ABS_MT_SLOT 1 - EV_ABS ABS_MT_POSITION_X 100 - EV_ABS ABS_MT_POSITION_Y 80 - EV_ABS ABS_MT_SLOT 2 - EV_ABS ABS_MT_POSITION_Y 8 - EV_ABS ABS_MT_PRESSURE 12 - EV_ABS ABS_MT_SLOT 1 - EV_SYN SYN_REPORT 0 + * EV_ABS ABS_MT_SLOT 0 + * EV_ABS ABS_MT_POSITION_Y 10 + * EV_ABS ABS_MT_SLOT 1 + * EV_ABS ABS_MT_POSITION_X 100 + * EV_ABS ABS_MT_POSITION_Y 80 + * EV_ABS ABS_MT_SLOT 2 + * EV_ABS ABS_MT_POSITION_Y 8 + * EV_ABS ABS_MT_PRESSURE 12 + * EV_ABS ABS_MT_SLOT 1 + * EV_SYN SYN_REPORT 0 * @endcode * Note the terminating ABS_MT_SLOT event, this indicates that the kernel * currently has slot 1 active. @@ -300,21 +300,21 @@ extern "C" { * * An example event sequence for such a sync may look like this: * @code - EV_ABS ABS_MT_SLOT 0 - EV_ABS ABS_MT_TRACKING_ID -1 - EV_ABS ABS_MT_SLOT 2 - EV_ABS ABS_MT_TRACKING_ID -1 - EV_SYN SYN_REPORT 0 - ------------------------ - EV_ABS ABS_MT_SLOT 1 - EV_ABS ABS_MT_POSITION_X 100 - EV_ABS ABS_MT_POSITION_Y 80 - EV_ABS ABS_MT_SLOT 2 - EV_ABS ABS_MT_TRACKING_ID 45 - EV_ABS ABS_MT_POSITION_Y 8 - EV_ABS ABS_MT_PRESSURE 12 - EV_ABS ABS_MT_SLOT 1 - EV_SYN SYN_REPORT 0 + * EV_ABS ABS_MT_SLOT 0 + * EV_ABS ABS_MT_TRACKING_ID -1 + * EV_ABS ABS_MT_SLOT 2 + * EV_ABS ABS_MT_TRACKING_ID -1 + * EV_SYN SYN_REPORT 0 + * ------------------------ + * EV_ABS ABS_MT_SLOT 1 + * EV_ABS ABS_MT_POSITION_X 100 + * EV_ABS ABS_MT_POSITION_Y 80 + * EV_ABS ABS_MT_SLOT 2 + * EV_ABS ABS_MT_TRACKING_ID 45 + * EV_ABS ABS_MT_POSITION_Y 8 + * EV_ABS ABS_MT_PRESSURE 12 + * EV_ABS ABS_MT_SLOT 1 + * EV_SYN SYN_REPORT 0 * @endcode * Note how the touchpoint in slot 0 was terminated, the touchpoint in slot * 2 was terminated and then started with a new ABS_MT_TRACKING_ID. The touchpoint @@ -326,46 +326,46 @@ extern "C" { * handles events again. The below example shows an example event sequence * and what libevdev sees in the case of a SYN_DROPPED event: * @code - - kernel | userspace - | - EV_ABS ABS_MT_SLOT 0 | EV_ABS ABS_MT_SLOT 0 - EV_ABS ABS_MT_TRACKING_ID -1 | EV_ABS ABS_MT_TRACKING_ID -1 - EV_SYN SYN_REPORT 0 | EV_SYN SYN_REPORT 0 - ------------------------ | ------------------------ - EV_ABS ABS_MT_TRACKING_ID 30 | - EV_ABS ABS_MT_POSITION_X 100 | - EV_ABS ABS_MT_POSITION_Y 80 | - EV_SYN SYN_REPORT 0 | SYN_DROPPED - ------------------------ | - EV_ABS ABS_MT_TRACKING_ID -1 | - EV_SYN SYN_REPORT 0 | - ------------------------ | ------------------------ - EV_ABS ABS_MT_SLOT 1 | EV_ABS ABS_MT_SLOT 1 - EV_ABS ABS_MT_POSITION_X 90 | EV_ABS ABS_MT_POSITION_X 90 - EV_ABS ABS_MT_POSITION_Y 10 | EV_ABS ABS_MT_POSITION_Y 10 - EV_SYN SYN_REPORT 0 | EV_SYN SYN_REPORT 0 + * + * kernel | userspace + * | + * EV_ABS ABS_MT_SLOT 0 | EV_ABS ABS_MT_SLOT 0 + * EV_ABS ABS_MT_TRACKING_ID -1 | EV_ABS ABS_MT_TRACKING_ID -1 + * EV_SYN SYN_REPORT 0 | EV_SYN SYN_REPORT 0 + * ------------------------ | ------------------------ + * EV_ABS ABS_MT_TRACKING_ID 30 | + * EV_ABS ABS_MT_POSITION_X 100 | + * EV_ABS ABS_MT_POSITION_Y 80 | + * EV_SYN SYN_REPORT 0 | SYN_DROPPED + * ------------------------ | + * EV_ABS ABS_MT_TRACKING_ID -1 | + * EV_SYN SYN_REPORT 0 | + * ------------------------ | ------------------------ + * EV_ABS ABS_MT_SLOT 1 | EV_ABS ABS_MT_SLOT 1 + * EV_ABS ABS_MT_POSITION_X 90 | EV_ABS ABS_MT_POSITION_X 90 + * EV_ABS ABS_MT_POSITION_Y 10 | EV_ABS ABS_MT_POSITION_Y 10 + * EV_SYN SYN_REPORT 0 | EV_SYN SYN_REPORT 0 * @endcode * If such an event sequence occurs, libevdev will send all updated axes * during the sync process. Axis events may thus be generated for devices * without a currently valid ABS_MT_TRACKING_ID. Specifically for the above * example, the client would receive the following event sequence: * @code - EV_ABS ABS_MT_SLOT 0 ← LIBEVDEV_READ_FLAG_NORMAL - EV_ABS ABS_MT_TRACKING_ID -1 - EV_SYN SYN_REPORT 0 - ------------------------ - EV_SYN SYN_DROPPED 0 → LIBEVDEV_READ_STATUS_SYNC - ------------------------ - EV_ABS ABS_MT_POSITION_X 100 ← LIBEVDEV_READ_FLAG_SYNC - EV_ABS ABS_MT_POSITION_Y 80 - EV_SYN SYN_REPORT 0 - ----------------------------- → -EGAIN - EV_ABS ABS_MT_SLOT 1 ← LIBEVDEV_READ_FLAG_NORMAL - EV_ABS ABS_MT_POSITION_X 90 - EV_ABS ABS_MT_POSITION_Y 10 - EV_SYN SYN_REPORT 0 - ------------------- + * EV_ABS ABS_MT_SLOT 0 ← LIBEVDEV_READ_FLAG_NORMAL + * EV_ABS ABS_MT_TRACKING_ID -1 + * EV_SYN SYN_REPORT 0 + * ------------------------ + * EV_SYN SYN_DROPPED 0 → LIBEVDEV_READ_STATUS_SYNC + * ------------------------ + * EV_ABS ABS_MT_POSITION_X 100 ← LIBEVDEV_READ_FLAG_SYNC + * EV_ABS ABS_MT_POSITION_Y 80 + * EV_SYN SYN_REPORT 0 + * ----------------------------- → -EGAIN + * EV_ABS ABS_MT_SLOT 1 ← LIBEVDEV_READ_FLAG_NORMAL + * EV_ABS ABS_MT_POSITION_X 90 + * EV_ABS ABS_MT_POSITION_Y 10 + * EV_SYN SYN_REPORT 0 + * ------------------- * @endcode * The axis events do not reflect the position of a current touch point, a * client must take care not to generate a new touch point based on those @@ -388,19 +388,19 @@ extern "C" { * assume the buffer contains the following sequence: * * @code - EV_SYN SYN_DROPPED - EV_ABS ABS_X 1 - EV_SYN SYN_REPORT 0 - EV_ABS ABS_X 2 - EV_SYN SYN_REPORT 0 - EV_ABS ABS_X 3 - EV_SYN SYN_REPORT 0 - EV_ABS ABS_X 4 - EV_SYN SYN_REPORT 0 - EV_ABS ABS_X 5 - EV_SYN SYN_REPORT 0 - EV_ABS ABS_X 6 - EV_SYN SYN_REPORT 0 + * EV_SYN SYN_DROPPED + * EV_ABS ABS_X 1 + * EV_SYN SYN_REPORT 0 + * EV_ABS ABS_X 2 + * EV_SYN SYN_REPORT 0 + * EV_ABS ABS_X 3 + * EV_SYN SYN_REPORT 0 + * EV_ABS ABS_X 4 + * EV_SYN SYN_REPORT 0 + * EV_ABS ABS_X 5 + * EV_SYN SYN_REPORT 0 + * EV_ABS ABS_X 6 + * EV_SYN SYN_REPORT 0 * @endcode * An ioctl at any time in this sequence will return a value of 6 for ABS_X. * @@ -411,10 +411,10 @@ extern "C" { * avoid spurious cursor movements. In the above example, the event sequence * by libevdev is: * @code - EV_SYN SYN_DROPPED - EV_ABS ABS_X 6 - EV_SYN SYN_REPORT 0 - @endcode + * EV_SYN SYN_DROPPED + * EV_ABS ABS_X 6 + * EV_SYN SYN_REPORT 0 + * @endcode */ /** @@ -771,11 +771,11 @@ struct libevdev* libevdev_new(void); * * This is a shortcut for * - @code - int err; - struct libevdev *dev = libevdev_new(); - err = libevdev_set_fd(dev, fd); - @endcode + * @code + * int err; + * struct libevdev *dev = libevdev_new(); + * err = libevdev_set_fd(dev, fd); + * @endcode * * @param fd A file descriptor to the device in O_RDWR or O_RDONLY mode. * @param[out] dev The newly initialized evdev device. @@ -1001,13 +1001,13 @@ int libevdev_set_fd(struct libevdev* dev, int fd); * The example code below illustrates how to force a re-sync of the * library-internal state. Note that this code doesn't handle the events in * the caller, it merely forces an update of the internal library state. - @code - struct input_event ev; - libevdev_change_fd(dev, new_fd); - libevdev_next_event(dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev); - while (libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev) == LIBEVDEV_READ_STATUS_SYNC) - ; // noop - @endcode + * @code + * struct input_event ev; + * libevdev_change_fd(dev, new_fd); + * libevdev_next_event(dev, LIBEVDEV_READ_FLAG_FORCE_SYNC, &ev); + * while (libevdev_next_event(dev, LIBEVDEV_READ_FLAG_SYNC, &ev) == LIBEVDEV_READ_STATUS_SYNC) + * ; // noop + * @endcode * * The fd may be open in O_RDONLY or O_RDWR. * @@ -1515,10 +1515,10 @@ int libevdev_set_event_value(struct libevdev *dev, unsigned int type, unsigned i * * Fetch the current value of the event type. This is a shortcut for * - @code - if (libevdev_has_event_type(dev, t) && libevdev_has_event_code(dev, t, c)) - val = libevdev_get_event_value(dev, t, c); - @endcode + * @code + * if (libevdev_has_event_type(dev, t) && libevdev_has_event_code(dev, t, c)) + * val = libevdev_get_event_value(dev, t, c); + * @endcode * * @param dev The evdev device, already initialized with libevdev_set_fd() * @param type The event type for the code to query (EV_SYN, EV_REL, etc.) @@ -1592,12 +1592,12 @@ int libevdev_set_slot_value(struct libevdev *dev, unsigned int slot, unsigned in * * Fetch the current value of the code for the given slot. This is a shortcut for * - @code - if (libevdev_has_event_type(dev, EV_ABS) && - libevdev_has_event_code(dev, EV_ABS, c) && - slot < device->number_of_slots) - val = libevdev_get_slot_value(dev, slot, c); - @endcode + * @code + * if (libevdev_has_event_type(dev, EV_ABS) && + * libevdev_has_event_code(dev, EV_ABS, c) && + * slot < device->number_of_slots) + * val = libevdev_get_slot_value(dev, slot, c); + * @endcode * * @param dev The evdev device, already initialized with libevdev_set_fd() * @param slot The numerical slot number, must be smaller than the total number @@ -1882,11 +1882,11 @@ int libevdev_kernel_set_led_value(struct libevdev *dev, unsigned int code, enum * of LED codes and values to set them to, terminated by a -1. For example, to * switch the NumLock LED on but the CapsLock LED off, use: * - @code - libevdev_kernel_set_led_values(dev, LED_NUML, LIBEVDEV_LED_ON, - LED_CAPSL, LIBEVDEV_LED_OFF, - -1); - @endcode + * @code + * libevdev_kernel_set_led_values(dev, LED_NUML, LIBEVDEV_LED_ON, + * LED_CAPSL, LIBEVDEV_LED_OFF, + * -1); + * @endcode * * If any LED code or value is invalid, this function returns -EINVAL and no * LEDs are modified. |