/*
 * 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.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;

A class to encapsulate HDMI port information. Contains the capability of the ports such as HDMI-CEC, MHL, ARC(Audio Return Channel), and physical address assigned to each port.
@hide
/** * A class to encapsulate HDMI port information. Contains the capability of the ports such as * HDMI-CEC, MHL, ARC(Audio Return Channel), and physical address assigned to each port. * * @hide */
@SystemApi public final class HdmiPortInfo implements Parcelable {
HDMI port type: Input
/** HDMI port type: Input */
public static final int PORT_INPUT = 0;
HDMI port type: Output
/** HDMI port type: Output */
public static final int PORT_OUTPUT = 1; private final int mId; private final int mType; private final int mAddress; private final boolean mCecSupported; private final boolean mArcSupported; private final boolean mMhlSupported;
Constructor.
Params:
  • id – identifier assigned to each port. 1 for HDMI port 1
  • type – HDMI port input/output type
  • address – physical address of the port
  • cec – true if HDMI-CEC is supported on the port
  • mhl – true if MHL is supported on the port
  • arc – true if audio return channel is supported on the port
/** * Constructor. * * @param id identifier assigned to each port. 1 for HDMI port 1 * @param type HDMI port input/output type * @param address physical address of the port * @param cec {@code true} if HDMI-CEC is supported on the port * @param mhl {@code true} if MHL is supported on the port * @param arc {@code true} if audio return channel is supported on the port */
public HdmiPortInfo(int id, int type, int address, boolean cec, boolean mhl, boolean arc) { mId = id; mType = type; mAddress = address; mCecSupported = cec; mArcSupported = arc; mMhlSupported = mhl; }
Returns the port id.
Returns:port id
/** * Returns the port id. * * @return port id */
public int getId() { return mId; }
Returns the port type.
Returns:port type
/** * Returns the port type. * * @return port type */
public int getType() { return mType; }
Returns the port address.
Returns:port address
/** * Returns the port address. * * @return port address */
public int getAddress() { return mAddress; }
Returns true if the port supports HDMI-CEC signaling.
Returns:true if the port supports HDMI-CEC signaling.
/** * Returns {@code true} if the port supports HDMI-CEC signaling. * * @return {@code true} if the port supports HDMI-CEC signaling. */
public boolean isCecSupported() { return mCecSupported; }
Returns true if the port supports MHL signaling.
Returns:true if the port supports MHL signaling.
/** * Returns {@code true} if the port supports MHL signaling. * * @return {@code true} if the port supports MHL signaling. */
public boolean isMhlSupported() { return mMhlSupported; }
Returns true if the port supports audio return channel.
Returns:true if the port supports audio return channel
/** * Returns {@code true} if the port supports audio return channel. * * @return {@code true} if the port supports audio return channel */
public boolean isArcSupported() { return mArcSupported; }
Describes the kinds of special objects contained in this Parcelable's marshalled representation.
/** * Describes the kinds of special objects contained in this Parcelable's * marshalled representation. */
@Override public int describeContents() { return 0; }
A helper class to deserialize HdmiPortInfo for a parcel.
/** * A helper class to deserialize {@link HdmiPortInfo} for a parcel. */
public static final Parcelable.Creator<HdmiPortInfo> CREATOR = new Parcelable.Creator<HdmiPortInfo>() { @Override public HdmiPortInfo createFromParcel(Parcel source) { int id = source.readInt(); int type = source.readInt(); int address = source.readInt(); boolean cec = (source.readInt() == 1); boolean arc = (source.readInt() == 1); boolean mhl = (source.readInt() == 1); return new HdmiPortInfo(id, type, address, cec, mhl, arc); } @Override public HdmiPortInfo[] newArray(int size) { return new HdmiPortInfo[size]; } };
Serializes this object into a Parcel.
Params:
/** * Serializes this object into a {@link Parcel}. * * @param dest The Parcel in which the object should be written. * @param flags Additional flags about how the object should be written. * May be 0 or {@link Parcelable#PARCELABLE_WRITE_RETURN_VALUE}. */
@Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mId); dest.writeInt(mType); dest.writeInt(mAddress); dest.writeInt(mCecSupported ? 1 : 0); dest.writeInt(mArcSupported ? 1 : 0); dest.writeInt(mMhlSupported ? 1 : 0); } @Override public String toString() { StringBuffer s = new StringBuffer(); s.append("port_id: ").append(mId).append(", "); s.append("address: ").append(String.format("0x%04x", mAddress)).append(", "); s.append("cec: ").append(mCecSupported).append(", "); s.append("arc: ").append(mArcSupported).append(", "); s.append("mhl: ").append(mMhlSupported); return s.toString(); } @Override public boolean equals(Object o) { if (!(o instanceof HdmiPortInfo)) { return false; } final HdmiPortInfo other = (HdmiPortInfo) o; return mId == other.mId && mType == other.mType && mAddress == other.mAddress && mCecSupported == other.mCecSupported && mArcSupported == other.mArcSupported && mMhlSupported == other.mMhlSupported; } }