diff options
| -rw-r--r-- | Android.mk | 2 | ||||
| -rw-r--r-- | core/java/android/os/IThermalEventListener.aidl | 32 | ||||
| -rw-r--r-- | core/java/android/os/IThermalService.aidl | 51 | ||||
| -rw-r--r-- | core/java/android/os/Temperature.aidl | 19 | ||||
| -rw-r--r-- | core/java/android/os/Temperature.java | 101 |
5 files changed, 205 insertions, 0 deletions
diff --git a/Android.mk b/Android.mk index 960f86804529..1e6041f06838 100644 --- a/Android.mk +++ b/Android.mk @@ -269,6 +269,8 @@ LOCAL_SRC_FILES += \ core/java/android/os/IRecoverySystemProgressListener.aidl \ core/java/android/os/IRemoteCallback.aidl \ core/java/android/os/ISchedulingPolicyService.aidl \ + core/java/android/os/IThermalEventListener.aidl \ + core/java/android/os/IThermalService.aidl \ core/java/android/os/IUpdateLock.aidl \ core/java/android/os/IUserManager.aidl \ core/java/android/os/IVibratorService.aidl \ diff --git a/core/java/android/os/IThermalEventListener.aidl b/core/java/android/os/IThermalEventListener.aidl new file mode 100644 index 000000000000..9a6de605c597 --- /dev/null +++ b/core/java/android/os/IThermalEventListener.aidl @@ -0,0 +1,32 @@ +/* +** Copyright 2017, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + +package android.os; + +import android.os.Temperature; + +/** + * Listener for thermal events. + * {@hide} + */ +oneway interface IThermalEventListener { + /** + * Called when a thermal throttling start/stop event is received. + * @param temperature the temperature at which the event was generated. + */ + void notifyThrottling( + in boolean isThrottling, in Temperature temperature); +} diff --git a/core/java/android/os/IThermalService.aidl b/core/java/android/os/IThermalService.aidl new file mode 100644 index 000000000000..e388edaa5441 --- /dev/null +++ b/core/java/android/os/IThermalService.aidl @@ -0,0 +1,51 @@ +/* +** Copyright 2017, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + +package android.os; + +import android.os.IThermalEventListener; +import android.os.Temperature; + +/** + * {@hide} + */ +interface IThermalService { + /** + * Register a listener for thermal events. + * @param listener the IThermalEventListener to be notified. + * {@hide} + */ + void registerThermalEventListener(in IThermalEventListener listener); + /** + * Unregister a previously-registered listener for thermal events. + * @param listener the IThermalEventListener to no longer be notified. + * {@hide} + */ + void unregisterThermalEventListener(in IThermalEventListener listener); + /** + * Send a thermal throttling start/stop notification to all listeners. + * @param temperature the temperature at which the event was generated. + * {@hide} + */ + oneway void notifyThrottling( + in boolean isThrottling, in Temperature temperature); + /** + * Return whether system performance is currently thermal throttling. + * @return true if thermal throttling is currently in effect + * {@hide} + */ + boolean isThrottling(); +} diff --git a/core/java/android/os/Temperature.aidl b/core/java/android/os/Temperature.aidl new file mode 100644 index 000000000000..708c08fbe8b0 --- /dev/null +++ b/core/java/android/os/Temperature.aidl @@ -0,0 +1,19 @@ +/* +** Copyright 2017, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + +package android.os; + +parcelable Temperature; diff --git a/core/java/android/os/Temperature.java b/core/java/android/os/Temperature.java new file mode 100644 index 000000000000..3e48493a7a81 --- /dev/null +++ b/core/java/android/os/Temperature.java @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.os; + +/** + * Temperature values used by IThermalService. + */ + +/** + * @hide + */ +public class Temperature implements Parcelable { + /* Temperature value */ + private float mValue; + /* A temperature type from HardwarePropertiesManager */ + private int mType; + + public Temperature() { + mType = Integer.MIN_VALUE; + mValue = HardwarePropertiesManager.UNDEFINED_TEMPERATURE; + } + + public Temperature(float value, int type) { + mValue = value; + mType = type; + } + + /** + * Return the temperature value. + * @return a temperature value in floating point. + */ + public float getValue() { + return mValue; + } + + /** + * Return the temperature type. + * @return a temperature type: + * HardwarePropertiesManager.DEVICE_TEMPERATURE_CPU, etc. + */ + public int getType() { + return mType; + } + + /* + * Parcel read/write code must be kept in sync with + * frameworks/native/services/thermalservice/aidl/android/os/ + * Temperature.cpp + */ + + private Temperature(Parcel p) { + readFromParcel(p); + } + + /** + * Fill in Temperature members from a Parcel. + * @param p the parceled Temperature object. + */ + public void readFromParcel(Parcel p) { + mValue = p.readFloat(); + mType = p.readInt(); + } + + @Override + public void writeToParcel(Parcel p, int flags) { + p.writeFloat(mValue); + p.writeInt(mType); + } + + public static final Parcelable.Creator<Temperature> CREATOR = + new Parcelable.Creator<Temperature>() { + @Override + public Temperature createFromParcel(Parcel p) { + return new Temperature(p); + } + + @Override + public Temperature[] newArray(int size) { + return new Temperature[size]; + } + }; + + @Override + public int describeContents() { + return 0; + } +} |