<?xml version="1.0" encoding="UTF-8"?>
<protocol name="gaming_input_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_gaming_input_v2" version="2">
    <description summary="extends wl_seat with gaming input devices">
      A global interface to provide gaming input devices for a given seat.

      Currently only gamepad devices are supported.

      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>

    <request name="get_gaming_seat">
      <description summary="get a gaming seat">
        Get a gaming seat object for a given seat. Gaming seat provides access
        to gaming devices
      </description>
      <arg name="gaming_seat" type="new_id" interface="zcr_gaming_seat_v2"/>
      <arg name="seat" type="object" interface="wl_seat"/>
    </request>

    <request name="destroy" type="destructor">
      <description summary="release the memory for the gaming input object">
        Destroy gaming_input object. Objects created from this object are
        unaffected and should be destroyed separately.
      </description>
    </request>
  </interface>

  <interface name="zcr_gaming_seat_v2" version="1">
    <description summary="controller object for all gaming devices of a seat">
      An object that provides access to all the gaming devices of a seat.
      When a gamepad is connected, the compositor will send gamepad_added event.
    </description>

    <request name="destroy" type="destructor">
      <description summary="release the memory for the gaming seat object">
        Destroy gaming_seat object. Objects created from this object are
        unaffected and should be destroyed separately.
      </description>
    </request>

    <event name="gamepad_added">
      <description summary="gamepad added event">
        Notification that there is gamepad connected at this seat.
      </description>
      <arg name="gamepad" type="new_id" interface="zcr_gamepad_v2" summary="new connected gamepad"/>
    </event>

    <enum name="bus_type">
      <description summary="gamepad device bus type">
        Device connection type e.g. Bluetooth
      </description>
      <entry name="usb" value="0" summary="Universal Serial Bus" />
      <entry name="bluetooth" value="1" summary="Bluetooth" />
    </enum>

    <event name="gamepad_added_with_device_info">
      <description summary="gamepad added event">
        Notification that there is gamepad connected at this seat.
      </description>
      <arg name="gamepad" type="new_id" interface="zcr_gamepad_v2" summary="new connected gamepad"/>
      <arg name="name" type="string" summary="name of the gamepad device" />
      <arg name="bus" type="uint" enum="bus_type" summary="type of the device connection e.g. Bluetooth" />
      <arg name="vendor_id" type="uint" summary="vendor ID of the gamepad device" />
      <arg name="product_id" type="uint" summary="product ID of the gamepad device" />
      <arg name="version" type="uint" summary="product version of the gamepad device" />
    </event>
  </interface>

  <interface name="zcr_gamepad_v2" version="2">
    <description summary="gamepad input device">
      The zcr_gamepad_v2 interface represents one or more gamepad input devices,
      which are reported as a normalized 'Standard Gamepad' as it is specified
      by the W3C Gamepad API at: https://w3c.github.io/gamepad/#remapping
    </description>

    <request name="destroy" type="destructor">
      <description summary="destroy gamepad">
        Destroy gamepad. Instances created from this gamepad are unaffected
        and should be destroyed separately.
      </description>
    </request>

    <event name="removed">
      <description summary="gamepad removed">
        Removed event is send when the gamepad is disconnected. The client should
        expect no more event and call destroy.

        This event cannot be used as destructor as requests (e.g. vibration) might
        be added to this interface.
      </description>
    </event>

    <event name="axis">
      <description summary="axis change event">
        Notification of axis change.

        The axis id specifies which axis has changed as defined by the W3C
        'Standard Gamepad'.

        The value is calibrated and normalized to the -1 to 1 range.
      </description>
      <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
      <arg name="axis" type="uint" summary="axis that produced this event"/>
      <arg name="value" type="fixed" summary="new value of axis"/>
    </event>

    <enum name="button_state">
      <description summary="physical button state">
        Describes the physical state of a button that produced the button
        event.
      </description>
      <entry name="released" value="0" summary="the button is not pressed"/>
      <entry name="pressed" value="1" summary="the button is pressed"/>
    </enum>

    <event name="button">
      <description summary="Gamepad button changed">
        Notification of button change.

        The button id specifies which button has changed as defined by the W3C
        'Standard Gamepad'.

        A button can have a digital and an analog value. The analog value is
        normalized to a 0 to 1 range.
        If a button does not provide an analog value, it will be derived from
        the digital state.
      </description>
      <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
      <arg name="button" type="uint" summary="id of button"/>
      <arg name="state" type="uint" enum="button_state" summary="digital state of the button"/>
      <arg name="analog" type="fixed" summary="analog value of the button"/>
    </event>

    <event name="frame">
      <description summary="Notifies end of a series of gamepad changes.">
        Indicates the end of a set of events that logically belong together.
        A client is expected to accumulate the data in all events within the
        frame before proceeding.
      </description>
      <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
    </event>

    <event name="axis_added">
      <description summary="an axis is added">
        Adds an axis to the gamepad. Only called when the gamepad was created by
        gamepad_added_with_device_info. The values are compatible with
        input_absinfo.
      </description>
      <arg name="index" type="uint" summary="An index of the axis" />
      <arg name="min_value" type="int" summary="minimum value of the axis" />
      <arg name="max_value" type="int" summary="maximum value of the axis" />
      <arg name="flat" type="int" summary="input within this value are ignored" />
      <arg name="fuzz" type="int" summary="used to filter noise" />
      <arg name="resolution" type="int" summary="resolution of input in units per millimeter, or units per radian for rotational axes." />
    </event>

    <event name="activated">
      <description summary="Gamepad activated">
        Activates the gamepad i.e. the gamepad will be visible to applications
        after this event is fired. All axis_added events should be sent before
        this event. Only called when the gamepad was created by
        gamepad_added_with_device_info.
      </description>
    </event>

    <!-- added since v2 -->
    <event name="vibrator_added" since="2">
      <description summary="a vibrator is added">
        Adds a vibrator to the gamepad. Only called if server has verified
        that gamepad has a vibrator. The vibrator(s) for a gamepad are expected
        to be added before the "activated" event is called.
      </description>
      <arg name="vibrator" type="new_id" interface="zcr_gamepad_vibrator_v2" summary="the gamepad vibrator"/>
    </event>
  </interface>

  <interface name="zcr_gamepad_vibrator_v2" version="2">
    <description summary="vibrator interface for a gamepad">
      An interface that provides access to the vibrator of a gamepad. Requests can be
      sent to make the gamepad vibrate and to stop an ongoing vibration.
    </description>

    <request name="vibrate" since="2">
      <description summary="triggers the vibration event">
        Triggers the vibration event on the gamepad vibrator. The gamepad is only allowed to
        vibrate while the window is in focus. The values in the timings array are 64-bit integers
        and the values in the amplitudes array are unsigned 8-bit integers.
        The timings array and the amplitudes array are of the same length.
        For each timing/amplitude pair, the amplitude determines the strength of
        the vibration and the timing determines the length of the vibration in milliseconds.
        Amplitude values must be between 0 and 255. An amplitude of 0 implies no vibration
        and any timing/amplitude pair with a timing value of 0 is ignored.
        The repeat argument determines the index at which the vibration pattern to repeat begins.
        A repeat value of -1 disables repetition. If repetition is enabled, the vibration
        pattern will repeat indefinitely until stopped, or when focus is lost.
      </description>
      <arg name="timings" type="array" summary="array of timing values" />
      <arg name="amplitudes" type="array" summary="array of amplitude values" />
      <arg name="repeat" type="int" summary="index into the timings array at which to repeat" />
    </request>

    <request name="cancel_vibration" since="2">
      <description summary="cancels the existing vibration event">
        Cancels the currently ongoing vibration event on the gamepad vibrator.
      </description>
    </request>

    <request name="destroy" type="destructor" since="2">
      <description summary="destroy gamepad vibrator"/>
    </request>
  </interface>
</protocol>
