178d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim/* 278d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * Copyright (C) 2014 The Android Open Source Project 378d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * 478d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * Licensed under the Apache License, Version 2.0 (the "License"); 578d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * you may not use this file except in compliance with the License. 678d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * You may obtain a copy of the License at 778d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * 878d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * http://www.apache.org/licenses/LICENSE-2.0 978d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * 1078d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * Unless required by applicable law or agreed to in writing, software 1178d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * distributed under the License is distributed on an "AS IS" BASIS, 1278d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1378d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * See the License for the specific language governing permissions and 1478d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * limitations under the License. 1578d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim */ 1678d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim 1778d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kimpackage android.hardware.hdmi; 1878d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim 1966d1eb285b129836d1b3c392ed609283c0dbf830Jinsuk Kimimport android.annotation.SystemApi; 2078d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kimimport android.os.Parcel; 2178d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kimimport android.os.Parcelable; 2278d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim 2378d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim/** 2478d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * A class that describes the HDMI port hotplug event. 2566d1eb285b129836d1b3c392ed609283c0dbf830Jinsuk Kim * 2666d1eb285b129836d1b3c392ed609283c0dbf830Jinsuk Kim * @hide 2778d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim */ 2866d1eb285b129836d1b3c392ed609283c0dbf830Jinsuk Kim@SystemApi 2978d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kimpublic final class HdmiHotplugEvent implements Parcelable { 3078d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim 3178d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim private final int mPort; 3278d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim private final boolean mConnected; 3378d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim 3478d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim /** 3578d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * Constructor. 3678d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * 3778d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * <p>Marked as hidden so only system can create the instance. 3878d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * 3978d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * @hide 4078d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim */ 4178d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim public HdmiHotplugEvent(int port, boolean connected) { 4278d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim mPort = port; 4378d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim mConnected = connected; 4478d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim } 4578d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim 4678d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim /** 472b0da5c4c84305f1d391dc78b85e244c9fd92456Yuncheol Heo * Returns the port number for which the event occurred. 4878d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * 4978d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * @return port number 5078d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim */ 5178d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim public int getPort() { 5278d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim return mPort; 5378d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim } 5478d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim 5578d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim /** 562b0da5c4c84305f1d391dc78b85e244c9fd92456Yuncheol Heo * Returns the connection status associated with this event 5778d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * 5878d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * @return true if the device gets connected; otherwise false 5978d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim */ 6078d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim public boolean isConnected() { 6178d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim return mConnected; 6278d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim } 6378d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim 6478d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim /** 652b0da5c4c84305f1d391dc78b85e244c9fd92456Yuncheol Heo * Describes the kinds of special objects contained in this Parcelable's 6678d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * marshalled representation. 6778d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim */ 6878d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim @Override 6978d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim public int describeContents() { 7078d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim return 0; 7178d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim } 7278d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim 7378d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim /** 742b0da5c4c84305f1d391dc78b85e244c9fd92456Yuncheol Heo * Flattens this object in to a Parcel. 7578d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * 7678d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * @param dest The Parcel in which the object should be written. 7778d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * @param flags Additional flags about how the object should be written. 7878d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * May be 0 or {@link Parcelable#PARCELABLE_WRITE_RETURN_VALUE}. 7978d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim */ 8078d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim @Override 8178d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim public void writeToParcel(Parcel dest, int flags) { 8278d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim dest.writeInt(mPort); 8378d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim dest.writeByte((byte) (mConnected ? 1 : 0)); 8478d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim } 8578d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim 8678d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim public static final Parcelable.Creator<HdmiHotplugEvent> CREATOR 8778d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim = new Parcelable.Creator<HdmiHotplugEvent>() { 8878d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim /** 892b0da5c4c84305f1d391dc78b85e244c9fd92456Yuncheol Heo * Rebuilds a {@link HdmiHotplugEvent} previously stored with 9078d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * {@link Parcelable#writeToParcel(Parcel, int)}. 9178d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * 9278d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * @param p {@link HdmiHotplugEvent} object to read the Rating from 9378d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim * @return a new {@link HdmiHotplugEvent} created from the data in the parcel 9478d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim */ 952b0da5c4c84305f1d391dc78b85e244c9fd92456Yuncheol Heo @Override 9678d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim public HdmiHotplugEvent createFromParcel(Parcel p) { 9778d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim int port = p.readInt(); 9878d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim boolean connected = p.readByte() == 1; 9978d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim return new HdmiHotplugEvent(port, connected); 10078d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim } 1012b0da5c4c84305f1d391dc78b85e244c9fd92456Yuncheol Heo @Override 10278d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim public HdmiHotplugEvent[] newArray(int size) { 10378d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim return new HdmiHotplugEvent[size]; 10478d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim } 10578d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim }; 10678d695d8ba532214b02e7f18e0ccf89cf099163dJinsuk Kim} 107