Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 51d126e0 authored by Aaron Kling's avatar Aaron Kling
Browse files

Add nvcpl hook interfaces

NvCPL works in conjunction with the PowerHAL in order to adjust various
performance knobs based on the app or device specific profiles.

Change-Id: I4953cbb96d729dbe0cee6d7071b5933586770330
parent c7c48b01
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -456,6 +456,7 @@ java_defaults {
        "core/java/com/android/internal/widget/ICheckCredentialProgressCallback.aidl",
        "core/java/com/android/internal/widget/ILockSettings.aidl",
        "core/java/com/android/internal/widget/IRemoteViewsFactory.aidl",
        "core/java/com/nvidia/NvCPLSvc/INvCPLRemoteService.aidl",
        "keystore/java/android/security/IKeyChainAliasCallback.aidl",
        "keystore/java/android/security/IKeyChainService.aidl",
        "location/java/android/location/IBatchedLocationCallback.aidl",
+27 −0
Original line number Diff line number Diff line
package com.nvidia.NvCPLSvc;

import android.content.Intent;
import java.util.List;

import com.nvidia.NvCPLSvc.NvAppProfile;
import com.nvidia.NvCPLSvc.NvSaverAppInfo;

/** @hide */
interface INvCPLRemoteService {
    IBinder getToolsApiInterface(String str);
    String getAppProfileSettingString(String pkgName, int settingId);
    int getAppProfileSettingInt(String pkgName, int settingId);
    int getAppProfileSettingBoolean(String pkgName, int settingId);
    byte[] getAppProfileSetting3DVStruct(String pkgName);
    void handleIntent(in Intent intent);
    boolean setNvSaverAppInfo(String pkgName, int list);
    boolean setNvSaverAppInfoAll(in List<NvSaverAppInfo> appList);
    List<NvSaverAppInfo> getNvSaverAppInfo(int i);
    boolean setAppProfileSetting(String packageName, int typeId, int settingId, String value);
    int getActiveProfileType(String packageName);
    int[] getProfileTypes(String str);
    boolean setActiveProfileType(String packageName, int typeId);
    NvAppProfile[] getAppProfiles(in String[] strArr);
    String getDeviceSerial();
    void powerHint(String str);
}
+2 −0
Original line number Diff line number Diff line
package com.nvidia.NvCPLSvc;
parcelable NvAppProfile;
+65 −0
Original line number Diff line number Diff line
package com.nvidia.NvCPLSvc;

import android.net.ProxyInfo;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.SparseArray;

public class NvAppProfile implements Parcelable {
    public static final Creator<NvAppProfile> CREATOR = new Creator<NvAppProfile>() {
        public NvAppProfile createFromParcel(Parcel parcel) {
            return NvAppProfile.createFromParcel(parcel);
        }

        public NvAppProfile[] newArray(int size) {
            return new NvAppProfile[size];
        }
    };
    public final String pkgName;
    public final String pkgVersion;
    public final int typeId;
    public SparseArray<String> settings;

    public NvAppProfile(int typeId, String pkgName, String pkgVersion,
            SparseArray<String> settings) {
        this.typeId = typeId;
        this.pkgName = pkgName;
        this.pkgVersion = pkgVersion;
        this.settings = settings;
    }

    private static NvAppProfile createFromParcel(Parcel parcel) {
        int typeId = parcel.readInt();
        String pkgName = decodeNull(parcel.readString());
        String pkgVersion = decodeNull(parcel.readString());
        int numSettings = parcel.readInt();
        SparseArray<String> settings = new SparseArray();
        for (int i = 0; i < numSettings; i++) {
            settings.append(parcel.readInt(), parcel.readString());
        }
        return new NvAppProfile(typeId, pkgName, pkgVersion, settings);
    }

    private static String encodeNull(String string) {
        return string != null ? string : ProxyInfo.LOCAL_EXCL_LIST;
    }

    private static String decodeNull(String string) {
        return !string.equals(ProxyInfo.LOCAL_EXCL_LIST) ? string : null;
    }

    public int describeContents() {
        return 0;
    }

    public void writeToParcel(Parcel parcel, int flag) {
        parcel.writeInt(this.typeId);
        parcel.writeString(encodeNull(this.pkgName));
        parcel.writeString(encodeNull(this.pkgVersion));
        parcel.writeInt(this.settings.size());
        for (int i = 0; i < this.settings.size(); i++) {
            parcel.writeInt(this.settings.keyAt(i));
            parcel.writeString((String) this.settings.valueAt(i));
        }
    }
}
+2 −0
Original line number Diff line number Diff line
package com.nvidia.NvCPLSvc;
parcelable NvSaverAppInfo;
Loading