summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Wonsik Kim <wonsik@google.com> 2014-06-19 01:59:11 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2014-06-17 22:26:08 +0000
commite8aa6f815c6b9bf9e69f72d706c7cbef58b82aa8 (patch)
tree74c01e54bae2e7496dd74866eeb8cf5976a906d2
parentf752ed40cbc88ae8240c6dcd57c166982d8e6d92 (diff)
parenta358b53e1d0bb7a7fc08b0a4d2a2e256f3045859 (diff)
Merge "TvInputHardware: Add HDMI port ID"
-rw-r--r--media/java/android/media/tv/TvInputHardwareInfo.java28
-rw-r--r--services/core/jni/com_android_server_tv_TvInputHal.cpp9
2 files changed, 36 insertions, 1 deletions
diff --git a/media/java/android/media/tv/TvInputHardwareInfo.java b/media/java/android/media/tv/TvInputHardwareInfo.java
index 5a45c7bd52dc..e5f9889aca61 100644
--- a/media/java/android/media/tv/TvInputHardwareInfo.java
+++ b/media/java/android/media/tv/TvInputHardwareInfo.java
@@ -59,7 +59,7 @@ public final class TvInputHardwareInfo implements Parcelable {
private int mType;
private int mAudioType;
private String mAudioAddress;
- // TODO: Add HDMI handle for HDMI service.
+ private int mHdmiPortId;
private TvInputHardwareInfo() {
}
@@ -80,6 +80,13 @@ public final class TvInputHardwareInfo implements Parcelable {
return mAudioAddress;
}
+ public int getHdmiPortId() {
+ if (mType != TV_INPUT_TYPE_HDMI) {
+ throw new IllegalStateException();
+ }
+ return mHdmiPortId;
+ }
+
// Parcelable
@Override
public int describeContents() {
@@ -92,6 +99,9 @@ public final class TvInputHardwareInfo implements Parcelable {
dest.writeInt(mType);
dest.writeInt(mAudioType);
dest.writeString(mAudioAddress);
+ if (mType == TV_INPUT_TYPE_HDMI) {
+ dest.writeInt(mHdmiPortId);
+ }
}
public void readFromParcel(Parcel source) {
@@ -99,6 +109,9 @@ public final class TvInputHardwareInfo implements Parcelable {
mType = source.readInt();
mAudioType = source.readInt();
mAudioAddress = source.readString();
+ if (mType == TV_INPUT_TYPE_HDMI) {
+ mHdmiPortId = source.readInt();
+ }
}
public static final class Builder {
@@ -106,6 +119,7 @@ public final class TvInputHardwareInfo implements Parcelable {
private Integer mType = null;
private int mAudioType = AudioManager.DEVICE_NONE;
private String mAudioAddress = "";
+ private Integer mHdmiPortId = null;
public Builder() {
}
@@ -130,10 +144,19 @@ public final class TvInputHardwareInfo implements Parcelable {
return this;
}
+ public Builder hdmiPortId(int hdmiPortId) {
+ mHdmiPortId = hdmiPortId;
+ return this;
+ }
+
public TvInputHardwareInfo build() {
if (mDeviceId == null || mType == null) {
throw new UnsupportedOperationException();
}
+ if ((mType == TV_INPUT_TYPE_HDMI && mHdmiPortId == null) ||
+ (mType != TV_INPUT_TYPE_HDMI && mHdmiPortId != null)) {
+ throw new UnsupportedOperationException();
+ }
TvInputHardwareInfo info = new TvInputHardwareInfo();
info.mDeviceId = mDeviceId;
@@ -142,6 +165,9 @@ public final class TvInputHardwareInfo implements Parcelable {
if (info.mAudioType != AudioManager.DEVICE_NONE) {
info.mAudioAddress = mAudioAddress;
}
+ if (mHdmiPortId != null) {
+ info.mHdmiPortId = mHdmiPortId;
+ }
return info;
}
}
diff --git a/services/core/jni/com_android_server_tv_TvInputHal.cpp b/services/core/jni/com_android_server_tv_TvInputHal.cpp
index 9a651e238543..9cecdf0612d9 100644
--- a/services/core/jni/com_android_server_tv_TvInputHal.cpp
+++ b/services/core/jni/com_android_server_tv_TvInputHal.cpp
@@ -60,6 +60,7 @@ static struct {
jmethodID constructor;
jmethodID deviceId;
jmethodID type;
+ jmethodID hdmiPortId;
jmethodID audioType;
jmethodID audioAddress;
jmethodID build;
@@ -250,6 +251,10 @@ void JTvInputHal::onDeviceAvailable(const tv_input_device_info_t& info) {
builder, gTvInputHardwareInfoBuilderClassInfo.deviceId, info.device_id);
env->CallObjectMethod(
builder, gTvInputHardwareInfoBuilderClassInfo.type, info.type);
+ if (info.type == TV_INPUT_TYPE_HDMI) {
+ env->CallObjectMethod(
+ builder, gTvInputHardwareInfoBuilderClassInfo.hdmiPortId, info.hdmi.port_id);
+ }
env->CallObjectMethod(
builder, gTvInputHardwareInfoBuilderClassInfo.audioType, info.audio_type);
if (info.audio_type != AUDIO_DEVICE_NONE) {
@@ -432,6 +437,10 @@ int register_android_server_tv_TvInputHal(JNIEnv* env) {
gTvInputHardwareInfoBuilderClassInfo.clazz,
"type", "(I)Landroid/media/tv/TvInputHardwareInfo$Builder;");
GET_METHOD_ID(
+ gTvInputHardwareInfoBuilderClassInfo.hdmiPortId,
+ gTvInputHardwareInfoBuilderClassInfo.clazz,
+ "hdmiPortId", "(I)Landroid/media/tv/TvInputHardwareInfo$Builder;");
+ GET_METHOD_ID(
gTvInputHardwareInfoBuilderClassInfo.audioType,
gTvInputHardwareInfoBuilderClassInfo.clazz,
"audioType", "(I)Landroid/media/tv/TvInputHardwareInfo$Builder;");