|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
Packit Service |
b8eee4 |
<head>
|
|
Packit Service |
b8eee4 |
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
Packit Service |
b8eee4 |
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
Packit Service |
b8eee4 |
<meta name="generator" content="Doxygen 1.8.15"/>
|
|
Packit Service |
b8eee4 |
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
|
|
Packit Service |
b8eee4 |
<title>libevdev: uinput device creation</title>
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
<script type="text/javascript" src="dynsections.js"></script>
|
|
Packit Service |
b8eee4 |
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
Packit Service |
b8eee4 |
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
Packit Service |
b8eee4 |
<script type="text/javascript" src="search/search.js"></script>
|
|
Packit Service |
b8eee4 |
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
Packit Service |
b8eee4 |
<link href="bootstrap.css" rel="stylesheet" type="text/css"/>
|
|
Packit Service |
b8eee4 |
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
|
|
Packit Service |
b8eee4 |
<link href="libevdevdoxygen.css" rel="stylesheet" type="text/css"/>
|
|
Packit Service |
b8eee4 |
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
|
|
Packit Service |
b8eee4 |
<script type="text/javascript" src="doxy-boot.js"></script>
|
|
Packit Service |
b8eee4 |
</head>
|
|
Packit Service |
b8eee4 |
<body>
|
|
Packit Service |
b8eee4 |
<nav class="navbar navbar-default" role="navigation">
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
libevdev 1.8.0
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
</nav>
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
<script type="text/javascript">
|
|
Packit Service |
b8eee4 |
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
Packit Service |
b8eee4 |
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
Packit Service |
b8eee4 |
/* @license-end */
|
|
Packit Service |
b8eee4 |
</script>
|
|
Packit Service |
b8eee4 |
<script type="text/javascript" src="menudata.js"></script>
|
|
Packit Service |
b8eee4 |
<script type="text/javascript" src="menu.js"></script>
|
|
Packit Service |
b8eee4 |
<script type="text/javascript">
|
|
Packit Service |
b8eee4 |
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
Packit Service |
b8eee4 |
$(function() {
|
|
Packit Service |
b8eee4 |
initMenu('',true,false,'search.php','Search');
|
|
Packit Service |
b8eee4 |
$(document).ready(function() { init_search(); });
|
|
Packit Service |
b8eee4 |
});
|
|
Packit Service |
b8eee4 |
/* @license-end */</script>
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
Packit Service |
b8eee4 |
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
Packit Service |
b8eee4 |
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
name="MSearchResults" id="MSearchResults">
|
|
Packit Service |
b8eee4 |
</iframe>
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
Functions
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
uinput device creation
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
Creation of uinput devices based on existing libevdev devices.
|
|
Packit Service |
b8eee4 |
More...
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
Functions
|
|
Packit Service |
b8eee4 |
int libevdev_uinput_create_from_device (const struct libevdev *dev, int uinput_fd, struct libevdev_uinput **uinput_dev)
|
|
Packit Service |
b8eee4 |
Create a uinput device based on the given libevdev device. More...
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
void libevdev_uinput_destroy (struct libevdev_uinput *uinput_dev)
|
|
Packit Service |
b8eee4 |
Destroy a previously created uinput device and free associated memory. More...
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
int libevdev_uinput_get_fd (const struct libevdev_uinput *uinput_dev)
|
|
Packit Service |
b8eee4 |
Return the file descriptor used to create this uinput device. More...
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
const char * libevdev_uinput_get_syspath (struct libevdev_uinput *uinput_dev)
|
|
Packit Service |
b8eee4 |
Return the syspath representing this uinput device. More...
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
const char * libevdev_uinput_get_devnode (struct libevdev_uinput *uinput_dev)
|
|
Packit Service |
b8eee4 |
Return the device node representing this uinput device. More...
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
int libevdev_uinput_write_event (const struct libevdev_uinput *uinput_dev, unsigned int type, unsigned int code, int value)
|
|
Packit Service |
b8eee4 |
Post an event through the uinput device. More...
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
Detailed Description
|
|
Packit Service |
b8eee4 |
Creation of uinput devices based on existing libevdev devices.
|
|
Packit Service |
b8eee4 |
These functions help to create uinput devices that emulate libevdev devices. In the simplest form it serves to duplicate an existing device:
|
|
Packit Service |
b8eee4 |
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; if (err != 0) return err; uifd = open("/dev/uinput", O_RDWR); if (uifd < 0) return -errno; if (err != 0) return err; if (err != 0) return err; if (err != 0) return err; close(uifd); close(fd); Alternatively, a device can be constructed from scratch:
|
|
Packit Service |
b8eee4 |
int err; struct libevdev *dev; struct libevdev_uinput *uidev; &uidev); if (err != 0) return err; Function Documentation
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
◆ libevdev_uinput_create_from_device()
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
int libevdev_uinput_create_from_device
|
|
Packit Service |
b8eee4 |
(
|
|
Packit Service |
b8eee4 |
const struct libevdev *
|
|
Packit Service |
b8eee4 |
dev,
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
int
|
|
Packit Service |
b8eee4 |
uinput_fd,
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
struct libevdev_uinput **
|
|
Packit Service |
b8eee4 |
uinput_dev
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
)
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
Create a uinput device based on the given libevdev device.
|
|
Packit Service |
b8eee4 |
The uinput device will be an exact copy of the libevdev device, minus the bits that uinput doesn't allow to be set.
|
|
Packit Service |
b8eee4 |
If uinput_fd is LIBEVDEV_UINPUT_OPEN_MANAGED, libevdev_uinput_create_from_device() will open /dev/uinput in read/write mode and manage the file descriptor. Otherwise, uinput_fd must be opened by the caller and opened with the appropriate permissions.
|
|
Packit Service |
b8eee4 |
The device's lifetime is tied to the uinput file descriptor, closing it will destroy the uinput device. You should call libevdev_uinput_destroy() before closing the file descriptor to free allocated resources. A file descriptor can only create one uinput device at a time; the second device will fail with -EINVAL.
|
|
Packit Service |
b8eee4 |
You don't need to keep the file descriptor variable around, libevdev_uinput_get_fd() will return it when needed.
|
|
Packit Service |
b8eee4 |
- Note
- Due to limitations in the uinput kernel module, REP_DELAY and REP_PERIOD will default to the kernel defaults, not to the ones set in the source device.
|
|
Packit Service |
b8eee4 |
- Parameters
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
devThe device to duplicate
|
|
Packit Service |
b8eee4 |
uinput_fdLIBEVDEV_UINPUT_OPEN_MANAGED or a file descriptor to /dev/uinput ,
|
|
Packit Service |
b8eee4 |
[out]uinput_devThe newly created libevdev device.
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
- Returns
- 0 on success or a negative errno on failure. On failure, the value of uinput_dev is unmodified.
|
|
Packit Service |
b8eee4 |
- See also
- libevdev_uinput_destroy
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
◆ libevdev_uinput_destroy()
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
void libevdev_uinput_destroy
|
|
Packit Service |
b8eee4 |
(
|
|
Packit Service |
b8eee4 |
struct libevdev_uinput *
|
|
Packit Service |
b8eee4 |
uinput_dev)
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
Destroy a previously created uinput device and free associated memory.
|
|
Packit Service |
b8eee4 |
If the device was opened with LIBEVDEV_UINPUT_OPEN_MANAGED, libevdev_uinput_destroy() also closes the file descriptor. Otherwise, the fd is left as-is and must be closed by the caller.
|
|
Packit Service |
b8eee4 |
- Parameters
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
uinput_devA previously created uinput device.
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
◆ libevdev_uinput_get_devnode()
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
const char* libevdev_uinput_get_devnode
|
|
Packit Service |
b8eee4 |
(
|
|
Packit Service |
b8eee4 |
struct libevdev_uinput *
|
|
Packit Service |
b8eee4 |
uinput_dev)
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
Return the device node representing this uinput device.
|
|
Packit Service |
b8eee4 |
This relies on libevdev_uinput_get_syspath() to provide a valid syspath. See libevdev_uinput_get_syspath() for more details.
|
|
Packit Service |
b8eee4 |
- Note
- This function may return NULL. libevdev may have to guess the syspath and the device node. See libevdev_uinput_get_syspath() for details.
|
|
Packit Service |
b8eee4 |
- Parameters
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
uinput_devA previously created uinput device.
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
- Returns
- The device node for this device, in the form of /dev/input/eventN
|
|
Packit Service |
b8eee4 |
- See also
- libevdev_uinput_get_syspath
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
◆ libevdev_uinput_get_fd()
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
int libevdev_uinput_get_fd
|
|
Packit Service |
b8eee4 |
(
|
|
Packit Service |
b8eee4 |
const struct libevdev_uinput *
|
|
Packit Service |
b8eee4 |
uinput_dev)
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
Return the file descriptor used to create this uinput device.
|
|
Packit Service |
b8eee4 |
This is the fd pointing to /dev/uinput. This file descriptor may be used to write events that are emitted by the uinput device. Closing this file descriptor will destroy the uinput device, you should call libevdev_uinput_destroy() first to free allocated resources.
|
|
Packit Service |
b8eee4 |
- Parameters
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
uinput_devA previously created uinput device.
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
- Returns
- The file descriptor used to create this device
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
◆ libevdev_uinput_get_syspath()
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
const char* libevdev_uinput_get_syspath
|
|
Packit Service |
b8eee4 |
(
|
|
Packit Service |
b8eee4 |
struct libevdev_uinput *
|
|
Packit Service |
b8eee4 |
uinput_dev)
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
Return the syspath representing this uinput device.
|
|
Packit Service |
b8eee4 |
If the UI_GET_SYSNAME ioctl not available, libevdev makes an educated guess. The UI_GET_SYSNAME ioctl is available since Linux 3.15.
|
|
Packit Service |
b8eee4 |
The syspath returned is the one of the input node itself (e.g. /sys/devices/virtual/input/input123), not the syspath of the device node returned with libevdev_uinput_get_devnode().
|
|
Packit Service |
b8eee4 |
- Note
- This function may return NULL if UI_GET_SYSNAME is not available. In that case, libevdev uses ctime and the device name to guess devices. To avoid false positives, wait at least wait at least 1.5s between creating devices that have the same name.
|
|
Packit Service |
b8eee4 |
- Parameters
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
uinput_devA previously created uinput device.
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
- Returns
- The syspath for this device, including the preceding /sys
|
|
Packit Service |
b8eee4 |
- See also
- libevdev_uinput_get_devnode
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
◆ libevdev_uinput_write_event()
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
int libevdev_uinput_write_event
|
|
Packit Service |
b8eee4 |
(
|
|
Packit Service |
b8eee4 |
const struct libevdev_uinput *
|
|
Packit Service |
b8eee4 |
uinput_dev,
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
unsigned int
|
|
Packit Service |
b8eee4 |
type,
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
unsigned int
|
|
Packit Service |
b8eee4 |
code,
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
int
|
|
Packit Service |
b8eee4 |
value
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
)
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
Post an event through the uinput device.
|
|
Packit Service |
b8eee4 |
It is the caller's responsibility that any event sequence is terminated with an EV_SYN/SYN_REPORT/0 event. Otherwise, listeners on the device node will not see the events until the next EV_SYN event is posted.
|
|
Packit Service |
b8eee4 |
- Parameters
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
uinput_devA previously created uinput device.
|
|
Packit Service |
b8eee4 |
typeEvent type (EV_ABS, EV_REL, etc.)
|
|
Packit Service |
b8eee4 |
codeEvent code (ABS_X, REL_Y, etc.)
|
|
Packit Service |
b8eee4 |
valueThe event value
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
- Returns
- 0 on success or a negative errno on error
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
<address class="footer"><small>
|
|
Packit Service |
b8eee4 |
Generated by
|
|
Packit Service |
b8eee4 |
|
|
Packit Service |
b8eee4 |
1.8.15
|
|
Packit Service |
b8eee4 |
</small></address>
|
|
Packit Service |
b8eee4 |
</body>
|
|
Packit Service |
b8eee4 |
</html>
|