Blame doc/html/group__mt.html

Packit 57e92c
Packit 57e92c
Packit 57e92c
<html xmlns="http://www.w3.org/1999/xhtml">
Packit 57e92c
    <head>
Packit 57e92c
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
Packit 57e92c
        
Packit 57e92c
        <meta name="viewport" content="width=device-width, initial-scale=1">
Packit 57e92c
        <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
Packit 57e92c
        <meta name="generator" content="Doxygen 1.8.15"/>
Packit 57e92c
        <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
Packit 57e92c
        <title>libevdev: Multi-touch related functions</title>
Packit 57e92c
        
Packit 57e92c
        <script type="text/javascript" src="dynsections.js"></script>
Packit 57e92c
        <link href="search/search.css" rel="stylesheet" type="text/css"/>
Packit 57e92c
<script type="text/javascript" src="search/searchdata.js"></script>
Packit 57e92c
<script type="text/javascript" src="search/search.js"></script>
Packit 57e92c
        <link href="doxygen.css" rel="stylesheet" type="text/css" />
Packit 57e92c
        <link href="bootstrap.css" rel="stylesheet" type="text/css"/>
Packit 57e92c
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
Packit 57e92c
<link href="libevdevdoxygen.css" rel="stylesheet" type="text/css"/>
Packit 57e92c
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
Packit 57e92c
        <script type="text/javascript" src="doxy-boot.js"></script>
Packit 57e92c
    </head>
Packit 57e92c
    <body>
Packit 57e92c
        <nav class="navbar navbar-default" role="navigation">
Packit 57e92c
            
Packit 57e92c
                
Packit 57e92c
                    libevdev 1.8.0
Packit 57e92c
                
Packit 57e92c
            
Packit 57e92c
        </nav>
Packit 57e92c
        
Packit 57e92c
            
Packit 57e92c
                
Packit 57e92c
                    
Packit 57e92c
                        
Packit 57e92c
                            
Packit 57e92c
Packit 57e92c
Packit 57e92c
<script type="text/javascript">
Packit 57e92c
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
Packit 57e92c
var searchBox = new SearchBox("searchBox", "search",false,'Search');
Packit 57e92c
/* @license-end */
Packit 57e92c
</script>
Packit 57e92c
<script type="text/javascript" src="menudata.js"></script>
Packit 57e92c
<script type="text/javascript" src="menu.js"></script>
Packit 57e92c
<script type="text/javascript">
Packit 57e92c
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
Packit 57e92c
$(function() {
Packit 57e92c
  initMenu('',true,false,'search.php','Search');
Packit 57e92c
  $(document).ready(function() { init_search(); });
Packit 57e92c
});
Packit 57e92c
/* @license-end */</script>
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
     onmouseover="return searchBox.OnSearchSelectShow()"
Packit 57e92c
     onmouseout="return searchBox.OnSearchSelectHide()"
Packit 57e92c
     onkeydown="return searchBox.OnSearchSelectKey(event)">
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
        name="MSearchResults" id="MSearchResults">
Packit 57e92c
</iframe>
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
  
Packit 57e92c
Functions  
Packit 57e92c
  
Packit 57e92c
Multi-touch related functions
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c

Functions for querying multi-touch-related capabilities.

Packit 57e92c
More...

Packit 57e92c
Packit 57e92c

Packit 57e92c
Functions
Packit 57e92c
int libevdev_get_slot_value (const struct libevdev *dev, unsigned int slot, unsigned int code)
Packit 57e92c
 Return the current value of the code for the given slot.  More...
Packit 57e92c
 
Packit 57e92c
int libevdev_fetch_slot_value (const struct libevdev *dev, unsigned int slot, unsigned int code, int *value)
Packit 57e92c
 Fetch the current value of the code for the given slot.  More...
Packit 57e92c
 
Packit 57e92c
int libevdev_get_num_slots (const struct libevdev *dev)
Packit 57e92c
 Get the number of slots supported by this device.  More...
Packit 57e92c
 
Packit 57e92c
int libevdev_get_current_slot (const struct libevdev *dev)
Packit 57e92c
 Get the currently active slot.  More...
Packit 57e92c
 
Packit 57e92c
Packit 57e92c

Detailed Description

Packit 57e92c

Functions for querying multi-touch-related capabilities.

Packit 57e92c

MT devices following the kernel protocol B (using ABS_MT_SLOT) provide multiple touch points through so-called slots on the same axis. The slots are enumerated, a client reading from the device will first get an ABS_MT_SLOT event, then the values of axes changed in this slot. Multiple slots may be provided in before an EV_SYN event.

Packit 57e92c

As with Querying device capabilities, the logical state of the device as seen by the library depends on the caller using libevdev_next_event().

Packit 57e92c

The Linux kernel requires all axes on a device to have a semantic meaning, matching the axis names in linux/input.h. Some devices merely export a number of axes beyond the available axis list. For those devices, the multitouch information is invalid. Specifically, if a device provides the ABS_MT_SLOT axis AND also the ABS_RESERVED axis, the device is not treated as multitouch device. No slot information is available and the ABS_MT axis range for these devices is treated as all other EV_ABS axes.

Packit 57e92c

Note that because of limitations in the kernel API, such fake multitouch devices can not be reliably synced after a SYN_DROPPED event. libevdev ignores all ABS_MT axis values during the sync process and instead relies on the device to send the current axis value with the first event after SYN_DROPPED.

Packit 57e92c

Function Documentation

Packit 57e92c
Packit 57e92c

◆ libevdev_fetch_slot_value()

Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
      
Packit 57e92c
        
Packit 57e92c
          int libevdev_fetch_slot_value 
