<?xml version="1.0" encoding="UTF-8"?>
<protocol name="webos_input_manager">

  <copyright>
    Copyright (c) 2014-2020 LG Electronics, Inc.

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

    SPDX-License-Identifier: Apache-2.0
  </copyright>

  <interface name="wl_webos_input_manager" version="1">
    <description summary="get additional input interface">
      wl_webos_seat has more information than wl_seat. User can get it using
      get_webos_seat(seat).
    </description>

    <request name="get_webos_seat">
      <description summary="get webos seat">
        Returns a webos_seat associated with the seat.
      </description>
      <arg name="id" type="new_id" interface="wl_webos_seat"/>
      <arg name="seat" type="object" interface="wl_seat"/>
    </request>

    <event name="cursor_visibility">
      <description summary="current cursor visibility">
        If the current cursor visibility is chagned, notify it.
      </description>
      <arg name="visibility" type="uint" summary="boolean vaule for visibility of current cursor"/>
      <arg name="webos_seat" type="object" interface="wl_webos_seat" allow-null="true" summary="webos_seat cursor visibility changed, if this value is Null All cursors are hidden"/>
    </event>

    <request name="set_cursor_visibility">
      <description summary="set cursor visibility">
        Sets the cursor visibility.
      </description>
      <arg name="visibility" type="uint" summary="boolean for the cursor visibility"/>
    </request>

  </interface>

  <interface name="wl_webos_seat" version="1">
    <description summary="interface for additional input data">
      This is a webOS extension for additional input data such as gyroscope or
      accelerometer. If the seat has additional input data, user can request it
      using get_*.
    </description>

    <enum name="capability">
      <description summary="webos seat capability bitmask">
        This is a bitmask of capabilities this webOS seat has; if a member is
        set, then it is present on the seat.
      </description>
      <entry name="default" value="0" summary="this seat does not provide additional input"/>
      <entry name="gyroscope" value="1" summary="this seat can provide gyroscope data, wl_webos_gyroscope"/>
      <entry name="accelerometer" value="2" summary="this seat can provide accelerometer data, wl_webos_accelerometer"/>
    </enum>

    <event name="info">
      <description summary="info about the seat">
        This event will be sent immediately after the client as requested the
        webOS seat from wl_webos_input_manager.

        The designator [0, 1, ... N] indicates if this is the primary(=0),
        secondary, etc seat.
      </description>
      <arg name="id" type="uint" summary="an unique identifier for the seat"/>
      <arg name="name" type="string" summary="a human readable name for the seat"/>
      <arg name="designator" type="uint" summary="a value for the designation of this seat"/>
      <arg name="capabilities" type="uint"/>
    </event>

    <request name="get_gyroscope">
      <description summary="get interface for gyroscope">
        If the seat has gyroscope sensor, user can get this interface.
      </description>
      <arg name="id" type="new_id" interface="wl_webos_gyroscope"/>
    </request>

    <request name="get_accelerometer">
      <description summary="get interface for accelerometer">
        If the seat has accelerometer sensor, user can get this interface.
      </description>
      <arg name="id" type="new_id" interface="wl_webos_accelerometer"/>
    </request>

  </interface>

  <interface name="wl_webos_gyroscope" version="1">
    <description summary="interface for gyroscope device">
      This is an interface for gyroscope device.
    </description>

    <event name="sensor_data">
      <description summary="sensor data from the seat">
        The gyroscope sensor data will be delivered only if the client
        explicitly requested it via "requeest_data".
      </description>
      <arg name="x" type="fixed" summary="data for x-axis"/>
      <arg name="y" type="fixed" summary="data for y-axis"/>
      <arg name="z" type="fixed" summary="data for z-axis"/>
    </event>

    <request name="request_data">
      <description summary="request sensor data">
        Requests to enable/disable sending data for gyroscope device.
      </description>
      <arg name="enabled" type="uint" summary="boolean to indicate if sensor data is needed"/>
    </request>

  </interface>

  <interface name="wl_webos_accelerometer" version="1">
    <description summary="interface for accelerometer device">
      This is an interface for accelerometer device.
    </description>

    <event name="sensor_data">
      <description summary="sensor data from the seat">
        The accelerometer sensor data will be delivered only if the client
        explicitly requested it via "request_data".
      </description>
      <arg name="x" type="fixed" summary="data for x-axis"/>
      <arg name="y" type="fixed" summary="data for y-axis"/>
      <arg name="z" type="fixed" summary="data for z-axis"/>
    </event>

    <request name="request_data">
      <description summary="request sensor data">
        Requests to enable/disable sending data for accelerometer device.
      </description>
      <arg name="enabled" type="uint" summary="boolean to indicate if sensor data is needed"/>
    </request>

  </interface>

</protocol>
