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

  <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_keyboard_configuration_v1" version="2">
    <description summary="extends wl_keyboard with events for device configuration change">
      Allows a wl_keyboard to notify device configuration change events of
      the keyboard to the client.

      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="device_configuration_exists" value="0"
             summary="the keyboard already has a device configuration object associated"/>
    </enum>

    <request name="get_keyboard_device_configuration">
      <description summary="get keyboard_device_configuration interface for a keyboard">
        Create keyboard_device_configuration object.
        See zcr_keyboard_device_configuration interface for details.
        If the given wl_keyboard object already has a device configuration
        object associated, the keyboard_device_configuration_exists protocol
        error is raised.
      </description>
      <arg name="id" type="new_id" interface="zcr_keyboard_device_configuration_v1"/>
      <arg name="keyboard" type="object" interface="wl_keyboard"/>
    </request>
  </interface>

  <interface name="zcr_keyboard_device_configuration_v1" version="2">
    <description summary="extension of wl_keyboard protocol">
      The zcr_keyboard_device_configuration_v1 interface extends the wl_keyboard
      interface with events to describe device configuration of a keyboard.
    </description>

    <request name="destroy" type="destructor">
      <description summary="destroy keyboard_device_configuration object"/>
    </request>

    <enum name="keyboard_type">
      <description summary="keyboard types"/>
      <entry name="physical" value="0" summary="Physical keyboard"/>
      <entry name="virtual" value="1" summary="Virtual keyboard"/>
    </enum>

    <event name="type_change">
      <description summary="keyboard type changed">
        Notification that the user is switching to new keyboard type.

        If this event is not received, the cleint has to assume a physical
        keyboard is in use.
      </description>
      <arg name="type" type="uint" enum="keyboard_type" summary="new device type"/>
    </event>

    <!-- Version 2 additions -->

    <event name="layout_change" since="2">
      <description summary="keyboard layout changed">
        Notification that the user is switching to a new keyboard layout.
        This is an alternative to keymap event in wl_keyboard interface. The
        client responds to one of them, and the other is ignored.
      </description>
      <arg name="name" type="string" summary="XKB layout name e.g. us(dvorak)"/>
    </event>
  </interface>

</protocol>
