1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CONTENT_BROWSER_POWER_PROFILER_POWER_EVENT_H_
6#define CONTENT_BROWSER_POWER_PROFILER_POWER_EVENT_H_
7
8#include "base/time/time.h"
9
10namespace content {
11
12struct PowerEvent {
13  enum Type {
14    // Total power of SoC. including CPU, GT and others on the chip,
15    // modules which aren't part of the SoC such as the screen are not included.
16    SOC_PACKAGE,
17
18    // Whole device power.
19    DEVICE,
20
21    // Keep this at the end.
22    ID_COUNT
23  };
24
25  Type type;
26
27  base::TimeTicks time;  // Time that power data was read.
28
29  // Power value between last event and this one, in watts.
30  // E.g, event1 {t1, v1}; event2 {t2, v2}; event3 {t3, v3}.
31  // Suppose event1 is the first event the observer received, then event2,
32  // event3. Then v2 is the average power from t1 to t2, v3 is the average
33  // power from t2 to t3. v1 should be ignored since event1 only means the
34  // start point of power profiling.
35  double value;
36};
37
38extern const char* kPowerTypeNames[];
39
40}  // namespace content
41
42#endif  // CONTENT_BROWSER_POWER_PROFILER_POWER_EVENT_H_
43