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

Commit 75ed0a20 authored by Aaron Kling's avatar Aaron Kling Committed by Rashed Abdel-Tawab
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 a0c71e49
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -402,6 +402,7 @@ java_library {
        "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