<?xml version="1.0"?>
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
  "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node name="/org/chromium/PowerManager"
  xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
  <interface name="org.chromium.PowerManager">
    <method name="RequestShutdown">
      <tp:docstring>
        The |reason| arg is a power_manager::RequestShutdownReason value.
        The |description| arg is a human-readable string describing the reason
        for the request; it is logged by powerd.
      </tp:docstring>
      <arg name="reason" direction="in" type="i" />
      <arg name="description" direction="in" type="s" />
    </method>
    <method name="RequestRestart">
      <tp:docstring>
        The |reason| arg is a power_manager::RequestRestartReason value.
        The |description| arg is a human-readable string describing the reason
        for the request; it is logged by powerd.
      </tp:docstring>
      <arg name="reason" direction="in" type="i" />
      <arg name="description" direction="in" type="s" />
    </method>
    <method name="ChangeWifiRegDomain">
      <tp:docstring>
        The |domain| arg is a power_manager::WifiRegDomainDbus value.
        Change the WiFi regdomain.
      </tp:docstring>
      <arg name="domain" direction="in" type="i" />
    </method>
    <method name="RequestSuspend">
      <tp:docstring>
        The |external_wakeup_count| arg is optional, and it will call two
        different methods in the backend. This can't be expressed in the DBus
        Introspection XML file.
      </tp:docstring>
      <arg name="external_wakeup_count" direction="in" type="t" />
    </method>
    <method name="SetScreenBrightness">
      <tp:docstring>
        The |serialized_proto| arg is a serialized
        power_manager::SetBacklightBrightnessRequest protobuf.
      </tp:docstring>
      <arg name="serialized_proto" direction="in" type="ay" />
    </method>
    <method name="DecreaseScreenBrightness">
      <arg name="allow_off" direction="in" type="b" />
    </method>
    <method name="IncreaseScreenBrightness" />
    <method name="GetScreenBrightnessPercent">
      <arg name="percent" direction="out" type="d" />
    </method>
    <method name="DecreaseKeyboardBrightness" />
    <method name="IncreaseKeyboardBrightness" />
    <method name="GetPowerSupplyProperties">
      <tp:docstring>
        The |serialized_proto| arg is a serialized
        power_manager::PowerSupplyProperties protobuf.
      </tp:docstring>
      <arg name="serialized_proto" direction="out" type="ay" />
    </method>
    <method name="HandleVideoActivity">
      <arg name="fullscreen" direction="in" type="b" />
    </method>
    <method name="HandleUserActivity">
      <tp:docstring>
        The |type| arg is a power_manager::UserActivityType.
      </tp:docstring>
      <arg name="type" direction="in" type="i" />
    </method>
    <method name="SetIsProjecting">
      <arg name="is_projecting" direction="in" type="b" />
    </method>
    <method name="SetPolicy">
      <tp:docstring>
        The |serialized_proto| arg is a serialized
        power_manager::PowerManagementPolicy protobuf.
      </tp:docstring>
      <arg name="serialized_proto" direction="in" type="ay" />
    </method>
    <method name="SetPowerSource">
      <arg name="id" direction="in" type="s" />
    </method>
    <method name="HandlePowerButtonAcknowledgment">
      <tp:docstring>
        The |timestamp_internal| arg is represented as the return value of
        base::TimeTicks::ToInternalValue().
      </tp:docstring>
      <arg name="timestamp_internal" direction="in" type="x" />
    </method>
    <method name="IgnoreNextPowerButtonPress">
      <tp:docstring>
        The |timeout_internal| arg is represented as the return value of
        base::TimeDelta::ToInternalValue(). Setting it to 0 cancels a
        previously set period.
      </tp:docstring>
      <arg name="timeout_internal" direction="in" type="x" />
    </method>

    <method name="RegisterSuspendDelay">
      <tp:docstring>
        The |serialized_request_proto| arg is a serialized
        power_manager::RegisterSuspendDelayRequest protobuf.
        The |serialized_reply_proto| arg is a serialized
        RegisterSuspendDelayReply protobuf.
      </tp:docstring>
      <arg name="serialized_request_proto" direction="in" type="ay" />
      <arg name="serialized_reply_proto" direction="out" type="ay" />
    </method>
    <method name="UnregisterSuspendDelay">
      <tp:docstring>
        The |serialized_proto| arg is a serialized
        power_manager::UnregisterSuspendDelayRequest protobuf.
      </tp:docstring>
      <arg name="serialized_proto" direction="in" type="ay" />
    </method>

    <method name="HandleSuspendReadiness">
      <tp:docstring>
        The |serialized_proto| arg is a serialized
        power_manager::SuspendReadinessInfo protobuf.
      </tp:docstring>
      <arg name="serialized_proto" direction="in" type="ay" />
    </method>
    <method name="RegisterDarkSuspendDelay">
      <tp:docstring>
        The |serialized_request_proto| arg is a serialized
        power_manager::RegisterSuspendDelayRequest protobuf.
        The |serialized_reply_proto| arg is a serialized
        RegisterSuspendDelayReply protobuf.
      </tp:docstring>
      <arg name="serialized_request_proto" direction="in" type="ay" />
      <arg name="serialized_reply_proto" direction="out" type="ay" />
    </method>
    <method name="UnregisterDarkSuspendDelay">
      <tp:docstring>
        The |serialized_proto| arg is a serialized
        power_manager::UnregisterSuspendDelayRequest protobuf.
      </tp:docstring>
      <arg name="serialized_proto" direction="in" type="ay" />
    </method>
    <method name="HandleDarkSuspendReadiness">
      <tp:docstring>
        The |serialized_proto| arg is a serialized
        power_manager::SuspendReadinessInfo protobuf.
      </tp:docstring>
      <arg name="serialized_proto" direction="in" type="ay" />
    </method>
    <method name="RecordDarkResumeWakeReason">
      <tp:docstring>
        The |serialized_proto| arg is a serialized
        power_manager::DarkResumeWakeReason protobuf.
      </tp:docstring>
      <arg name="serialized_proto" direction="in" type="ay" />
    </method>
    <method name="GetInactivityDelays">
      <tp:docstring>
        |serialized_reply_proto| is a serialized
        power_manager::PowerManagementPolicy::Delays protobuf describing the
        current inactivity delays.
      </tp:docstring>
      <arg name="serialized_reply_proto" direction="out" type="ay" />
    </method>
    <method name="HasAmbientColorDevice">
      <arg name="has_device" direction="out" type="b" />
    </method>

    <method name="GetThermalState">
      <tp:docstring>
        The |serialized_proto| arg is a serialized
        power_manager::ThermalEvent protobuf.
      </tp:docstring>
      <arg name="serialized_proto" direction="out" type="ay" />
    </method>

    <!-- Signals -->
    <signal name="ScreenBrightnessChanged">
      <tp:docstring>
        |serialized_proto| is a serialized
        power_manager::BacklightBrightnessChange protobuf.
      </tp:docstring>
      <arg name="serialized_proto" direction="out" type="ay" />
    </signal>
    <signal name="KeyboardBrightnessChanged">
      <tp:docstring>
        |serialized_proto| is a serialized
        power_manager::BacklightBrightnessChange protobuf.
      </tp:docstring>
      <arg name="serialized_proto" direction="out" type="ay" />
    </signal>

    <signal name="PeripheralBatteryStatus">
      <tp:docstring>
        The |serialized_proto| arg is a serialized
        power_manager::PeripheralBatteryStatus protobuf.
      </tp:docstring>
      <arg name="serialized_proto" type="ay" />
    </signal>
    <signal name="PowerSupplyPoll">
      <tp:docstring>
        The |serialized_proto| arg is a serialized
        power_manager::PowerSupplyProperties protobuf.
      </tp:docstring>
      <arg name="serialized_proto" type="ay" />
    </signal>

    <signal name="SuspendImminent">
      <tp:docstring>
        The |serialized_proto| arg is a serialized
        power_manager::SuspendImminent protobuf.
      </tp:docstring>
      <arg name="serialized_proto" type="ay" />
    </signal>
    <signal name="SuspendDone">
      <tp:docstring>
        The |serialized_proto| arg is a serialized
        power_manager::SuspendDone protobuf.
      </tp:docstring>
      <arg name="serialized_proto" type="ay" />
    </signal>
    <signal name="DarkSuspendImminent">
      <tp:docstring>
        The |serialized_proto| arg is a serialized
        power_manager::SuspendImminent protobuf.
      </tp:docstring>
      <arg name="serialized_proto" type="ay" />
    </signal>

    <signal name="InputEvent">
      <tp:docstring>
        The |serialized_proto| arg is a serialized
        power_manager::InputEvent protobuf.
      </tp:docstring>
      <arg name="serialized_proto" type="ay" />
    </signal>

    <signal name="IdleActionImminent">
      <tp:docstring>
        The |serialized_proto| arg is a serialized
        power_manager::IdleActionImminent protobuf.
      </tp:docstring>
      <arg name="serialized_proto" type="ay" />
    </signal>
    <signal name="IdleActionDeferred" />

    <signal name="ScreenIdleStateChanged">
      <tp:docstring>
        The |serialized_proto| arg is a serialized
        power_manager::ScreenIdleState protobuf describing the current
        idle-related state of the display.
      </tp:docstring>
      <arg name="serialized_proto" type="ay" />
    </signal>
    <signal name="InactivityDelaysChanged">
      <tp:docstring>
        The |serialized_proto| arg is a serialized
        power_manager::PowerManagementPolicy::Delays protobuf describing the
        current inactivity delays.
      </tp:docstring>
      <arg name="serialized_proto" type="ay" />
    </signal>
    <signal name="AmbientColorTemperatureChanged">
      <tp:docstring>
        |color_temp| describes the correlated color temperature of the current
        ambient light conditions.
      </tp:docstring>
      <arg name="color_temp" type="u" />
    </signal>

    <signal name="ThermalEvent">
      <tp:docstring>
        The |serialized_proto| arg is a serialized
        power_manager::ThermalEvent protobuf.
      </tp:docstring>
      <arg name="serialized_proto" type="ay" />
    </signal>
  </interface>
</node>
