You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
202 lines
8.9 KiB
202 lines
8.9 KiB
<?xml version="1.0" encoding="UTF-8"?>
|
|
<protocol name="stylus_unstable_v2">
|
|
|
|
<copyright>
|
|
Copyright 2016 The Chromium Authors.
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a
|
|
copy of this software and associated documentation files (the "Software"),
|
|
to deal in the Software without restriction, including without limitation
|
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
and/or sell copies of the Software, and to permit persons to whom the
|
|
Software is furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice (including the next
|
|
paragraph) shall be included in all copies or substantial portions of the
|
|
Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
DEALINGS IN THE SOFTWARE.
|
|
</copyright>
|
|
|
|
<interface name="zcr_stylus_v2" version="2">
|
|
<description summary="extends wl_touch and wl_pointer for styli">
|
|
Allows a wl_touch or a wl_pointer to report stylus specific information.
|
|
The client can use this protocol to obtain detail information about the
|
|
type of stylus, as well as the force and tilt of the tool.
|
|
|
|
Warning! The protocol described in this file is experimental and
|
|
backward incompatible changes may be made. Backward compatible changes
|
|
may be added together with the corresponding uinterface version bump.
|
|
Backward incompatible changes are done by bumping the version number in
|
|
the protocol and uinterface names and resetting the interface version.
|
|
Once the protocol is to be declared stable, the 'z' prefix and the
|
|
version number in the protocol and interface names are removed and the
|
|
interface version number is reset.
|
|
</description>
|
|
|
|
<enum name="error">
|
|
<entry name="touch_stylus_exists" value="0"
|
|
summary="the touch already has a touch_stylus object associated"/>
|
|
|
|
<!-- Version 2 Additions -->
|
|
<entry name="pointer_stylus_exists" value="1" since="2"
|
|
summary="the pointer already has a pointer_stylus object associated"/>
|
|
</enum>
|
|
|
|
<request name="get_touch_stylus">
|
|
<description summary="get stylus interface for touch">
|
|
Create touch_stylus object. See zcr_touch_stylus_v2 interface for
|
|
details. If the given wl_touch already has a touch_stylus object
|
|
associated, the touch_stylus_exists protocol error is raised.
|
|
</description>
|
|
<arg name="id" type="new_id" interface="zcr_touch_stylus_v2"/>
|
|
<arg name="touch" type="object" interface="wl_touch"/>
|
|
</request>
|
|
|
|
<!-- Version 2 Additions -->
|
|
<request name="get_pointer_stylus" since="2">
|
|
<description summary="get stylus interface for pointer">
|
|
Create pointer_stylus object. See zcr_pointer_stylus_v2 interface for
|
|
details. If the given wl_pointer already has a pointer_stylus object
|
|
associated, the pointer_stylus_exists protocol error is raised.
|
|
</description>
|
|
<arg name="id" type="new_id" interface="zcr_pointer_stylus_v2"/>
|
|
<arg name="pointer" type="object" interface="wl_pointer"/>
|
|
</request>
|
|
</interface>
|
|
|
|
<interface name="zcr_touch_stylus_v2" version="1">
|
|
<description summary="stylus extension for touch">
|
|
The zcr_touch_stylus_v2 interface extends the wl_touch interface with
|
|
events to describe details about a stylus. A stylus that reports events
|
|
through this interface is likely an on-screen stylus, where the user
|
|
interacts with the stylus directly on a display.
|
|
|
|
These events are to be fired by the server within the same frame as other
|
|
wl_touch events.
|
|
</description>
|
|
|
|
<request name="destroy" type="destructor">
|
|
<description summary="destroy stylus object"/>
|
|
</request>
|
|
|
|
<enum name="tool_type">
|
|
<description summary="tool type of device."/>
|
|
<entry name="touch" value="1" summary="Touch"/>
|
|
<entry name="pen" value="2" summary="Pen"/>
|
|
<entry name="eraser" value="3" summary="Eraser"/>
|
|
</enum>
|
|
|
|
<event name="tool">
|
|
<description summary="sets tool type of touch">
|
|
Notification that the user is using a tool type other than touch. There
|
|
can only be one tool in use at a time.
|
|
This event is sent in the same frame as the wl_touch.down event. The
|
|
tool type cannot change while a touch is being reported.
|
|
</description>
|
|
<arg name="id" type="uint" summary="touch id"/>
|
|
<arg name="type" type="uint" enum="tool_type" summary="type of tool in use"/>
|
|
</event>
|
|
|
|
<event name="force">
|
|
<description summary="force change event">
|
|
Notification of a change in physical force on the surface of the screen.
|
|
The force is calibrated and normalized to the 0 to 1 range.
|
|
</description>
|
|
<arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
|
|
<arg name="id" type="uint" summary="touch id"/>
|
|
<arg name="force" type="fixed" summary="new value of force"/>
|
|
</event>
|
|
|
|
<event name="tilt">
|
|
<description summary="tilt change event">
|
|
Notification of a change in tilt of a stylus.
|
|
|
|
Measured from surface normal as plane angle in degrees, values lie in
|
|
[-90,90]. A positive x is to the right and a positive y is towards the
|
|
user.
|
|
</description>
|
|
<arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
|
|
<arg name="id" type="uint" summary="touch id"/>
|
|
<arg name="tilt_x" type="fixed" summary="tilt in x direction"/>
|
|
<arg name="tilt_y" type="fixed" summary="tilt in y direction"/>
|
|
</event>
|
|
</interface>
|
|
|
|
<!-- Version 2 Additions -->
|
|
|
|
<interface name="zcr_pointer_stylus_v2" version="2">
|
|
<description summary="stylus extension for touch">
|
|
The zcr_pointer_stylus_v2 interface extends the wl_pointer interface with
|
|
events to describe details about a stylus. A stylus that reports events
|
|
through this interface also moves the mouse cursor. The type of the
|
|
device reporting values through this interface is described by the
|
|
tool_type. When the tool changes, the values previously reported through
|
|
this interface are assumed to be reset.
|
|
|
|
These events are to be fired by the server within the same frame as other
|
|
wl_pointer events.
|
|
</description>
|
|
|
|
<request name="destroy" type="destructor">
|
|
<description summary="destroy stylus object"/>
|
|
</request>
|
|
|
|
<enum name="tool_type">
|
|
<description summary="the tool type of the device"/>
|
|
<entry name="none" value="0" summary="Default pointer device"/>
|
|
<entry name="touch" value="1" summary="Touch"/>
|
|
<entry name="pen" value="2" summary="Pen"/>
|
|
<entry name="eraser" value="3" summary="Eraser"/>
|
|
</enum>
|
|
|
|
<event name="tool">
|
|
<description summary="tool change event">
|
|
Notification that the user is using a tool type other than touch. There
|
|
can only be one tool in use at a time.
|
|
</description>
|
|
<arg name="type" type="uint" enum="tool_type" summary="type of tool in use"/>
|
|
</event>
|
|
|
|
<event name="force">
|
|
<description summary="force change event">
|
|
Notification of the physical force of the stylus on the surface.
|
|
The force is calibrated and normalized to the 0 to 1 range.
|
|
|
|
The client should assume that the force value is reset when the
|
|
tool changes, and that the tool does not support force detection
|
|
until the first force event is sent. That force value will persist
|
|
until the next force update or tool change.
|
|
</description>
|
|
<arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
|
|
<arg name="force" type="fixed" summary="new value of force"/>
|
|
</event>
|
|
|
|
<event name="tilt">
|
|
<description summary="tilt change event">
|
|
Notification of a change in tilt of a stylus.
|
|
|
|
Measured from surface normal as plane angle in degrees, values lie in
|
|
[-90,90]. A positive x is to the right and a positive y is towards the
|
|
user.
|
|
|
|
The client should assume that the tilt value is reset when the
|
|
tool changes, and that the tool does not support tilt detection
|
|
until the first tilt event is sent. That value will persist
|
|
until the next tilt update or tool change.
|
|
</description>
|
|
<arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
|
|
<arg name="tilt_x" type="fixed" summary="tilt in x direction"/>
|
|
<arg name="tilt_y" type="fixed" summary="tilt in y direction"/>
|
|
</event>
|
|
</interface>
|
|
|
|
</protocol>
|
|
|