Packit 57e92c
          (
Packit 57e92c
          const struct libevdev * 
Packit 57e92c
          dev, 
Packit 57e92c
        
Packit 57e92c
        
Packit 57e92c
          
Packit 57e92c
          
Packit 57e92c
          unsigned int 
Packit 57e92c
          slot, 
Packit 57e92c
        
Packit 57e92c
        
Packit 57e92c
          
Packit 57e92c
          
Packit 57e92c
          unsigned int 
Packit 57e92c
          code, 
Packit 57e92c
        
Packit 57e92c
        
Packit 57e92c
          
Packit 57e92c
          
Packit 57e92c
          int * 
Packit 57e92c
          value 
Packit 57e92c
        
Packit 57e92c
        
Packit 57e92c
          
Packit 57e92c
          )
Packit 57e92c
          
Packit 57e92c
        
Packit 57e92c
      
Packit 57e92c
Packit 57e92c
Packit 57e92c

Fetch the current value of the code for the given slot.

Packit 57e92c

This is a shortcut for

Packit 57e92c
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);
Parameters
Packit 57e92c
  
Packit 57e92c
    devThe evdev device, already initialized with libevdev_set_fd() 
Packit 57e92c
    slotThe numerical slot number, must be smaller than the total number of slots on this * device 
Packit 57e92c
    [out]valueThe current value of this axis returned.
Packit 57e92c
    codeThe event code to query for, one of ABS_MT_POSITION_X, etc. 
Packit 57e92c
  
Packit 57e92c
  
Packit 57e92c
Packit 57e92c
Returns
If the device supports this event code, the return value is non-zero and value is set to the current value of this axis. Otherwise, or if the event code is not an ABS_MT_* event code, 0 is returned and value is unmodified.
Packit 57e92c
Note
This function is signal-safe.
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c

◆ libevdev_get_current_slot()

Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
      
Packit 57e92c
        
Packit 57e92c
          int libevdev_get_current_slot 
Packit 57e92c
          (
Packit 57e92c
          const struct libevdev * 
Packit 57e92c
          dev)
Packit 57e92c
          
Packit 57e92c
        
Packit 57e92c
      
Packit 57e92c
Packit 57e92c
Packit 57e92c

Get the currently active slot.

Packit 57e92c

This may differ from the value an ioctl may return at this time as events may have been read off the fd since changing the slot value but those events are still in the buffer waiting to be processed. The returned value is the value a caller would see if it were to process events manually one-by-one.

Packit 57e92c
Parameters
Packit 57e92c
  
Packit 57e92c
    devThe evdev device, already initialized with libevdev_set_fd()
Packit 57e92c
  
Packit 57e92c
  
Packit 57e92c
Packit 57e92c
Returns
the currently active slot (logically)
Packit 57e92c
Note
This function is signal-safe.
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c

◆ libevdev_get_num_slots()

Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
      
Packit 57e92c
        
Packit 57e92c
          int libevdev_get_num_slots 
Packit 57e92c
          (
Packit 57e92c
          const struct libevdev * 
Packit 57e92c
          dev)
Packit 57e92c
          
Packit 57e92c
        
Packit 57e92c
      
Packit 57e92c
Packit 57e92c
Packit 57e92c

Get the number of slots supported by this device.

Packit 57e92c
Parameters
Packit 57e92c
  
Packit 57e92c
    devThe evdev device, already initialized with libevdev_set_fd()
Packit 57e92c
  
Packit 57e92c
  
Packit 57e92c
Packit 57e92c
Returns
The number of slots supported, or -1 if the device does not provide any slots
Packit 57e92c
Note
A device may provide ABS_MT_SLOT but a total number of 0 slots. Hence the return value of -1 for "device does not provide slots at all"
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c

◆ libevdev_get_slot_value()

Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
      
Packit 57e92c
        
Packit 57e92c
          int libevdev_get_slot_value 
Packit 57e92c
          (
Packit 57e92c
          const struct libevdev * 
Packit 57e92c
          dev, 
Packit 57e92c
        
Packit 57e92c
        
Packit 57e92c
          
Packit 57e92c
          
Packit 57e92c
          unsigned int 
Packit 57e92c
          slot, 
Packit 57e92c
        
Packit 57e92c
        
Packit 57e92c
          
Packit 57e92c
          
Packit 57e92c
          unsigned int 
Packit 57e92c
          code 
Packit 57e92c
        
Packit 57e92c
        
Packit 57e92c
          
Packit 57e92c
          )
Packit 57e92c
          
Packit 57e92c
        
Packit 57e92c
      
Packit 57e92c
Packit 57e92c
Packit 57e92c

Return the current value of the code for the given slot.

Packit 57e92c

The return value is undefined for a slot exceeding the available slots on the device, for a code that is not in the permitted ABS_MT range or for a device that does not have slots.

Packit 57e92c
Parameters
Packit 57e92c
  
Packit 57e92c
    devThe evdev device, already initialized with libevdev_set_fd() 
Packit 57e92c
    slotThe numerical slot number, must be smaller than the total number of slots on this device 
Packit 57e92c
    codeThe event code to query for, one of ABS_MT_POSITION_X, etc.
Packit 57e92c
  
Packit 57e92c
  
Packit 57e92c
Packit 57e92c
Note
This function is signal-safe.
Packit 57e92c
Packit 57e92c
The value for events other than ABS_MT_ is undefined, use libevdev_fetch_value() instead
Packit 57e92c
See also
libevdev_get_event_value
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c
Packit 57e92c

<address class="footer"><small>
Packit 57e92c
Generated by  
Packit 57e92c
doxygen
Packit 57e92c
 1.8.15
Packit 57e92c
</small></address>
Packit 57e92c
</body>
Packit 57e92c
</html>