<?xml version="1.0" encoding="UTF-8"?>
<node xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">

  <interface name="org.freedesktop.ConsoleKit.Seat">
    <doc:doc>
      <doc:description>
        <doc:para>A seat is a collection of sessions and a set of hardware (usually at
least a keyboard and mouse).  Only one session may be active on a
seat at a time.</doc:para>
      </doc:description>
    </doc:doc>

    <method name="GetId">
      <arg name="sid" direction="out" type="o">
        <doc:doc>
          <doc:summary>Seat ID</doc:summary>
        </doc:doc>
      </arg>
      <doc:doc>
        <doc:description>
          <doc:para>Returns the ID for Seat.</doc:para>
        </doc:description>
      </doc:doc>
    </method>

    <method name="GetName">
      <arg name="name" direction="out" type="s">
        <doc:doc>
          <doc:summary>Seat Name</doc:summary>
        </doc:doc>
      </arg>
      <doc:doc>
        <doc:description>
          <doc:para>Returns the name for Seat, such as Seat0.</doc:para>
          <doc:para>Since 1.1.1</doc:para>
        </doc:description>
      </doc:doc>
    </method>

    <method name="GetSessions">
      <arg name="sessions" direction="out" type="ao">
        <doc:doc>
          <doc:summary>an array of Session IDs</doc:summary>
        </doc:doc>
      </arg>
      <doc:doc>
        <doc:description>
          <doc:para>This gets a list of all the <doc:ref type="interface" to="Session">Sessions</doc:ref>
          that are currently attached to this seat.</doc:para>
          <doc:para>Each Session ID is an D-Bus object path for the object that implements the
          <doc:ref type="interface" to="Session">Session</doc:ref> interface.</doc:para>
        </doc:description>
      </doc:doc>
    </method>

    <method name="GetDevices">
      <arg name="devices" direction="out" type="a(ss)">
        <doc:doc>
          <doc:summary>an array of devices</doc:summary>
        </doc:doc>
      </arg>
      <doc:doc>
        <doc:description>
          <doc:para>This gets a list of all the devices
          that are currently associated with this seat.</doc:para>
          <doc:para>Each device is an D-Bus structure that represents
          the device type and the device id.
          </doc:para>
        </doc:description>
      </doc:doc>
    </method>

    <method name="GetActiveSession">
      <arg name="ssid" direction="out" type="o">
        <doc:doc>
          <doc:summary>Session ID</doc:summary>
        </doc:doc>
      </arg>
      <doc:doc>
        <doc:description>
          <doc:para>Gets the Session ID that is currently active on this Seat.</doc:para>
          <doc:para>Fails with CK_SEAT_ERROR_NO_ACTIVE_SESSION if there is no active session.</doc:para>
        </doc:description>
      </doc:doc>
    </method>

    <method name="CanActivateSessions">
      <arg name="can_activate" direction="out" type="b">
        <doc:doc>
          <doc:summary>TRUE if seat supports session activation</doc:summary>
        </doc:doc>
      </arg>
      <doc:doc>
        <doc:description><doc:para>Used to determine whether the seat supports session activation.</doc:para>
        </doc:description>
      </doc:doc>
    </method>

    <method name="ActivateSession">
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <arg name="ssid" direction="in" type="o">
        <doc:doc>
          <doc:summary>Session ID</doc:summary>
        </doc:doc>
      </arg>
      <doc:doc>
        <doc:description>
          <doc:para>Attempt to activate the specified session.  In most
          cases, if successful, this will cause the session to
          become visible and take control of the hardware that is
          associated with this seat.</doc:para>
          <doc:para>May fail with: CK_SEAT_ERROR_FAILED, CK_SEAT_ERROR_ALREADY_ACTIVE, CK_SEAT_ERROR_NOT_SUPPORTED</doc:para>
        </doc:description>
        <doc:seealso><doc:ref type="method" to="Session.Activate">Activate()</doc:ref></doc:seealso>
      </doc:doc>
    </method>

    <method name="SwitchTo">
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <arg name="vtnr" direction="in" type="u">
        <doc:doc>
          <doc:summary>Virtual Terminal to switch to.</doc:summary>
        </doc:doc>
      </arg>
      <doc:doc>
        <doc:description>
          <doc:para>Attempt to activate the specified VT.  In most
          cases, if successful, this will cause the session to
          become visible and take control of the hardware that is
          associated with this seat.</doc:para>
          <doc:para>May fail with: CK_SEAT_ERROR_FAILED, CK_SEAT_ERROR_ALREADY_ACTIVE, CK_SEAT_ERROR_NOT_SUPPORTED, CK_SEAT_ERROR_GENERAL</doc:para>
          <doc:para>Since 1.1.1</doc:para>
        </doc:description>
        <doc:seealso><doc:ref type="method" to="Session.Activate">Activate()</doc:ref></doc:seealso>
      </doc:doc>
    </method>

    <signal name="ActiveSessionChanged">
      <arg name="ssid" type="o">
        <doc:doc>
          <doc:summary>Session ID</doc:summary>
        </doc:doc>
      </arg>
      <doc:doc>
        <doc:description>
          <doc:para>Emitted when the active session has changed.</doc:para>
        </doc:description>
      </doc:doc>
    </signal>
    <signal name="SessionAdded">
      <arg name="ssid" type="o">
        <doc:doc>
          <doc:summary>Session ID</doc:summary>
        </doc:doc>
      </arg>
      <doc:doc>
        <doc:description>
          <doc:para>Emitted when a session has been added to the seat.</doc:para>
        </doc:description>
      </doc:doc>
    </signal>
    <signal name="SessionRemoved">
      <arg name="ssid" type="o">
        <doc:doc>
          <doc:summary>Session ID</doc:summary>
        </doc:doc>
      </arg>
      <doc:doc>
        <doc:description>
          <doc:para>Emitted when a session has been removed from the seat.</doc:para>
        </doc:description>
      </doc:doc>
    </signal>
    <signal name="DeviceAdded">
      <arg name="device" type="(ss)">
        <doc:doc>
          <doc:summary>Device structure</doc:summary>
        </doc:doc>
      </arg>
      <doc:doc>
        <doc:description>
          <doc:para>Emitted when a device has been associated with the seat.</doc:para>
        </doc:description>
      </doc:doc>
    </signal>
    <signal name="DeviceRemoved">
      <arg name="device" type="(ss)">
        <doc:doc>
          <doc:summary>Device structure</doc:summary>
        </doc:doc>
      </arg>
      <doc:doc>
        <doc:description>
          <doc:para>Emitted when a device has been dissociated from the seat.</doc:para>
        </doc:description>
      </doc:doc>
    </signal>


    <property name="name" type="s" access="read">
      <doc:doc>
        <doc:description>
          <doc:para>The Seat's name, such as Seat0</doc:para>
          <doc:para>Since 1.1.1</doc:para>
        </doc:description>
      </doc:doc>
    </property>
  </interface>
</node>
