xref: /aosp_15_r20/hardware/interfaces/health/aidl/android/hardware/health/translate-ndk.cpp (revision 4d7e907c777eeecc4c5bd7cf640a754fac206ff7)
1 /*
2  * Copyright (C) 2021 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #include "android/hardware/health/translate-ndk.h"
18 
19 namespace android::h2a {
20 
21 static_assert(aidl::android::hardware::health::BatteryStatus::UNKNOWN ==
22               static_cast<aidl::android::hardware::health::BatteryStatus>(
23                       ::android::hardware::health::V1_0::BatteryStatus::UNKNOWN));
24 static_assert(aidl::android::hardware::health::BatteryStatus::CHARGING ==
25               static_cast<aidl::android::hardware::health::BatteryStatus>(
26                       ::android::hardware::health::V1_0::BatteryStatus::CHARGING));
27 static_assert(aidl::android::hardware::health::BatteryStatus::DISCHARGING ==
28               static_cast<aidl::android::hardware::health::BatteryStatus>(
29                       ::android::hardware::health::V1_0::BatteryStatus::DISCHARGING));
30 static_assert(aidl::android::hardware::health::BatteryStatus::NOT_CHARGING ==
31               static_cast<aidl::android::hardware::health::BatteryStatus>(
32                       ::android::hardware::health::V1_0::BatteryStatus::NOT_CHARGING));
33 static_assert(aidl::android::hardware::health::BatteryStatus::FULL ==
34               static_cast<aidl::android::hardware::health::BatteryStatus>(
35                       ::android::hardware::health::V1_0::BatteryStatus::FULL));
36 
37 static_assert(aidl::android::hardware::health::BatteryHealth::UNKNOWN ==
38               static_cast<aidl::android::hardware::health::BatteryHealth>(
39                       ::android::hardware::health::V1_0::BatteryHealth::UNKNOWN));
40 static_assert(aidl::android::hardware::health::BatteryHealth::GOOD ==
41               static_cast<aidl::android::hardware::health::BatteryHealth>(
42                       ::android::hardware::health::V1_0::BatteryHealth::GOOD));
43 static_assert(aidl::android::hardware::health::BatteryHealth::OVERHEAT ==
44               static_cast<aidl::android::hardware::health::BatteryHealth>(
45                       ::android::hardware::health::V1_0::BatteryHealth::OVERHEAT));
46 static_assert(aidl::android::hardware::health::BatteryHealth::DEAD ==
47               static_cast<aidl::android::hardware::health::BatteryHealth>(
48                       ::android::hardware::health::V1_0::BatteryHealth::DEAD));
49 static_assert(aidl::android::hardware::health::BatteryHealth::OVER_VOLTAGE ==
50               static_cast<aidl::android::hardware::health::BatteryHealth>(
51                       ::android::hardware::health::V1_0::BatteryHealth::OVER_VOLTAGE));
52 static_assert(aidl::android::hardware::health::BatteryHealth::UNSPECIFIED_FAILURE ==
53               static_cast<aidl::android::hardware::health::BatteryHealth>(
54                       ::android::hardware::health::V1_0::BatteryHealth::UNSPECIFIED_FAILURE));
55 static_assert(aidl::android::hardware::health::BatteryHealth::COLD ==
56               static_cast<aidl::android::hardware::health::BatteryHealth>(
57                       ::android::hardware::health::V1_0::BatteryHealth::COLD));
58 
59 static_assert(aidl::android::hardware::health::BatteryCapacityLevel::UNSUPPORTED ==
60               static_cast<aidl::android::hardware::health::BatteryCapacityLevel>(
61                       ::android::hardware::health::V2_1::BatteryCapacityLevel::UNSUPPORTED));
62 static_assert(aidl::android::hardware::health::BatteryCapacityLevel::UNKNOWN ==
63               static_cast<aidl::android::hardware::health::BatteryCapacityLevel>(
64                       ::android::hardware::health::V2_1::BatteryCapacityLevel::UNKNOWN));
65 static_assert(aidl::android::hardware::health::BatteryCapacityLevel::CRITICAL ==
66               static_cast<aidl::android::hardware::health::BatteryCapacityLevel>(
67                       ::android::hardware::health::V2_1::BatteryCapacityLevel::CRITICAL));
68 static_assert(aidl::android::hardware::health::BatteryCapacityLevel::LOW ==
69               static_cast<aidl::android::hardware::health::BatteryCapacityLevel>(
70                       ::android::hardware::health::V2_1::BatteryCapacityLevel::LOW));
71 static_assert(aidl::android::hardware::health::BatteryCapacityLevel::NORMAL ==
72               static_cast<aidl::android::hardware::health::BatteryCapacityLevel>(
73                       ::android::hardware::health::V2_1::BatteryCapacityLevel::NORMAL));
74 static_assert(aidl::android::hardware::health::BatteryCapacityLevel::HIGH ==
75               static_cast<aidl::android::hardware::health::BatteryCapacityLevel>(
76                       ::android::hardware::health::V2_1::BatteryCapacityLevel::HIGH));
77 static_assert(aidl::android::hardware::health::BatteryCapacityLevel::FULL ==
78               static_cast<aidl::android::hardware::health::BatteryCapacityLevel>(
79                       ::android::hardware::health::V2_1::BatteryCapacityLevel::FULL));
80 
translate(const::android::hardware::health::V2_0::StorageInfo & in,aidl::android::hardware::health::StorageInfo * out)81 __attribute__((warn_unused_result)) bool translate(
82         const ::android::hardware::health::V2_0::StorageInfo& in,
83         aidl::android::hardware::health::StorageInfo* out) {
84     out->eol = in.eol;
85     out->lifetimeA = in.lifetimeA;
86     out->lifetimeB = in.lifetimeB;
87     out->version = in.version;
88     return true;
89 }
90 
translate(const::android::hardware::health::V2_0::DiskStats & in,aidl::android::hardware::health::DiskStats * out)91 __attribute__((warn_unused_result)) bool translate(
92         const ::android::hardware::health::V2_0::DiskStats& in,
93         aidl::android::hardware::health::DiskStats* out) {
94     out->reads = static_cast<int64_t>(in.reads);
95     out->readMerges = static_cast<int64_t>(in.readMerges);
96     out->readSectors = static_cast<int64_t>(in.readSectors);
97     out->readTicks = static_cast<int64_t>(in.readTicks);
98     out->writes = static_cast<int64_t>(in.writes);
99     out->writeMerges = static_cast<int64_t>(in.writeMerges);
100     out->writeSectors = static_cast<int64_t>(in.writeSectors);
101     out->writeTicks = static_cast<int64_t>(in.writeTicks);
102     out->ioInFlight = static_cast<int64_t>(in.ioInFlight);
103     out->ioTicks = static_cast<int64_t>(in.ioTicks);
104     out->ioInQueue = static_cast<int64_t>(in.ioInQueue);
105     return true;
106 }
107 
translate(const::android::hardware::health::V2_0::HealthInfo & in,aidl::android::hardware::health::HealthInfo * out)108 __attribute__((warn_unused_result)) bool translate(
109         const ::android::hardware::health::V2_0::HealthInfo& in,
110         aidl::android::hardware::health::HealthInfo* out) {
111     out->chargerAcOnline = static_cast<bool>(in.legacy.chargerAcOnline);
112     out->chargerUsbOnline = static_cast<bool>(in.legacy.chargerUsbOnline);
113     out->chargerWirelessOnline = static_cast<bool>(in.legacy.chargerWirelessOnline);
114     out->maxChargingCurrentMicroamps = static_cast<int32_t>(in.legacy.maxChargingCurrent);
115     out->maxChargingVoltageMicrovolts = static_cast<int32_t>(in.legacy.maxChargingVoltage);
116     out->batteryStatus =
117             static_cast<aidl::android::hardware::health::BatteryStatus>(in.legacy.batteryStatus);
118     out->batteryHealth =
119             static_cast<aidl::android::hardware::health::BatteryHealth>(in.legacy.batteryHealth);
120     out->batteryPresent = static_cast<bool>(in.legacy.batteryPresent);
121     out->batteryLevel = static_cast<int32_t>(in.legacy.batteryLevel);
122     out->batteryVoltageMillivolts = static_cast<int32_t>(in.legacy.batteryVoltage);
123     out->batteryTemperatureTenthsCelsius = static_cast<int32_t>(in.legacy.batteryTemperature);
124     out->batteryCurrentMicroamps = static_cast<int32_t>(in.legacy.batteryCurrent);
125     out->batteryCycleCount = static_cast<int32_t>(in.legacy.batteryCycleCount);
126     out->batteryFullChargeUah = static_cast<int32_t>(in.legacy.batteryFullCharge);
127     out->batteryChargeCounterUah = static_cast<int32_t>(in.legacy.batteryChargeCounter);
128     out->batteryTechnology = in.legacy.batteryTechnology;
129     out->batteryCurrentAverageMicroamps = static_cast<int32_t>(in.batteryCurrentAverage);
130     out->diskStats.clear();
131     out->diskStats.resize(in.diskStats.size());
132     for (size_t i = 0; i < in.diskStats.size(); ++i)
133         if (!translate(in.diskStats[i], &out->diskStats[i])) return false;
134     out->storageInfos.clear();
135     out->storageInfos.resize(in.storageInfos.size());
136     for (size_t i = 0; i < in.storageInfos.size(); ++i)
137         if (!translate(in.storageInfos[i], &out->storageInfos[i])) return false;
138     return true;
139 }
translate(const::android::hardware::health::V2_1::HealthInfo & in,aidl::android::hardware::health::HealthInfo * out)140 __attribute__((warn_unused_result)) bool translate(
141         const ::android::hardware::health::V2_1::HealthInfo& in,
142         aidl::android::hardware::health::HealthInfo* out) {
143     if (!translate(in.legacy, out)) return false;
144     out->batteryCapacityLevel = static_cast<aidl::android::hardware::health::BatteryCapacityLevel>(
145             in.batteryCapacityLevel);
146     out->batteryChargeTimeToFullNowSeconds =
147             static_cast<int64_t>(in.batteryChargeTimeToFullNowSeconds);
148     out->batteryFullChargeDesignCapacityUah =
149             static_cast<int32_t>(in.batteryFullChargeDesignCapacityUah);
150     return true;
151 }
152 
153 }  // namespace android::h2a
154