// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

option optimize_for = LITE_RUNTIME;

// This protobuf is intended to be used by powerd to communicate with the
// browser. Perdiodically the browser requests the current power state of the
// system by sending a request for all power supply properties. This structure
// contains all the values that are of interest. In regular use this should be
// completely filled by the sender. If you want to only send part of the
// protobuf you should refactor it instead of just partiall filling it.

message PowerSupplyProperties {
    optional bool line_power_on = 1;  // Are using AC?
    optional double battery_energy = 2;  // Current battery energy, in Wh
    // Rate of charge/discharge of the battery, in W
    optional double battery_energy_rate = 3;
    optional double battery_voltage = 4;  // Current battery Voltage, in V
    // Calculated time to battery complete discharge, in seconds
    optional int64 battery_time_to_empty = 5;
    // Calculated time to battery complete charge, in seconds
    optional int64 battery_time_to_full = 6;
    // Calculated percentage of capacity available
    optional double battery_percentage = 7;
    optional bool battery_is_present = 8;  // Is a battery attached?
    // Is the battery already at full capacity?
    optional bool battery_is_charged = 9;
    // Averaged time to battery complete discharge, in seconds
    optional int64 averaged_battery_time_to_empty = 10;
    // Averaged time to battery complete charge, in seconds
    optional int64 averaged_battery_time_to_full = 11;
    // Set to true when we have just transitioned states and we might
    // have both a segment of charging and discharging in the
    // calculation. This is done to signal that the time value maybe
    // inaccurate.
    optional bool is_calculating_battery_time = 12 [default = false];
}