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 10 namespace content { 11 12 struct 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 38 extern const char* kPowerTypeNames[]; 39 40 } // namespace content 41 42 #endif // CONTENT_BROWSER_POWER_PROFILER_POWER_EVENT_H_ 43