Loading services/core/Android.bp +2 −2 Original line number Diff line number Diff line Loading @@ -154,8 +154,8 @@ java_library_static { "android.hardware.health-translate-java", "android.hardware.light-V1-java", "android.hardware.tv.cec-V1.1-java", "android.hardware.tv.cec-V1-java", "android.hardware.tv.hdmi-V1-java", "android.hardware.tv.hdmi.cec-V1-java", "android.hardware.tv.hdmi.connection-V1-java", "android.hardware.weaver-V1.0-java", "android.hardware.biometrics.face-V1.0-java", "android.hardware.biometrics.fingerprint-V2.3-java", Loading services/core/java/com/android/server/hdmi/HdmiCecController.java +25 −24 Original line number Diff line number Diff line Loading @@ -19,16 +19,16 @@ package com.android.server.hdmi; import android.annotation.NonNull; import android.annotation.Nullable; import android.hardware.hdmi.HdmiPortInfo; import android.hardware.tv.cec.CecMessage; import android.hardware.tv.cec.IHdmiCec; import android.hardware.tv.cec.IHdmiCecCallback; import android.hardware.tv.cec.V1_0.HotplugEvent; import android.hardware.tv.cec.V1_0.IHdmiCec.getPhysicalAddressCallback; import android.hardware.tv.cec.V1_0.OptionKey; import android.hardware.tv.cec.V1_0.Result; import android.hardware.tv.cec.V1_0.SendMessageResult; import android.hardware.tv.hdmi.IHdmi; import android.hardware.tv.hdmi.IHdmiCallback; import android.hardware.tv.hdmi.cec.CecMessage; import android.hardware.tv.hdmi.cec.IHdmiCec; import android.hardware.tv.hdmi.cec.IHdmiCecCallback; import android.hardware.tv.hdmi.connection.IHdmiConnection; import android.hardware.tv.hdmi.connection.IHdmiConnectionCallback; import android.icu.util.IllformedLocaleException; import android.icu.util.ULocale; import android.os.Binder; Loading Loading @@ -178,7 +178,7 @@ final class HdmiCecController { if (controller != null) { return controller; } HdmiLogger.warning("Unable to use CEC and HDMI AIDL HALs"); HdmiLogger.warning("Unable to use CEC and HDMI Connection AIDL HALs"); controller = createWithNativeWrapper(service, new NativeWrapperImpl11(), atomWriter); if (controller != null) { Loading Loading @@ -872,14 +872,14 @@ final class HdmiCecController { private static final class NativeWrapperImplAidl implements NativeWrapper, IBinder.DeathRecipient { private IHdmiCec mHdmiCec; private IHdmi mHdmi; private IHdmiConnection mHdmiConnection; @Nullable private HdmiCecCallback mCallback; private final Object mLock = new Object(); @Override public String nativeInit() { return connectToHal() ? mHdmiCec.toString() + " " + mHdmi.toString() : null; return connectToHal() ? mHdmiCec.toString() + " " + mHdmiConnection.toString() : null; } boolean connectToHal() { Loading @@ -896,15 +896,15 @@ final class HdmiCecController { HdmiLogger.error("Couldn't link to death : ", e); } mHdmi = IHdmi.Stub.asInterface( ServiceManager.getService(IHdmi.DESCRIPTOR + "/default")); if (mHdmi == null) { HdmiLogger.error("Could not initialize HDMI AIDL HAL"); mHdmiConnection = IHdmiConnection.Stub.asInterface( ServiceManager.getService(IHdmiConnection.DESCRIPTOR + "/default")); if (mHdmiConnection == null) { HdmiLogger.error("Could not initialize HDMI Connection AIDL HAL"); return false; } try { mHdmi.asBinder().linkToDeath(this, 0); mHdmiConnection.asBinder().linkToDeath(this, 0); } catch (RemoteException e) { HdmiLogger.error("Couldn't link to death : ", e); } Loading @@ -915,8 +915,8 @@ final class HdmiCecController { public void binderDied() { // One of the services died, try to reconnect to both. mHdmiCec.asBinder().unlinkToDeath(this, 0); mHdmi.asBinder().unlinkToDeath(this, 0); HdmiLogger.error("HDMI or CEC service died, reconnecting"); mHdmiConnection.asBinder().unlinkToDeath(this, 0); HdmiLogger.error("HDMI Connection or CEC service died, reconnecting"); connectToHal(); // Reconnect the callback if (mCallback != null) { Loading @@ -935,7 +935,7 @@ final class HdmiCecController { } try { // Create an AIDL callback that can callback onHotplugEvent mHdmi.setCallback(new HdmiCallbackAidl(callback)); mHdmiConnection.setCallback(new HdmiConnectionCallbackAidl(callback)); } catch (RemoteException e) { HdmiLogger.error("Couldn't initialise tv.hdmi callback : ", e); } Loading Loading @@ -1052,10 +1052,11 @@ final class HdmiCecController { @Override public HdmiPortInfo[] nativeGetPortInfos() { try { android.hardware.tv.hdmi.HdmiPortInfo[] hdmiPortInfos = mHdmi.getPortInfo(); android.hardware.tv.hdmi.connection.HdmiPortInfo[] hdmiPortInfos = mHdmiConnection.getPortInfo(); HdmiPortInfo[] hdmiPortInfo = new HdmiPortInfo[hdmiPortInfos.length]; int i = 0; for (android.hardware.tv.hdmi.HdmiPortInfo portInfo : hdmiPortInfos) { for (android.hardware.tv.hdmi.connection.HdmiPortInfo portInfo : hdmiPortInfos) { hdmiPortInfo[i] = new HdmiPortInfo( portInfo.portId, Loading @@ -1076,7 +1077,7 @@ final class HdmiCecController { @Override public boolean nativeIsConnected(int port) { try { return mHdmi.isConnected(port); return mHdmiConnection.isConnected(port); } catch (RemoteException e) { HdmiLogger.error("Failed to get connection info : ", e); return false; Loading Loading @@ -1580,10 +1581,10 @@ final class HdmiCecController { } } private static final class HdmiCallbackAidl extends IHdmiCallback.Stub { private static final class HdmiConnectionCallbackAidl extends IHdmiConnectionCallback.Stub { private final HdmiCecCallback mHdmiCecCallback; HdmiCallbackAidl(HdmiCecCallback hdmiCecCallback) { HdmiConnectionCallbackAidl(HdmiCecCallback hdmiCecCallback) { mHdmiCecCallback = hdmiCecCallback; } Loading @@ -1594,12 +1595,12 @@ final class HdmiCecController { @Override public synchronized String getInterfaceHash() throws android.os.RemoteException { return IHdmiCallback.Stub.HASH; return IHdmiConnectionCallback.Stub.HASH; } @Override public int getInterfaceVersion() throws android.os.RemoteException { return IHdmiCallback.Stub.VERSION; return IHdmiConnectionCallback.Stub.VERSION; } } Loading Loading
services/core/Android.bp +2 −2 Original line number Diff line number Diff line Loading @@ -154,8 +154,8 @@ java_library_static { "android.hardware.health-translate-java", "android.hardware.light-V1-java", "android.hardware.tv.cec-V1.1-java", "android.hardware.tv.cec-V1-java", "android.hardware.tv.hdmi-V1-java", "android.hardware.tv.hdmi.cec-V1-java", "android.hardware.tv.hdmi.connection-V1-java", "android.hardware.weaver-V1.0-java", "android.hardware.biometrics.face-V1.0-java", "android.hardware.biometrics.fingerprint-V2.3-java", Loading
services/core/java/com/android/server/hdmi/HdmiCecController.java +25 −24 Original line number Diff line number Diff line Loading @@ -19,16 +19,16 @@ package com.android.server.hdmi; import android.annotation.NonNull; import android.annotation.Nullable; import android.hardware.hdmi.HdmiPortInfo; import android.hardware.tv.cec.CecMessage; import android.hardware.tv.cec.IHdmiCec; import android.hardware.tv.cec.IHdmiCecCallback; import android.hardware.tv.cec.V1_0.HotplugEvent; import android.hardware.tv.cec.V1_0.IHdmiCec.getPhysicalAddressCallback; import android.hardware.tv.cec.V1_0.OptionKey; import android.hardware.tv.cec.V1_0.Result; import android.hardware.tv.cec.V1_0.SendMessageResult; import android.hardware.tv.hdmi.IHdmi; import android.hardware.tv.hdmi.IHdmiCallback; import android.hardware.tv.hdmi.cec.CecMessage; import android.hardware.tv.hdmi.cec.IHdmiCec; import android.hardware.tv.hdmi.cec.IHdmiCecCallback; import android.hardware.tv.hdmi.connection.IHdmiConnection; import android.hardware.tv.hdmi.connection.IHdmiConnectionCallback; import android.icu.util.IllformedLocaleException; import android.icu.util.ULocale; import android.os.Binder; Loading Loading @@ -178,7 +178,7 @@ final class HdmiCecController { if (controller != null) { return controller; } HdmiLogger.warning("Unable to use CEC and HDMI AIDL HALs"); HdmiLogger.warning("Unable to use CEC and HDMI Connection AIDL HALs"); controller = createWithNativeWrapper(service, new NativeWrapperImpl11(), atomWriter); if (controller != null) { Loading Loading @@ -872,14 +872,14 @@ final class HdmiCecController { private static final class NativeWrapperImplAidl implements NativeWrapper, IBinder.DeathRecipient { private IHdmiCec mHdmiCec; private IHdmi mHdmi; private IHdmiConnection mHdmiConnection; @Nullable private HdmiCecCallback mCallback; private final Object mLock = new Object(); @Override public String nativeInit() { return connectToHal() ? mHdmiCec.toString() + " " + mHdmi.toString() : null; return connectToHal() ? mHdmiCec.toString() + " " + mHdmiConnection.toString() : null; } boolean connectToHal() { Loading @@ -896,15 +896,15 @@ final class HdmiCecController { HdmiLogger.error("Couldn't link to death : ", e); } mHdmi = IHdmi.Stub.asInterface( ServiceManager.getService(IHdmi.DESCRIPTOR + "/default")); if (mHdmi == null) { HdmiLogger.error("Could not initialize HDMI AIDL HAL"); mHdmiConnection = IHdmiConnection.Stub.asInterface( ServiceManager.getService(IHdmiConnection.DESCRIPTOR + "/default")); if (mHdmiConnection == null) { HdmiLogger.error("Could not initialize HDMI Connection AIDL HAL"); return false; } try { mHdmi.asBinder().linkToDeath(this, 0); mHdmiConnection.asBinder().linkToDeath(this, 0); } catch (RemoteException e) { HdmiLogger.error("Couldn't link to death : ", e); } Loading @@ -915,8 +915,8 @@ final class HdmiCecController { public void binderDied() { // One of the services died, try to reconnect to both. mHdmiCec.asBinder().unlinkToDeath(this, 0); mHdmi.asBinder().unlinkToDeath(this, 0); HdmiLogger.error("HDMI or CEC service died, reconnecting"); mHdmiConnection.asBinder().unlinkToDeath(this, 0); HdmiLogger.error("HDMI Connection or CEC service died, reconnecting"); connectToHal(); // Reconnect the callback if (mCallback != null) { Loading @@ -935,7 +935,7 @@ final class HdmiCecController { } try { // Create an AIDL callback that can callback onHotplugEvent mHdmi.setCallback(new HdmiCallbackAidl(callback)); mHdmiConnection.setCallback(new HdmiConnectionCallbackAidl(callback)); } catch (RemoteException e) { HdmiLogger.error("Couldn't initialise tv.hdmi callback : ", e); } Loading Loading @@ -1052,10 +1052,11 @@ final class HdmiCecController { @Override public HdmiPortInfo[] nativeGetPortInfos() { try { android.hardware.tv.hdmi.HdmiPortInfo[] hdmiPortInfos = mHdmi.getPortInfo(); android.hardware.tv.hdmi.connection.HdmiPortInfo[] hdmiPortInfos = mHdmiConnection.getPortInfo(); HdmiPortInfo[] hdmiPortInfo = new HdmiPortInfo[hdmiPortInfos.length]; int i = 0; for (android.hardware.tv.hdmi.HdmiPortInfo portInfo : hdmiPortInfos) { for (android.hardware.tv.hdmi.connection.HdmiPortInfo portInfo : hdmiPortInfos) { hdmiPortInfo[i] = new HdmiPortInfo( portInfo.portId, Loading @@ -1076,7 +1077,7 @@ final class HdmiCecController { @Override public boolean nativeIsConnected(int port) { try { return mHdmi.isConnected(port); return mHdmiConnection.isConnected(port); } catch (RemoteException e) { HdmiLogger.error("Failed to get connection info : ", e); return false; Loading Loading @@ -1580,10 +1581,10 @@ final class HdmiCecController { } } private static final class HdmiCallbackAidl extends IHdmiCallback.Stub { private static final class HdmiConnectionCallbackAidl extends IHdmiConnectionCallback.Stub { private final HdmiCecCallback mHdmiCecCallback; HdmiCallbackAidl(HdmiCecCallback hdmiCecCallback) { HdmiConnectionCallbackAidl(HdmiCecCallback hdmiCecCallback) { mHdmiCecCallback = hdmiCecCallback; } Loading @@ -1594,12 +1595,12 @@ final class HdmiCecController { @Override public synchronized String getInterfaceHash() throws android.os.RemoteException { return IHdmiCallback.Stub.HASH; return IHdmiConnectionCallback.Stub.HASH; } @Override public int getInterfaceVersion() throws android.os.RemoteException { return IHdmiCallback.Stub.VERSION; return IHdmiConnectionCallback.Stub.VERSION; } } Loading