A few more APIs for HdmiControlService

Added following APIs in HdmiControlService:

- portSelect
- sendKeyEvent
- getPortInfo
- addDeviceEventListener

Some are not fleshed out yet. Will work on it in a follow up CL.

Change-Id: Ia8c635176c0378f6e8db589bf714d82bf21ce85d
diff --git a/core/java/android/hardware/hdmi/HdmiCecDeviceInfo.aidl b/core/java/android/hardware/hdmi/HdmiCecDeviceInfo.aidl
new file mode 100644
index 0000000..1615910
--- /dev/null
+++ b/core/java/android/hardware/hdmi/HdmiCecDeviceInfo.aidl
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 2014 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.hardware.hdmi;
+
+parcelable HdmiCecDeviceInfo;
diff --git a/core/java/android/hardware/hdmi/IHdmiControlService.aidl b/core/java/android/hardware/hdmi/IHdmiControlService.aidl
index 8d7c638..a0bf552 100644
--- a/core/java/android/hardware/hdmi/IHdmiControlService.aidl
+++ b/core/java/android/hardware/hdmi/IHdmiControlService.aidl
@@ -16,10 +16,14 @@
 
 package android.hardware.hdmi;
 
-import android.hardware.hdmi.HdmiCecMessage;
+import android.hardware.hdmi.HdmiCecDeviceInfo;
+import android.hardware.hdmi.HdmiPortInfo;
 import android.hardware.hdmi.IHdmiControlCallback;
+import android.hardware.hdmi.IHdmiDeviceEventListener;
 import android.hardware.hdmi.IHdmiHotplugEventListener;
 
+import java.util.List;
+
 /**
  * Binder interface that clients running in the application process
  * will use to perform HDMI-CEC features by communicating with other devices
@@ -33,5 +37,9 @@
     void queryDisplayStatus(IHdmiControlCallback callback);
     void addHotplugEventListener(IHdmiHotplugEventListener listener);
     void removeHotplugEventListener(IHdmiHotplugEventListener listener);
+    void addDeviceEventListener(IHdmiDeviceEventListener listener);
     void deviceSelect(int logicalAddress, IHdmiControlCallback callback);
+    void portSelect(int portId, IHdmiControlCallback callback);
+    void sendKeyEvent(int keyCode);
+    List<HdmiPortInfo> getPortInfo();
 }
diff --git a/core/java/android/hardware/hdmi/IHdmiDeviceEventListener.aidl b/core/java/android/hardware/hdmi/IHdmiDeviceEventListener.aidl
new file mode 100644
index 0000000..c4e5989
--- /dev/null
+++ b/core/java/android/hardware/hdmi/IHdmiDeviceEventListener.aidl
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2014 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.hardware.hdmi;
+
+import android.hardware.hdmi.HdmiCecDeviceInfo;
+
+/**
+ * Callback interface definition for HDMI client to get informed of
+ * the CEC logical device status change event.
+ *
+ * @hide
+ */
+oneway interface IHdmiDeviceEventListener {
+
+    /**
+     * @param deviceInfo {@link HdmiCecDeviceInfo} of the logical device whose
+     *                   status has changed
+     * @param activated true if the device gets activated
+     */
+    void onStatusChanged(in HdmiCecDeviceInfo deviceInfo, in boolean activated);
+}