1*6c119a46SAndroid Build Coastguard Worker<?xml version="1.0" encoding="UTF-8"?> 2*6c119a46SAndroid Build Coastguard Worker<protocol name="tablet_unstable_v1"> 3*6c119a46SAndroid Build Coastguard Worker 4*6c119a46SAndroid Build Coastguard Worker <copyright> 5*6c119a46SAndroid Build Coastguard Worker Copyright 2014 © Stephen "Lyude" Chandler Paul 6*6c119a46SAndroid Build Coastguard Worker Copyright 2015-2016 © Red Hat, Inc. 7*6c119a46SAndroid Build Coastguard Worker 8*6c119a46SAndroid Build Coastguard Worker Permission is hereby granted, free of charge, to any person 9*6c119a46SAndroid Build Coastguard Worker obtaining a copy of this software and associated documentation files 10*6c119a46SAndroid Build Coastguard Worker (the "Software"), to deal in the Software without restriction, 11*6c119a46SAndroid Build Coastguard Worker including without limitation the rights to use, copy, modify, merge, 12*6c119a46SAndroid Build Coastguard Worker publish, distribute, sublicense, and/or sell copies of the Software, 13*6c119a46SAndroid Build Coastguard Worker and to permit persons to whom the Software is furnished to do so, 14*6c119a46SAndroid Build Coastguard Worker subject to the following conditions: 15*6c119a46SAndroid Build Coastguard Worker 16*6c119a46SAndroid Build Coastguard Worker The above copyright notice and this permission notice (including the 17*6c119a46SAndroid Build Coastguard Worker next paragraph) shall be included in all copies or substantial 18*6c119a46SAndroid Build Coastguard Worker portions of the Software. 19*6c119a46SAndroid Build Coastguard Worker 20*6c119a46SAndroid Build Coastguard Worker THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21*6c119a46SAndroid Build Coastguard Worker EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 22*6c119a46SAndroid Build Coastguard Worker MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23*6c119a46SAndroid Build Coastguard Worker NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 24*6c119a46SAndroid Build Coastguard Worker BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 25*6c119a46SAndroid Build Coastguard Worker ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 26*6c119a46SAndroid Build Coastguard Worker CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 27*6c119a46SAndroid Build Coastguard Worker SOFTWARE. 28*6c119a46SAndroid Build Coastguard Worker </copyright> 29*6c119a46SAndroid Build Coastguard Worker 30*6c119a46SAndroid Build Coastguard Worker <description summary="Wayland protocol for graphics tablets"> 31*6c119a46SAndroid Build Coastguard Worker This description provides a high-level overview of the interplay between 32*6c119a46SAndroid Build Coastguard Worker the interfaces defined this protocol. For details, see the protocol 33*6c119a46SAndroid Build Coastguard Worker specification. 34*6c119a46SAndroid Build Coastguard Worker 35*6c119a46SAndroid Build Coastguard Worker More than one tablet may exist, and device-specifics matter. Tablets are 36*6c119a46SAndroid Build Coastguard Worker not represented by a single virtual device like wl_pointer. A client 37*6c119a46SAndroid Build Coastguard Worker binds to the tablet manager object which is just a proxy object. From 38*6c119a46SAndroid Build Coastguard Worker that, the client requests wp_tablet_manager.get_tablet_seat(wl_seat) 39*6c119a46SAndroid Build Coastguard Worker and that returns the actual interface that has all the tablets. With 40*6c119a46SAndroid Build Coastguard Worker this indirection, we can avoid merging wp_tablet into the actual Wayland 41*6c119a46SAndroid Build Coastguard Worker protocol, a long-term benefit. 42*6c119a46SAndroid Build Coastguard Worker 43*6c119a46SAndroid Build Coastguard Worker The wp_tablet_seat sends a "tablet added" event for each tablet 44*6c119a46SAndroid Build Coastguard Worker connected. That event is followed by descriptive events about the 45*6c119a46SAndroid Build Coastguard Worker hardware; currently that includes events for name, vid/pid and 46*6c119a46SAndroid Build Coastguard Worker a wp_tablet.path event that describes a local path. This path can be 47*6c119a46SAndroid Build Coastguard Worker used to uniquely identify a tablet or get more information through 48*6c119a46SAndroid Build Coastguard Worker libwacom. Emulated or nested tablets can skip any of those, e.g. a 49*6c119a46SAndroid Build Coastguard Worker virtual tablet may not have a vid/pid. The sequence of descriptive 50*6c119a46SAndroid Build Coastguard Worker events is terminated by a wp_tablet.done event to signal that a client 51*6c119a46SAndroid Build Coastguard Worker may now finalize any initialization for that tablet. 52*6c119a46SAndroid Build Coastguard Worker 53*6c119a46SAndroid Build Coastguard Worker Events from tablets require a tool in proximity. Tools are also managed 54*6c119a46SAndroid Build Coastguard Worker by the tablet seat; a "tool added" event is sent whenever a tool is new 55*6c119a46SAndroid Build Coastguard Worker to the compositor. That event is followed by a number of descriptive 56*6c119a46SAndroid Build Coastguard Worker events about the hardware; currently that includes capabilities, 57*6c119a46SAndroid Build Coastguard Worker hardware id and serial number, and tool type. Similar to the tablet 58*6c119a46SAndroid Build Coastguard Worker interface, a wp_tablet_tool.done event is sent to terminate that initial 59*6c119a46SAndroid Build Coastguard Worker sequence. 60*6c119a46SAndroid Build Coastguard Worker 61*6c119a46SAndroid Build Coastguard Worker Any event from a tool happens on the wp_tablet_tool interface. When the 62*6c119a46SAndroid Build Coastguard Worker tool gets into proximity of the tablet, a proximity_in event is sent on 63*6c119a46SAndroid Build Coastguard Worker the wp_tablet_tool interface, listing the tablet and the surface. That 64*6c119a46SAndroid Build Coastguard Worker event is followed by a motion event with the coordinates. After that, 65*6c119a46SAndroid Build Coastguard Worker it's the usual motion, axis, button, etc. events. The protocol's 66*6c119a46SAndroid Build Coastguard Worker serialisation means events are grouped by wp_tablet_tool.frame events. 67*6c119a46SAndroid Build Coastguard Worker 68*6c119a46SAndroid Build Coastguard Worker Two special events (that don't exist in X) are down and up. They signal 69*6c119a46SAndroid Build Coastguard Worker "tip touching the surface". For tablets without real proximity 70*6c119a46SAndroid Build Coastguard Worker detection, the sequence is: proximity_in, motion, down, frame. 71*6c119a46SAndroid Build Coastguard Worker 72*6c119a46SAndroid Build Coastguard Worker When the tool leaves proximity, a proximity_out event is sent. If any 73*6c119a46SAndroid Build Coastguard Worker button is still down, a button release event is sent before this 74*6c119a46SAndroid Build Coastguard Worker proximity event. These button events are sent in the same frame as the 75*6c119a46SAndroid Build Coastguard Worker proximity event to signal to the client that the buttons were held when 76*6c119a46SAndroid Build Coastguard Worker the tool left proximity. 77*6c119a46SAndroid Build Coastguard Worker 78*6c119a46SAndroid Build Coastguard Worker If the tool moves out of the surface but stays in proximity (i.e. 79*6c119a46SAndroid Build Coastguard Worker between windows), compositor-specific grab policies apply. This usually 80*6c119a46SAndroid Build Coastguard Worker means that the proximity-out is delayed until all buttons are released. 81*6c119a46SAndroid Build Coastguard Worker 82*6c119a46SAndroid Build Coastguard Worker Moving a tool physically from one tablet to the other has no real effect 83*6c119a46SAndroid Build Coastguard Worker on the protocol, since we already have the tool object from the "tool 84*6c119a46SAndroid Build Coastguard Worker added" event. All the information is already there and the proximity 85*6c119a46SAndroid Build Coastguard Worker events on both tablets are all a client needs to reconstruct what 86*6c119a46SAndroid Build Coastguard Worker happened. 87*6c119a46SAndroid Build Coastguard Worker 88*6c119a46SAndroid Build Coastguard Worker Some extra axes are normalized, i.e. the client knows the range as 89*6c119a46SAndroid Build Coastguard Worker specified in the protocol (e.g. [0, 65535]), the granularity however is 90*6c119a46SAndroid Build Coastguard Worker unknown. The current normalized axes are pressure, distance, and slider. 91*6c119a46SAndroid Build Coastguard Worker 92*6c119a46SAndroid Build Coastguard Worker Other extra axes are in physical units as specified in the protocol. 93*6c119a46SAndroid Build Coastguard Worker The current extra axes with physical units are tilt, rotation and 94*6c119a46SAndroid Build Coastguard Worker wheel rotation. 95*6c119a46SAndroid Build Coastguard Worker 96*6c119a46SAndroid Build Coastguard Worker Since tablets work independently of the pointer controlled by the mouse, 97*6c119a46SAndroid Build Coastguard Worker the focus handling is independent too and controlled by proximity. 98*6c119a46SAndroid Build Coastguard Worker The wp_tablet_tool.set_cursor request sets a tool-specific cursor. 99*6c119a46SAndroid Build Coastguard Worker This cursor surface may be the same as the mouse cursor, and it may be 100*6c119a46SAndroid Build Coastguard Worker the same across tools but it is possible to be more fine-grained. For 101*6c119a46SAndroid Build Coastguard Worker example, a client may set different cursors for the pen and eraser. 102*6c119a46SAndroid Build Coastguard Worker 103*6c119a46SAndroid Build Coastguard Worker Tools are generally independent of tablets and it is 104*6c119a46SAndroid Build Coastguard Worker compositor-specific policy when a tool can be removed. Common approaches 105*6c119a46SAndroid Build Coastguard Worker will likely include some form of removing a tool when all tablets the 106*6c119a46SAndroid Build Coastguard Worker tool was used on are removed. 107*6c119a46SAndroid Build Coastguard Worker 108*6c119a46SAndroid Build Coastguard Worker Warning! The protocol described in this file is experimental and 109*6c119a46SAndroid Build Coastguard Worker backward incompatible changes may be made. Backward compatible changes 110*6c119a46SAndroid Build Coastguard Worker may be added together with the corresponding interface version bump. 111*6c119a46SAndroid Build Coastguard Worker Backward incompatible changes are done by bumping the version number in 112*6c119a46SAndroid Build Coastguard Worker the protocol and interface names and resetting the interface version. 113*6c119a46SAndroid Build Coastguard Worker Once the protocol is to be declared stable, the 'z' prefix and the 114*6c119a46SAndroid Build Coastguard Worker version number in the protocol and interface names are removed and the 115*6c119a46SAndroid Build Coastguard Worker interface version number is reset. 116*6c119a46SAndroid Build Coastguard Worker </description> 117*6c119a46SAndroid Build Coastguard Worker 118*6c119a46SAndroid Build Coastguard Worker <interface name="zwp_tablet_manager_v1" version="1"> 119*6c119a46SAndroid Build Coastguard Worker <description summary="controller object for graphic tablet devices"> 120*6c119a46SAndroid Build Coastguard Worker An object that provides access to the graphics tablets available on this 121*6c119a46SAndroid Build Coastguard Worker system. All tablets are associated with a seat, to get access to the 122*6c119a46SAndroid Build Coastguard Worker actual tablets, use wp_tablet_manager.get_tablet_seat. 123*6c119a46SAndroid Build Coastguard Worker </description> 124*6c119a46SAndroid Build Coastguard Worker 125*6c119a46SAndroid Build Coastguard Worker <request name="get_tablet_seat"> 126*6c119a46SAndroid Build Coastguard Worker <description summary="get the tablet seat"> 127*6c119a46SAndroid Build Coastguard Worker Get the wp_tablet_seat object for the given seat. This object 128*6c119a46SAndroid Build Coastguard Worker provides access to all graphics tablets in this seat. 129*6c119a46SAndroid Build Coastguard Worker </description> 130*6c119a46SAndroid Build Coastguard Worker <arg name="tablet_seat" type="new_id" interface="zwp_tablet_seat_v1"/> 131*6c119a46SAndroid Build Coastguard Worker <arg name="seat" type="object" interface="wl_seat" summary="The wl_seat object to retrieve the tablets for" /> 132*6c119a46SAndroid Build Coastguard Worker </request> 133*6c119a46SAndroid Build Coastguard Worker 134*6c119a46SAndroid Build Coastguard Worker <request name="destroy" type="destructor"> 135*6c119a46SAndroid Build Coastguard Worker <description summary="release the memory for the tablet manager object"> 136*6c119a46SAndroid Build Coastguard Worker Destroy the wp_tablet_manager object. Objects created from this 137*6c119a46SAndroid Build Coastguard Worker object are unaffected and should be destroyed separately. 138*6c119a46SAndroid Build Coastguard Worker </description> 139*6c119a46SAndroid Build Coastguard Worker </request> 140*6c119a46SAndroid Build Coastguard Worker </interface> 141*6c119a46SAndroid Build Coastguard Worker 142*6c119a46SAndroid Build Coastguard Worker <interface name="zwp_tablet_seat_v1" version="1"> 143*6c119a46SAndroid Build Coastguard Worker <description summary="controller object for graphic tablet devices of a seat"> 144*6c119a46SAndroid Build Coastguard Worker An object that provides access to the graphics tablets available on this 145*6c119a46SAndroid Build Coastguard Worker seat. After binding to this interface, the compositor sends a set of 146*6c119a46SAndroid Build Coastguard Worker wp_tablet_seat.tablet_added and wp_tablet_seat.tool_added events. 147*6c119a46SAndroid Build Coastguard Worker </description> 148*6c119a46SAndroid Build Coastguard Worker 149*6c119a46SAndroid Build Coastguard Worker <request name="destroy" type="destructor"> 150*6c119a46SAndroid Build Coastguard Worker <description summary="release the memory for the tablet seat object"> 151*6c119a46SAndroid Build Coastguard Worker Destroy the wp_tablet_seat object. Objects created from this 152*6c119a46SAndroid Build Coastguard Worker object are unaffected and should be destroyed separately. 153*6c119a46SAndroid Build Coastguard Worker </description> 154*6c119a46SAndroid Build Coastguard Worker </request> 155*6c119a46SAndroid Build Coastguard Worker 156*6c119a46SAndroid Build Coastguard Worker <event name="tablet_added"> 157*6c119a46SAndroid Build Coastguard Worker <description summary="new device notification"> 158*6c119a46SAndroid Build Coastguard Worker This event is sent whenever a new tablet becomes available on this 159*6c119a46SAndroid Build Coastguard Worker seat. This event only provides the object id of the tablet, any 160*6c119a46SAndroid Build Coastguard Worker static information about the tablet (device name, vid/pid, etc.) is 161*6c119a46SAndroid Build Coastguard Worker sent through the wp_tablet interface. 162*6c119a46SAndroid Build Coastguard Worker </description> 163*6c119a46SAndroid Build Coastguard Worker <arg name="id" type="new_id" interface="zwp_tablet_v1" summary="the newly added graphics tablet"/> 164*6c119a46SAndroid Build Coastguard Worker </event> 165*6c119a46SAndroid Build Coastguard Worker 166*6c119a46SAndroid Build Coastguard Worker <event name="tool_added"> 167*6c119a46SAndroid Build Coastguard Worker <description summary="a new tool has been used with a tablet"> 168*6c119a46SAndroid Build Coastguard Worker This event is sent whenever a tool that has not previously been used 169*6c119a46SAndroid Build Coastguard Worker with a tablet comes into use. This event only provides the object id 170*6c119a46SAndroid Build Coastguard Worker of the tool; any static information about the tool (capabilities, 171*6c119a46SAndroid Build Coastguard Worker type, etc.) is sent through the wp_tablet_tool interface. 172*6c119a46SAndroid Build Coastguard Worker </description> 173*6c119a46SAndroid Build Coastguard Worker <arg name="id" type="new_id" interface="zwp_tablet_tool_v1" summary="the newly added tablet tool"/> 174*6c119a46SAndroid Build Coastguard Worker </event> 175*6c119a46SAndroid Build Coastguard Worker </interface> 176*6c119a46SAndroid Build Coastguard Worker 177*6c119a46SAndroid Build Coastguard Worker <interface name="zwp_tablet_tool_v1" version="1"> 178*6c119a46SAndroid Build Coastguard Worker <description summary="a physical tablet tool"> 179*6c119a46SAndroid Build Coastguard Worker An object that represents a physical tool that has been, or is 180*6c119a46SAndroid Build Coastguard Worker currently in use with a tablet in this seat. Each wp_tablet_tool 181*6c119a46SAndroid Build Coastguard Worker object stays valid until the client destroys it; the compositor 182*6c119a46SAndroid Build Coastguard Worker reuses the wp_tablet_tool object to indicate that the object's 183*6c119a46SAndroid Build Coastguard Worker respective physical tool has come into proximity of a tablet again. 184*6c119a46SAndroid Build Coastguard Worker 185*6c119a46SAndroid Build Coastguard Worker A wp_tablet_tool object's relation to a physical tool depends on the 186*6c119a46SAndroid Build Coastguard Worker tablet's ability to report serial numbers. If the tablet supports 187*6c119a46SAndroid Build Coastguard Worker this capability, then the object represents a specific physical tool 188*6c119a46SAndroid Build Coastguard Worker and can be identified even when used on multiple tablets. 189*6c119a46SAndroid Build Coastguard Worker 190*6c119a46SAndroid Build Coastguard Worker A tablet tool has a number of static characteristics, e.g. tool type, 191*6c119a46SAndroid Build Coastguard Worker hardware_serial and capabilities. These capabilities are sent in an 192*6c119a46SAndroid Build Coastguard Worker event sequence after the wp_tablet_seat.tool_added event before any 193*6c119a46SAndroid Build Coastguard Worker actual events from this tool. This initial event sequence is 194*6c119a46SAndroid Build Coastguard Worker terminated by a wp_tablet_tool.done event. 195*6c119a46SAndroid Build Coastguard Worker 196*6c119a46SAndroid Build Coastguard Worker Tablet tool events are grouped by wp_tablet_tool.frame events. 197*6c119a46SAndroid Build Coastguard Worker Any events received before a wp_tablet_tool.frame event should be 198*6c119a46SAndroid Build Coastguard Worker considered part of the same hardware state change. 199*6c119a46SAndroid Build Coastguard Worker </description> 200*6c119a46SAndroid Build Coastguard Worker 201*6c119a46SAndroid Build Coastguard Worker <request name="set_cursor"> 202*6c119a46SAndroid Build Coastguard Worker <description summary="set the tablet tool's surface"> 203*6c119a46SAndroid Build Coastguard Worker Sets the surface of the cursor used for this tool on the given 204*6c119a46SAndroid Build Coastguard Worker tablet. This request only takes effect if the tool is in proximity 205*6c119a46SAndroid Build Coastguard Worker of one of the requesting client's surfaces or the surface parameter 206*6c119a46SAndroid Build Coastguard Worker is the current pointer surface. If there was a previous surface set 207*6c119a46SAndroid Build Coastguard Worker with this request it is replaced. If surface is NULL, the cursor 208*6c119a46SAndroid Build Coastguard Worker image is hidden. 209*6c119a46SAndroid Build Coastguard Worker 210*6c119a46SAndroid Build Coastguard Worker The parameters hotspot_x and hotspot_y define the position of the 211*6c119a46SAndroid Build Coastguard Worker pointer surface relative to the pointer location. Its top-left corner 212*6c119a46SAndroid Build Coastguard Worker is always at (x, y) - (hotspot_x, hotspot_y), where (x, y) are the 213*6c119a46SAndroid Build Coastguard Worker coordinates of the pointer location, in surface-local coordinates. 214*6c119a46SAndroid Build Coastguard Worker 215*6c119a46SAndroid Build Coastguard Worker On surface.attach requests to the pointer surface, hotspot_x and 216*6c119a46SAndroid Build Coastguard Worker hotspot_y are decremented by the x and y parameters passed to the 217*6c119a46SAndroid Build Coastguard Worker request. Attach must be confirmed by wl_surface.commit as usual. 218*6c119a46SAndroid Build Coastguard Worker 219*6c119a46SAndroid Build Coastguard Worker The hotspot can also be updated by passing the currently set pointer 220*6c119a46SAndroid Build Coastguard Worker surface to this request with new values for hotspot_x and hotspot_y. 221*6c119a46SAndroid Build Coastguard Worker 222*6c119a46SAndroid Build Coastguard Worker The current and pending input regions of the wl_surface are cleared, 223*6c119a46SAndroid Build Coastguard Worker and wl_surface.set_input_region is ignored until the wl_surface is no 224*6c119a46SAndroid Build Coastguard Worker longer used as the cursor. When the use as a cursor ends, the current 225*6c119a46SAndroid Build Coastguard Worker and pending input regions become undefined, and the wl_surface is 226*6c119a46SAndroid Build Coastguard Worker unmapped. 227*6c119a46SAndroid Build Coastguard Worker 228*6c119a46SAndroid Build Coastguard Worker This request gives the surface the role of a cursor. The role 229*6c119a46SAndroid Build Coastguard Worker assigned by this request is the same as assigned by 230*6c119a46SAndroid Build Coastguard Worker wl_pointer.set_cursor meaning the same surface can be 231*6c119a46SAndroid Build Coastguard Worker used both as a wl_pointer cursor and a wp_tablet cursor. If the 232*6c119a46SAndroid Build Coastguard Worker surface already has another role, it raises a protocol error. 233*6c119a46SAndroid Build Coastguard Worker The surface may be used on multiple tablets and across multiple 234*6c119a46SAndroid Build Coastguard Worker seats. 235*6c119a46SAndroid Build Coastguard Worker </description> 236*6c119a46SAndroid Build Coastguard Worker <arg name="serial" type="uint" summary="serial of the enter event"/> 237*6c119a46SAndroid Build Coastguard Worker <arg name="surface" type="object" interface="wl_surface" allow-null="true"/> 238*6c119a46SAndroid Build Coastguard Worker <arg name="hotspot_x" type="int" summary="surface-local x coordinate"/> 239*6c119a46SAndroid Build Coastguard Worker <arg name="hotspot_y" type="int" summary="surface-local y coordinate"/> 240*6c119a46SAndroid Build Coastguard Worker </request> 241*6c119a46SAndroid Build Coastguard Worker 242*6c119a46SAndroid Build Coastguard Worker <request name="destroy" type="destructor"> 243*6c119a46SAndroid Build Coastguard Worker <description summary="destroy the tool object"> 244*6c119a46SAndroid Build Coastguard Worker This destroys the client's resource for this tool object. 245*6c119a46SAndroid Build Coastguard Worker </description> 246*6c119a46SAndroid Build Coastguard Worker </request> 247*6c119a46SAndroid Build Coastguard Worker 248*6c119a46SAndroid Build Coastguard Worker <enum name="type"> 249*6c119a46SAndroid Build Coastguard Worker <description summary="a physical tool type"> 250*6c119a46SAndroid Build Coastguard Worker Describes the physical type of a tool. The physical type of a tool 251*6c119a46SAndroid Build Coastguard Worker generally defines its base usage. 252*6c119a46SAndroid Build Coastguard Worker 253*6c119a46SAndroid Build Coastguard Worker The mouse tool represents a mouse-shaped tool that is not a relative 254*6c119a46SAndroid Build Coastguard Worker device but bound to the tablet's surface, providing absolute 255*6c119a46SAndroid Build Coastguard Worker coordinates. 256*6c119a46SAndroid Build Coastguard Worker 257*6c119a46SAndroid Build Coastguard Worker The lens tool is a mouse-shaped tool with an attached lens to 258*6c119a46SAndroid Build Coastguard Worker provide precision focus. 259*6c119a46SAndroid Build Coastguard Worker </description> 260*6c119a46SAndroid Build Coastguard Worker <entry name="pen" value="0x140" summary="Pen"/> 261*6c119a46SAndroid Build Coastguard Worker <entry name="eraser" value="0x141" summary="Eraser"/> 262*6c119a46SAndroid Build Coastguard Worker <entry name="brush" value="0x142" summary="Brush"/> 263*6c119a46SAndroid Build Coastguard Worker <entry name="pencil" value="0x143" summary="Pencil"/> 264*6c119a46SAndroid Build Coastguard Worker <entry name="airbrush" value="0x144" summary="Airbrush"/> 265*6c119a46SAndroid Build Coastguard Worker <entry name="finger" value="0x145" summary="Finger"/> 266*6c119a46SAndroid Build Coastguard Worker <entry name="mouse" value="0x146" summary="Mouse"/> 267*6c119a46SAndroid Build Coastguard Worker <entry name="lens" value="0x147" summary="Lens"/> 268*6c119a46SAndroid Build Coastguard Worker </enum> 269*6c119a46SAndroid Build Coastguard Worker 270*6c119a46SAndroid Build Coastguard Worker <event name="type"> 271*6c119a46SAndroid Build Coastguard Worker <description summary="tool type"> 272*6c119a46SAndroid Build Coastguard Worker The tool type is the high-level type of the tool and usually decides 273*6c119a46SAndroid Build Coastguard Worker the interaction expected from this tool. 274*6c119a46SAndroid Build Coastguard Worker 275*6c119a46SAndroid Build Coastguard Worker This event is sent in the initial burst of events before the 276*6c119a46SAndroid Build Coastguard Worker wp_tablet_tool.done event. 277*6c119a46SAndroid Build Coastguard Worker </description> 278*6c119a46SAndroid Build Coastguard Worker <arg name="tool_type" type="uint" enum="type" summary="the physical tool type"/> 279*6c119a46SAndroid Build Coastguard Worker </event> 280*6c119a46SAndroid Build Coastguard Worker 281*6c119a46SAndroid Build Coastguard Worker <event name="hardware_serial"> 282*6c119a46SAndroid Build Coastguard Worker <description summary="unique hardware serial number of the tool"> 283*6c119a46SAndroid Build Coastguard Worker If the physical tool can be identified by a unique 64-bit serial 284*6c119a46SAndroid Build Coastguard Worker number, this event notifies the client of this serial number. 285*6c119a46SAndroid Build Coastguard Worker 286*6c119a46SAndroid Build Coastguard Worker If multiple tablets are available in the same seat and the tool is 287*6c119a46SAndroid Build Coastguard Worker uniquely identifiable by the serial number, that tool may move 288*6c119a46SAndroid Build Coastguard Worker between tablets. 289*6c119a46SAndroid Build Coastguard Worker 290*6c119a46SAndroid Build Coastguard Worker Otherwise, if the tool has no serial number and this event is 291*6c119a46SAndroid Build Coastguard Worker missing, the tool is tied to the tablet it first comes into 292*6c119a46SAndroid Build Coastguard Worker proximity with. Even if the physical tool is used on multiple 293*6c119a46SAndroid Build Coastguard Worker tablets, separate wp_tablet_tool objects will be created, one per 294*6c119a46SAndroid Build Coastguard Worker tablet. 295*6c119a46SAndroid Build Coastguard Worker 296*6c119a46SAndroid Build Coastguard Worker This event is sent in the initial burst of events before the 297*6c119a46SAndroid Build Coastguard Worker wp_tablet_tool.done event. 298*6c119a46SAndroid Build Coastguard Worker </description> 299*6c119a46SAndroid Build Coastguard Worker <arg name="hardware_serial_hi" type="uint" summary="the unique serial number of the tool, most significant bits"/> 300*6c119a46SAndroid Build Coastguard Worker <arg name="hardware_serial_lo" type="uint" summary="the unique serial number of the tool, least significant bits"/> 301*6c119a46SAndroid Build Coastguard Worker </event> 302*6c119a46SAndroid Build Coastguard Worker 303*6c119a46SAndroid Build Coastguard Worker <event name="hardware_id_wacom"> 304*6c119a46SAndroid Build Coastguard Worker <description summary="hardware id notification in Wacom's format"> 305*6c119a46SAndroid Build Coastguard Worker This event notifies the client of a hardware id available on this tool. 306*6c119a46SAndroid Build Coastguard Worker 307*6c119a46SAndroid Build Coastguard Worker The hardware id is a device-specific 64-bit id that provides extra 308*6c119a46SAndroid Build Coastguard Worker information about the tool in use, beyond the wl_tool.type 309*6c119a46SAndroid Build Coastguard Worker enumeration. The format of the id is specific to tablets made by 310*6c119a46SAndroid Build Coastguard Worker Wacom Inc. For example, the hardware id of a Wacom Grip 311*6c119a46SAndroid Build Coastguard Worker Pen (a stylus) is 0x802. 312*6c119a46SAndroid Build Coastguard Worker 313*6c119a46SAndroid Build Coastguard Worker This event is sent in the initial burst of events before the 314*6c119a46SAndroid Build Coastguard Worker wp_tablet_tool.done event. 315*6c119a46SAndroid Build Coastguard Worker </description> 316*6c119a46SAndroid Build Coastguard Worker <arg name="hardware_id_hi" type="uint" summary="the hardware id, most significant bits"/> 317*6c119a46SAndroid Build Coastguard Worker <arg name="hardware_id_lo" type="uint" summary="the hardware id, least significant bits"/> 318*6c119a46SAndroid Build Coastguard Worker </event> 319*6c119a46SAndroid Build Coastguard Worker 320*6c119a46SAndroid Build Coastguard Worker <enum name="capability"> 321*6c119a46SAndroid Build Coastguard Worker <description summary="capability flags for a tool"> 322*6c119a46SAndroid Build Coastguard Worker Describes extra capabilities on a tablet. 323*6c119a46SAndroid Build Coastguard Worker 324*6c119a46SAndroid Build Coastguard Worker Any tool must provide x and y values, extra axes are 325*6c119a46SAndroid Build Coastguard Worker device-specific. 326*6c119a46SAndroid Build Coastguard Worker </description> 327*6c119a46SAndroid Build Coastguard Worker <entry name="tilt" value="1" summary="Tilt axes"/> 328*6c119a46SAndroid Build Coastguard Worker <entry name="pressure" value="2" summary="Pressure axis"/> 329*6c119a46SAndroid Build Coastguard Worker <entry name="distance" value="3" summary="Distance axis"/> 330*6c119a46SAndroid Build Coastguard Worker <entry name="rotation" value="4" summary="Z-rotation axis"/> 331*6c119a46SAndroid Build Coastguard Worker <entry name="slider" value="5" summary="Slider axis"/> 332*6c119a46SAndroid Build Coastguard Worker <entry name="wheel" value="6" summary="Wheel axis"/> 333*6c119a46SAndroid Build Coastguard Worker </enum> 334*6c119a46SAndroid Build Coastguard Worker 335*6c119a46SAndroid Build Coastguard Worker <event name="capability"> 336*6c119a46SAndroid Build Coastguard Worker <description summary="tool capability notification"> 337*6c119a46SAndroid Build Coastguard Worker This event notifies the client of any capabilities of this tool, 338*6c119a46SAndroid Build Coastguard Worker beyond the main set of x/y axes and tip up/down detection. 339*6c119a46SAndroid Build Coastguard Worker 340*6c119a46SAndroid Build Coastguard Worker One event is sent for each extra capability available on this tool. 341*6c119a46SAndroid Build Coastguard Worker 342*6c119a46SAndroid Build Coastguard Worker This event is sent in the initial burst of events before the 343*6c119a46SAndroid Build Coastguard Worker wp_tablet_tool.done event. 344*6c119a46SAndroid Build Coastguard Worker </description> 345*6c119a46SAndroid Build Coastguard Worker <arg name="capability" type="uint" enum="capability" summary="the capability"/> 346*6c119a46SAndroid Build Coastguard Worker </event> 347*6c119a46SAndroid Build Coastguard Worker 348*6c119a46SAndroid Build Coastguard Worker <event name="done"> 349*6c119a46SAndroid Build Coastguard Worker <description summary="tool description events sequence complete"> 350*6c119a46SAndroid Build Coastguard Worker This event signals the end of the initial burst of descriptive 351*6c119a46SAndroid Build Coastguard Worker events. A client may consider the static description of the tool to 352*6c119a46SAndroid Build Coastguard Worker be complete and finalize initialization of the tool. 353*6c119a46SAndroid Build Coastguard Worker </description> 354*6c119a46SAndroid Build Coastguard Worker </event> 355*6c119a46SAndroid Build Coastguard Worker 356*6c119a46SAndroid Build Coastguard Worker <event name="removed"> 357*6c119a46SAndroid Build Coastguard Worker <description summary="tool removed"> 358*6c119a46SAndroid Build Coastguard Worker This event is sent when the tool is removed from the system and will 359*6c119a46SAndroid Build Coastguard Worker send no further events. Should the physical tool come back into 360*6c119a46SAndroid Build Coastguard Worker proximity later, a new wp_tablet_tool object will be created. 361*6c119a46SAndroid Build Coastguard Worker 362*6c119a46SAndroid Build Coastguard Worker It is compositor-dependent when a tool is removed. A compositor may 363*6c119a46SAndroid Build Coastguard Worker remove a tool on proximity out, tablet removal or any other reason. 364*6c119a46SAndroid Build Coastguard Worker A compositor may also keep a tool alive until shutdown. 365*6c119a46SAndroid Build Coastguard Worker 366*6c119a46SAndroid Build Coastguard Worker If the tool is currently in proximity, a proximity_out event will be 367*6c119a46SAndroid Build Coastguard Worker sent before the removed event. See wp_tablet_tool.proximity_out for 368*6c119a46SAndroid Build Coastguard Worker the handling of any buttons logically down. 369*6c119a46SAndroid Build Coastguard Worker 370*6c119a46SAndroid Build Coastguard Worker When this event is received, the client must wp_tablet_tool.destroy 371*6c119a46SAndroid Build Coastguard Worker the object. 372*6c119a46SAndroid Build Coastguard Worker </description> 373*6c119a46SAndroid Build Coastguard Worker </event> 374*6c119a46SAndroid Build Coastguard Worker 375*6c119a46SAndroid Build Coastguard Worker <event name="proximity_in"> 376*6c119a46SAndroid Build Coastguard Worker <description summary="proximity in event"> 377*6c119a46SAndroid Build Coastguard Worker Notification that this tool is focused on a certain surface. 378*6c119a46SAndroid Build Coastguard Worker 379*6c119a46SAndroid Build Coastguard Worker This event can be received when the tool has moved from one surface to 380*6c119a46SAndroid Build Coastguard Worker another, or when the tool has come back into proximity above the 381*6c119a46SAndroid Build Coastguard Worker surface. 382*6c119a46SAndroid Build Coastguard Worker 383*6c119a46SAndroid Build Coastguard Worker If any button is logically down when the tool comes into proximity, 384*6c119a46SAndroid Build Coastguard Worker the respective button event is sent after the proximity_in event but 385*6c119a46SAndroid Build Coastguard Worker within the same frame as the proximity_in event. 386*6c119a46SAndroid Build Coastguard Worker </description> 387*6c119a46SAndroid Build Coastguard Worker <arg name="serial" type="uint"/> 388*6c119a46SAndroid Build Coastguard Worker <arg name="tablet" type="object" interface="zwp_tablet_v1" summary="The tablet the tool is in proximity of"/> 389*6c119a46SAndroid Build Coastguard Worker <arg name="surface" type="object" interface="wl_surface" summary="The current surface the tablet tool is over"/> 390*6c119a46SAndroid Build Coastguard Worker </event> 391*6c119a46SAndroid Build Coastguard Worker 392*6c119a46SAndroid Build Coastguard Worker <event name="proximity_out"> 393*6c119a46SAndroid Build Coastguard Worker <description summary="proximity out event"> 394*6c119a46SAndroid Build Coastguard Worker Notification that this tool has either left proximity, or is no 395*6c119a46SAndroid Build Coastguard Worker longer focused on a certain surface. 396*6c119a46SAndroid Build Coastguard Worker 397*6c119a46SAndroid Build Coastguard Worker When the tablet tool leaves proximity of the tablet, button release 398*6c119a46SAndroid Build Coastguard Worker events are sent for each button that was held down at the time of 399*6c119a46SAndroid Build Coastguard Worker leaving proximity. These events are sent before the proximity_out 400*6c119a46SAndroid Build Coastguard Worker event but within the same wp_tablet.frame. 401*6c119a46SAndroid Build Coastguard Worker 402*6c119a46SAndroid Build Coastguard Worker If the tool stays within proximity of the tablet, but the focus 403*6c119a46SAndroid Build Coastguard Worker changes from one surface to another, a button release event may not 404*6c119a46SAndroid Build Coastguard Worker be sent until the button is actually released or the tool leaves the 405*6c119a46SAndroid Build Coastguard Worker proximity of the tablet. 406*6c119a46SAndroid Build Coastguard Worker </description> 407*6c119a46SAndroid Build Coastguard Worker </event> 408*6c119a46SAndroid Build Coastguard Worker 409*6c119a46SAndroid Build Coastguard Worker <event name="down"> 410*6c119a46SAndroid Build Coastguard Worker <description summary="tablet tool is making contact"> 411*6c119a46SAndroid Build Coastguard Worker Sent whenever the tablet tool comes in contact with the surface of the 412*6c119a46SAndroid Build Coastguard Worker tablet. 413*6c119a46SAndroid Build Coastguard Worker 414*6c119a46SAndroid Build Coastguard Worker If the tool is already in contact with the tablet when entering the 415*6c119a46SAndroid Build Coastguard Worker input region, the client owning said region will receive a 416*6c119a46SAndroid Build Coastguard Worker wp_tablet.proximity_in event, followed by a wp_tablet.down 417*6c119a46SAndroid Build Coastguard Worker event and a wp_tablet.frame event. 418*6c119a46SAndroid Build Coastguard Worker 419*6c119a46SAndroid Build Coastguard Worker Note that this event describes logical contact, not physical 420*6c119a46SAndroid Build Coastguard Worker contact. On some devices, a compositor may not consider a tool in 421*6c119a46SAndroid Build Coastguard Worker logical contact until a minimum physical pressure threshold is 422*6c119a46SAndroid Build Coastguard Worker exceeded. 423*6c119a46SAndroid Build Coastguard Worker </description> 424*6c119a46SAndroid Build Coastguard Worker <arg name="serial" type="uint"/> 425*6c119a46SAndroid Build Coastguard Worker </event> 426*6c119a46SAndroid Build Coastguard Worker 427*6c119a46SAndroid Build Coastguard Worker <event name="up"> 428*6c119a46SAndroid Build Coastguard Worker <description summary="tablet tool is no longer making contact"> 429*6c119a46SAndroid Build Coastguard Worker Sent whenever the tablet tool stops making contact with the surface of 430*6c119a46SAndroid Build Coastguard Worker the tablet, or when the tablet tool moves out of the input region 431*6c119a46SAndroid Build Coastguard Worker and the compositor grab (if any) is dismissed. 432*6c119a46SAndroid Build Coastguard Worker 433*6c119a46SAndroid Build Coastguard Worker If the tablet tool moves out of the input region while in contact 434*6c119a46SAndroid Build Coastguard Worker with the surface of the tablet and the compositor does not have an 435*6c119a46SAndroid Build Coastguard Worker ongoing grab on the surface, the client owning said region will 436*6c119a46SAndroid Build Coastguard Worker receive a wp_tablet.up event, followed by a wp_tablet.proximity_out 437*6c119a46SAndroid Build Coastguard Worker event and a wp_tablet.frame event. If the compositor has an ongoing 438*6c119a46SAndroid Build Coastguard Worker grab on this device, this event sequence is sent whenever the grab 439*6c119a46SAndroid Build Coastguard Worker is dismissed in the future. 440*6c119a46SAndroid Build Coastguard Worker 441*6c119a46SAndroid Build Coastguard Worker Note that this event describes logical contact, not physical 442*6c119a46SAndroid Build Coastguard Worker contact. On some devices, a compositor may not consider a tool out 443*6c119a46SAndroid Build Coastguard Worker of logical contact until physical pressure falls below a specific 444*6c119a46SAndroid Build Coastguard Worker threshold. 445*6c119a46SAndroid Build Coastguard Worker </description> 446*6c119a46SAndroid Build Coastguard Worker </event> 447*6c119a46SAndroid Build Coastguard Worker 448*6c119a46SAndroid Build Coastguard Worker <event name="motion"> 449*6c119a46SAndroid Build Coastguard Worker <description summary="motion event"> 450*6c119a46SAndroid Build Coastguard Worker Sent whenever a tablet tool moves. 451*6c119a46SAndroid Build Coastguard Worker </description> 452*6c119a46SAndroid Build Coastguard Worker <arg name="x" type="fixed" summary="surface-local x coordinate"/> 453*6c119a46SAndroid Build Coastguard Worker <arg name="y" type="fixed" summary="surface-local y coordinate"/> 454*6c119a46SAndroid Build Coastguard Worker </event> 455*6c119a46SAndroid Build Coastguard Worker 456*6c119a46SAndroid Build Coastguard Worker <event name="pressure"> 457*6c119a46SAndroid Build Coastguard Worker <description summary="pressure change event"> 458*6c119a46SAndroid Build Coastguard Worker Sent whenever the pressure axis on a tool changes. The value of this 459*6c119a46SAndroid Build Coastguard Worker event is normalized to a value between 0 and 65535. 460*6c119a46SAndroid Build Coastguard Worker 461*6c119a46SAndroid Build Coastguard Worker Note that pressure may be nonzero even when a tool is not in logical 462*6c119a46SAndroid Build Coastguard Worker contact. See the down and up events for more details. 463*6c119a46SAndroid Build Coastguard Worker </description> 464*6c119a46SAndroid Build Coastguard Worker <arg name="pressure" type="uint" summary="The current pressure value"/> 465*6c119a46SAndroid Build Coastguard Worker </event> 466*6c119a46SAndroid Build Coastguard Worker 467*6c119a46SAndroid Build Coastguard Worker <event name="distance"> 468*6c119a46SAndroid Build Coastguard Worker <description summary="distance change event"> 469*6c119a46SAndroid Build Coastguard Worker Sent whenever the distance axis on a tool changes. The value of this 470*6c119a46SAndroid Build Coastguard Worker event is normalized to a value between 0 and 65535. 471*6c119a46SAndroid Build Coastguard Worker 472*6c119a46SAndroid Build Coastguard Worker Note that distance may be nonzero even when a tool is not in logical 473*6c119a46SAndroid Build Coastguard Worker contact. See the down and up events for more details. 474*6c119a46SAndroid Build Coastguard Worker </description> 475*6c119a46SAndroid Build Coastguard Worker <arg name="distance" type="uint" summary="The current distance value"/> 476*6c119a46SAndroid Build Coastguard Worker </event> 477*6c119a46SAndroid Build Coastguard Worker 478*6c119a46SAndroid Build Coastguard Worker <event name="tilt"> 479*6c119a46SAndroid Build Coastguard Worker <description summary="tilt change event"> 480*6c119a46SAndroid Build Coastguard Worker Sent whenever one or both of the tilt axes on a tool change. Each tilt 481*6c119a46SAndroid Build Coastguard Worker value is in 0.01 of a degree, relative to the z-axis of the tablet. 482*6c119a46SAndroid Build Coastguard Worker The angle is positive when the top of a tool tilts along the 483*6c119a46SAndroid Build Coastguard Worker positive x or y axis. 484*6c119a46SAndroid Build Coastguard Worker </description> 485*6c119a46SAndroid Build Coastguard Worker <arg name="tilt_x" type="int" summary="The current value of the X tilt axis"/> 486*6c119a46SAndroid Build Coastguard Worker <arg name="tilt_y" type="int" summary="The current value of the Y tilt axis"/> 487*6c119a46SAndroid Build Coastguard Worker </event> 488*6c119a46SAndroid Build Coastguard Worker 489*6c119a46SAndroid Build Coastguard Worker <event name="rotation"> 490*6c119a46SAndroid Build Coastguard Worker <description summary="z-rotation change event"> 491*6c119a46SAndroid Build Coastguard Worker Sent whenever the z-rotation axis on the tool changes. The 492*6c119a46SAndroid Build Coastguard Worker rotation value is in 0.01 of a degree clockwise from the tool's 493*6c119a46SAndroid Build Coastguard Worker logical neutral position. 494*6c119a46SAndroid Build Coastguard Worker </description> 495*6c119a46SAndroid Build Coastguard Worker <arg name="degrees" type="int" summary="The current rotation of the Z axis"/> 496*6c119a46SAndroid Build Coastguard Worker </event> 497*6c119a46SAndroid Build Coastguard Worker 498*6c119a46SAndroid Build Coastguard Worker <event name="slider"> 499*6c119a46SAndroid Build Coastguard Worker <description summary="Slider position change event"> 500*6c119a46SAndroid Build Coastguard Worker Sent whenever the slider position on the tool changes. The 501*6c119a46SAndroid Build Coastguard Worker value is normalized between -65535 and 65535, with 0 as the logical 502*6c119a46SAndroid Build Coastguard Worker neutral position of the slider. 503*6c119a46SAndroid Build Coastguard Worker 504*6c119a46SAndroid Build Coastguard Worker The slider is available on e.g. the Wacom Airbrush tool. 505*6c119a46SAndroid Build Coastguard Worker </description> 506*6c119a46SAndroid Build Coastguard Worker <arg name="position" type="int" summary="The current position of slider"/> 507*6c119a46SAndroid Build Coastguard Worker </event> 508*6c119a46SAndroid Build Coastguard Worker 509*6c119a46SAndroid Build Coastguard Worker <event name="wheel"> 510*6c119a46SAndroid Build Coastguard Worker <description summary="Wheel delta event"> 511*6c119a46SAndroid Build Coastguard Worker Sent whenever the wheel on the tool emits an event. This event 512*6c119a46SAndroid Build Coastguard Worker contains two values for the same axis change. The degrees value is 513*6c119a46SAndroid Build Coastguard Worker in 0.01 of a degree in the same orientation as the 514*6c119a46SAndroid Build Coastguard Worker wl_pointer.vertical_scroll axis. The clicks value is in discrete 515*6c119a46SAndroid Build Coastguard Worker logical clicks of the mouse wheel. This value may be zero if the 516*6c119a46SAndroid Build Coastguard Worker movement of the wheel was less than one logical click. 517*6c119a46SAndroid Build Coastguard Worker 518*6c119a46SAndroid Build Coastguard Worker Clients should choose either value and avoid mixing degrees and 519*6c119a46SAndroid Build Coastguard Worker clicks. The compositor may accumulate values smaller than a logical 520*6c119a46SAndroid Build Coastguard Worker click and emulate click events when a certain threshold is met. 521*6c119a46SAndroid Build Coastguard Worker Thus, wl_tablet_tool.wheel events with non-zero clicks values may 522*6c119a46SAndroid Build Coastguard Worker have different degrees values. 523*6c119a46SAndroid Build Coastguard Worker </description> 524*6c119a46SAndroid Build Coastguard Worker <arg name="degrees" type="int" summary="The wheel delta in 0.01 of a degree"/> 525*6c119a46SAndroid Build Coastguard Worker <arg name="clicks" type="int" summary="The wheel delta in discrete clicks"/> 526*6c119a46SAndroid Build Coastguard Worker </event> 527*6c119a46SAndroid Build Coastguard Worker 528*6c119a46SAndroid Build Coastguard Worker <enum name="button_state"> 529*6c119a46SAndroid Build Coastguard Worker <description summary="physical button state"> 530*6c119a46SAndroid Build Coastguard Worker Describes the physical state of a button that produced the button event. 531*6c119a46SAndroid Build Coastguard Worker </description> 532*6c119a46SAndroid Build Coastguard Worker <entry name="released" value="0" summary="button is not pressed"/> 533*6c119a46SAndroid Build Coastguard Worker <entry name="pressed" value="1" summary="button is pressed"/> 534*6c119a46SAndroid Build Coastguard Worker </enum> 535*6c119a46SAndroid Build Coastguard Worker 536*6c119a46SAndroid Build Coastguard Worker <event name="button"> 537*6c119a46SAndroid Build Coastguard Worker <description summary="button event"> 538*6c119a46SAndroid Build Coastguard Worker Sent whenever a button on the tool is pressed or released. 539*6c119a46SAndroid Build Coastguard Worker 540*6c119a46SAndroid Build Coastguard Worker If a button is held down when the tool moves in or out of proximity, 541*6c119a46SAndroid Build Coastguard Worker button events are generated by the compositor. See 542*6c119a46SAndroid Build Coastguard Worker wp_tablet_tool.proximity_in and wp_tablet_tool.proximity_out for 543*6c119a46SAndroid Build Coastguard Worker details. 544*6c119a46SAndroid Build Coastguard Worker </description> 545*6c119a46SAndroid Build Coastguard Worker <arg name="serial" type="uint"/> 546*6c119a46SAndroid Build Coastguard Worker <arg name="button" type="uint" summary="The button whose state has changed"/> 547*6c119a46SAndroid Build Coastguard Worker <arg name="state" type="uint" enum="button_state" summary="Whether the button was pressed or released"/> 548*6c119a46SAndroid Build Coastguard Worker </event> 549*6c119a46SAndroid Build Coastguard Worker 550*6c119a46SAndroid Build Coastguard Worker <event name="frame"> 551*6c119a46SAndroid Build Coastguard Worker <description summary="frame event"> 552*6c119a46SAndroid Build Coastguard Worker Marks the end of a series of axis and/or button updates from the 553*6c119a46SAndroid Build Coastguard Worker tablet. The Wayland protocol requires axis updates to be sent 554*6c119a46SAndroid Build Coastguard Worker sequentially, however all events within a frame should be considered 555*6c119a46SAndroid Build Coastguard Worker one hardware event. 556*6c119a46SAndroid Build Coastguard Worker </description> 557*6c119a46SAndroid Build Coastguard Worker <arg name="time" type="uint" summary="The time of the event with millisecond granularity"/> 558*6c119a46SAndroid Build Coastguard Worker </event> 559*6c119a46SAndroid Build Coastguard Worker 560*6c119a46SAndroid Build Coastguard Worker <enum name="error"> 561*6c119a46SAndroid Build Coastguard Worker <entry name="role" value="0" summary="given wl_surface has another role"/> 562*6c119a46SAndroid Build Coastguard Worker </enum> 563*6c119a46SAndroid Build Coastguard Worker </interface> 564*6c119a46SAndroid Build Coastguard Worker 565*6c119a46SAndroid Build Coastguard Worker <interface name="zwp_tablet_v1" version="1"> 566*6c119a46SAndroid Build Coastguard Worker <description summary="graphics tablet device"> 567*6c119a46SAndroid Build Coastguard Worker The wp_tablet interface represents one graphics tablet device. The 568*6c119a46SAndroid Build Coastguard Worker tablet interface itself does not generate events; all events are 569*6c119a46SAndroid Build Coastguard Worker generated by wp_tablet_tool objects when in proximity above a tablet. 570*6c119a46SAndroid Build Coastguard Worker 571*6c119a46SAndroid Build Coastguard Worker A tablet has a number of static characteristics, e.g. device name and 572*6c119a46SAndroid Build Coastguard Worker pid/vid. These capabilities are sent in an event sequence after the 573*6c119a46SAndroid Build Coastguard Worker wp_tablet_seat.tablet_added event. This initial event sequence is 574*6c119a46SAndroid Build Coastguard Worker terminated by a wp_tablet.done event. 575*6c119a46SAndroid Build Coastguard Worker </description> 576*6c119a46SAndroid Build Coastguard Worker 577*6c119a46SAndroid Build Coastguard Worker <request name="destroy" type="destructor"> 578*6c119a46SAndroid Build Coastguard Worker <description summary="destroy the tablet object"> 579*6c119a46SAndroid Build Coastguard Worker This destroys the client's resource for this tablet object. 580*6c119a46SAndroid Build Coastguard Worker </description> 581*6c119a46SAndroid Build Coastguard Worker </request> 582*6c119a46SAndroid Build Coastguard Worker 583*6c119a46SAndroid Build Coastguard Worker <event name="name"> 584*6c119a46SAndroid Build Coastguard Worker <description summary="tablet device name"> 585*6c119a46SAndroid Build Coastguard Worker This event is sent in the initial burst of events before the 586*6c119a46SAndroid Build Coastguard Worker wp_tablet.done event. 587*6c119a46SAndroid Build Coastguard Worker </description> 588*6c119a46SAndroid Build Coastguard Worker <arg name="name" type="string" summary="the device name"/> 589*6c119a46SAndroid Build Coastguard Worker </event> 590*6c119a46SAndroid Build Coastguard Worker 591*6c119a46SAndroid Build Coastguard Worker <event name="id"> 592*6c119a46SAndroid Build Coastguard Worker <description summary="tablet device USB vendor/product id"> 593*6c119a46SAndroid Build Coastguard Worker This event is sent in the initial burst of events before the 594*6c119a46SAndroid Build Coastguard Worker wp_tablet.done event. 595*6c119a46SAndroid Build Coastguard Worker </description> 596*6c119a46SAndroid Build Coastguard Worker <arg name="vid" type="uint" summary="USB vendor id"/> 597*6c119a46SAndroid Build Coastguard Worker <arg name="pid" type="uint" summary="USB product id"/> 598*6c119a46SAndroid Build Coastguard Worker </event> 599*6c119a46SAndroid Build Coastguard Worker 600*6c119a46SAndroid Build Coastguard Worker <event name="path"> 601*6c119a46SAndroid Build Coastguard Worker <description summary="path to the device"> 602*6c119a46SAndroid Build Coastguard Worker A system-specific device path that indicates which device is behind 603*6c119a46SAndroid Build Coastguard Worker this wp_tablet. This information may be used to gather additional 604*6c119a46SAndroid Build Coastguard Worker information about the device, e.g. through libwacom. 605*6c119a46SAndroid Build Coastguard Worker 606*6c119a46SAndroid Build Coastguard Worker A device may have more than one device path. If so, multiple 607*6c119a46SAndroid Build Coastguard Worker wp_tablet.path events are sent. A device may be emulated and not 608*6c119a46SAndroid Build Coastguard Worker have a device path, and in that case this event will not be sent. 609*6c119a46SAndroid Build Coastguard Worker 610*6c119a46SAndroid Build Coastguard Worker The format of the path is unspecified, it may be a device node, a 611*6c119a46SAndroid Build Coastguard Worker sysfs path, or some other identifier. It is up to the client to 612*6c119a46SAndroid Build Coastguard Worker identify the string provided. 613*6c119a46SAndroid Build Coastguard Worker 614*6c119a46SAndroid Build Coastguard Worker This event is sent in the initial burst of events before the 615*6c119a46SAndroid Build Coastguard Worker wp_tablet.done event. 616*6c119a46SAndroid Build Coastguard Worker </description> 617*6c119a46SAndroid Build Coastguard Worker <arg name="path" type="string" summary="path to local device"/> 618*6c119a46SAndroid Build Coastguard Worker </event> 619*6c119a46SAndroid Build Coastguard Worker 620*6c119a46SAndroid Build Coastguard Worker <event name="done"> 621*6c119a46SAndroid Build Coastguard Worker <description summary="tablet description events sequence complete"> 622*6c119a46SAndroid Build Coastguard Worker This event is sent immediately to signal the end of the initial 623*6c119a46SAndroid Build Coastguard Worker burst of descriptive events. A client may consider the static 624*6c119a46SAndroid Build Coastguard Worker description of the tablet to be complete and finalize initialization 625*6c119a46SAndroid Build Coastguard Worker of the tablet. 626*6c119a46SAndroid Build Coastguard Worker </description> 627*6c119a46SAndroid Build Coastguard Worker </event> 628*6c119a46SAndroid Build Coastguard Worker 629*6c119a46SAndroid Build Coastguard Worker <event name="removed"> 630*6c119a46SAndroid Build Coastguard Worker <description summary="tablet removed event"> 631*6c119a46SAndroid Build Coastguard Worker Sent when the tablet has been removed from the system. When a tablet 632*6c119a46SAndroid Build Coastguard Worker is removed, some tools may be removed. 633*6c119a46SAndroid Build Coastguard Worker 634*6c119a46SAndroid Build Coastguard Worker When this event is received, the client must wp_tablet.destroy 635*6c119a46SAndroid Build Coastguard Worker the object. 636*6c119a46SAndroid Build Coastguard Worker </description> 637*6c119a46SAndroid Build Coastguard Worker </event> 638*6c119a46SAndroid Build Coastguard Worker </interface> 639*6c119a46SAndroid Build Coastguard Worker 640*6c119a46SAndroid Build Coastguard Worker</protocol> 641