112e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang/* 212e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * Copyright (C) 2014 The Android Open Source Project 312e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * 412e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * Licensed under the Apache License, Version 2.0 (the "License"); 512e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * you may not use this file except in compliance with the License. 612e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * You may obtain a copy of the License at 712e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * 812e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * http://www.apache.org/licenses/LICENSE-2.0 912e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * 1012e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * Unless required by applicable law or agreed to in writing, software 1112e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * distributed under the License is distributed on an "AS IS" BASIS, 1212e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1312e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * See the License for the specific language governing permissions and 1412e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * limitations under the License. 1512e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang */ 1612e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang 1712e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jangpackage android.hardware.hdmi; 1812e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang 1912e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jangimport android.annotation.SystemApi; 2012e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jangimport android.hardware.hdmi.HdmiRecordSources.RecordSource; 2112e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang 2212e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang/** 2312e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * Listener for hdmi record feature including one touch record and timer recording. 2412e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * @hide 2512e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang */ 2612e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang@SystemApi 2712e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jangpublic abstract class HdmiRecordListener { 282b0da5c4c84305f1d391dc78b85e244c9fd92456Yuncheol Heo public HdmiRecordListener() {} 2912e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang 3012e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang /** 3112e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * Called when TV received one touch record request from record device. The client of this 3212e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * should use {@link HdmiRecordSources} to return it. 3312e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * 3412e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * @param recorderAddress 3512e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * @return record source to be used for recording. Null if no device is available. 3612e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang */ 372b0da5c4c84305f1d391dc78b85e244c9fd92456Yuncheol Heo public abstract RecordSource onOneTouchRecordSourceRequested(int recorderAddress); 3812e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang 3912e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang /** 4012e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * Called when one touch record is started or failed during initialization. 4112e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * 42326aef0c9402742e29c4503c857f93e75cf9a6ecJungshik Jang * @param recorderAddress An address of recorder that reports result of one touch record 43326aef0c9402742e29c4503c857f93e75cf9a6ecJungshik Jang * request 4412e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * @param result result code. For more details, please look at all constants starting with 4512e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * "ONE_TOUCH_RECORD_". Only 4612e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * {@link HdmiControlManager#ONE_TOUCH_RECORD_RECORDING_CURRENTLY_SELECTED_SOURCE}, 4712e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * {@link HdmiControlManager#ONE_TOUCH_RECORD_RECORDING_DIGITAL_SERVICE}, 4812e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * {@link HdmiControlManager#ONE_TOUCH_RECORD_RECORDING_ANALOGUE_SERVICE}, and 4912e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * {@link HdmiControlManager#ONE_TOUCH_RECORD_RECORDING_EXTERNAL_INPUT} mean normal 5012e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * start of recording; otherwise, describes failure. 5112e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang */ 52326aef0c9402742e29c4503c857f93e75cf9a6ecJungshik Jang public void onOneTouchRecordResult(int recorderAddress, int result) { 5312e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang } 5412e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang 5512e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang /** 5612e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * Called when timer recording is started or failed during initialization. 5712e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang * 58326aef0c9402742e29c4503c857f93e75cf9a6ecJungshik Jang * @param recorderAddress An address of recorder that reports result of timer recording 59326aef0c9402742e29c4503c857f93e75cf9a6ecJungshik Jang * request 60e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * @param data timer status data. For more details, look at {@link TimerStatusData}. 6112e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang */ 62326aef0c9402742e29c4503c857f93e75cf9a6ecJungshik Jang public void onTimerRecordingResult(int recorderAddress, TimerStatusData data) { 63e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang } 64e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang 65e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang /** 66e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * [Timer overlap warning] [Media Info] [Timer Programmed Info] 67e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * @hide 68e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang */ 69e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang @SystemApi 70e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang public static class TimerStatusData { 71e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang private boolean mOverlapped; 72e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang private int mMediaInfo; 73e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang private boolean mProgrammed; 74e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang 75e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang private int mProgrammedInfo; 76e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang private int mNotProgrammedError; 77e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang private int mDurationHour; 78e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang private int mDurationMinute; 79e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang 80e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang private int mExtraError; 81e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang 82e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang static TimerStatusData parseFrom(int result) { 83e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang TimerStatusData data = new TimerStatusData(); 84e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang // Timer Overlap Warning - 1 bit 85e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang data.mOverlapped = ((result >> 31) & 0x1) != 0; 86e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang // Media Info - 2 bits; 87e9e0f070e34a612fb3bab5d97bdec1e266da4a20Jungshik Jang data.mMediaInfo = (result >> 29) & 0x3; 88e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang // Programmed Indicator - 1 bit; 89e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang data.mProgrammed = ((result >> 28) & 0x1) != 0; 90e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang if (data.mProgrammed) { 91e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang data.mProgrammedInfo = (result >> 24) & 0xF; 92e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang data.mDurationHour = bcdByteToInt((byte) ((result >> 16) & 0xFF)); 93e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang data.mDurationMinute = bcdByteToInt((byte) ((result >> 8) & 0xFF)); 94e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang } else { 95e9e0f070e34a612fb3bab5d97bdec1e266da4a20Jungshik Jang // Programmed Info - 4 bits 96e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang data.mNotProgrammedError = (result >> 24) & 0xF; 97e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang data.mDurationHour = bcdByteToInt((byte) ((result >> 16) & 0xFF)); 98e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang data.mDurationMinute = bcdByteToInt((byte) ((result >> 8) & 0xFF)); 99e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang } 100e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang 101e9e0f070e34a612fb3bab5d97bdec1e266da4a20Jungshik Jang // The last byte is used for extra error. 102e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang data.mExtraError = result & 0xFF; 103e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang return data; 104e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang } 105e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang 106e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang // Most significant 4 bits is used for 10 digits and 107e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang // Least significant 4 bits is used for 1 digits. 108e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang private static int bcdByteToInt(byte value) { 109e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang return ((value >> 4) & 0xF) * 10 + value & 0xF; 110e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang } 111e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang 112e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang private TimerStatusData() {} 113e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang 114e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang /** 115e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * Indicates if there is another timer block already set which overlaps with this new 116e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * recording request. 117e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang */ 118e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang public boolean isOverlapped() { 119e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang return mOverlapped; 120e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang } 121e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang 122e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang /** 123e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * Indicates if removable media is present and its write protect state. 124e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * It should be one of the following values. 125e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <ul> 126e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_STATUS_MEDIA_INFO_PRESENT_NOT_PROTECTED} 127e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_STATUS_MEDIA_INFO_PRESENT_PROTECTED} 128e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_STATUS_MEDIA_INFO_NOT_PRESENT} 129e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * </ul> 130e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang */ 131e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang public int getMediaInfo() { 132e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang return mMediaInfo; 133e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang } 134e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang 135e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang /** 136e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * Selector for [Timer Programmed Info]. 137e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * If it is {@code true}, {@link #getProgrammedInfo()} would have meaningful value and 138e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * ignore result of {@link #getNotProgammedError()}. 139e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang */ 140e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang public boolean isProgrammed() { 141e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang return mProgrammed; 142e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang } 143e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang 144e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang /** 145e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * Information indicating any non-fatal issues with the programming request. 146e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * It's set only if {@link #isProgrammed()} returns true. 147e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * It should be one of the following values. 148e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <ul> 149e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_STATUS_PROGRAMMED_INFO_ENOUGH_SPACE} 150e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_STATUS_PROGRAMMED_INFO_NOT_ENOUGH_SPACE} 151e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_STATUS_PROGRAMMED_INFO_MIGHT_NOT_ENOUGH_SPACE} 152e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_STATUS_PROGRAMMED_INFO_NO_MEDIA_INFO} 153e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * </ul> 154e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * 155f406cc3442b100e516298318a09af4a42f6bb33aJungshik Jang * @throws IllegalStateException if it's called when {@link #isProgrammed()} 156f406cc3442b100e516298318a09af4a42f6bb33aJungshik Jang * returns false 157e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang */ 158e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang public int getProgrammedInfo() { 159e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang if (!isProgrammed()) { 160e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang throw new IllegalStateException( 161e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang "No programmed info. Call getNotProgammedError() instead."); 162e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang } 163e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang return mProgrammedInfo; 164e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang } 165e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang 166e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang /** 167e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * Information indicating any fatal issues with the programming request. 168e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * It's set only if {@link #isProgrammed()} returns false. 169e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * it should be one of the following values. 170e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <ul> 171e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_STATUS_NOT_PROGRAMMED_NO_FREE_TIME} 172e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_STATUS_NOT_PROGRAMMED_DATE_OUT_OF_RANGE} 173e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_STATUS_NOT_PROGRAMMED_INVALID_SEQUENCE} 174e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_STATUS_NOT_PROGRAMMED_INVALID_EXTERNAL_PHYSICAL_NUMBER} 175e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_STATUS_NOT_PROGRAMMED_CA_NOT_SUPPORTED} 176e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_STATUS_NOT_PROGRAMMED_NO_CA_ENTITLEMENTS} 177e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_STATUS_NOT_PROGRAMMED_UNSUPPORTED_RESOLUTION} 178e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_STATUS_NOT_PROGRAMMED_PARENTAL_LOCK_ON} 179e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_STATUS_NOT_PROGRAMMED_CLOCK_FAILURE} 180e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_STATUS_NOT_PROGRAMMED_DUPLICATED} 181e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * </ul> 182e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * 183f406cc3442b100e516298318a09af4a42f6bb33aJungshik Jang * @throws IllegalStateException if it's called when {@link #isProgrammed()} 184f406cc3442b100e516298318a09af4a42f6bb33aJungshik Jang * returns true 185e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang */ 186e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang public int getNotProgammedError() { 187e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang if (isProgrammed()) { 188e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang throw new IllegalStateException( 189e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang "Has no not-programmed error. Call getProgrammedInfo() instead."); 190e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang } 191e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang return mNotProgrammedError; 192e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang } 193e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang 194e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang /** 195e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * Duration hours. 196e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * Optional parameter: Contains an estimate of the space left on the media, expressed as a 197e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * time. This parameter may be returned when: 198e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * - [Programmed Info] is “Not enough space available”; or 199e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * - [Not Programmed Info] is “Duplicate: already programmed” 200e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang */ 201e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang public int getDurationHour() { 202e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang return mDurationHour; 203e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang } 204e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang 205e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang /** 206e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * Duration minutes. 207e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * Optional parameter: Contains an estimate of the space left on the media, expressed as a 208e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * time. This parameter may be returned when: 209e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * - [Programmed Info] is “Not enough space available”; or 210e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * - [Not Programmed Info] is “Duplicate: already programmed” 211e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang */ 212e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang public int getDurationMinute() { 213e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang return mDurationMinute; 214e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang } 215e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang 216e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang /** 217e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * Extra error code. 218e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <ul> 219e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_RECORDING_RESULT_EXTRA_NO_ERROR} 220e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * No extra errors. Other values of this class might be available. 221e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_RECORDING_RESULT_EXTRA_CHECK_RECORDER_CONNECTION} 222e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * Check record connection. Other values of this class should be ignored. 223e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_RECORDING_RESULT_EXTRA_FAIL_TO_RECORD_SELECTED_SOURCE} 224e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * Fail to record selected source. Other values of this class should be ignored. 225e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * <li>{@link HdmiControlManager#TIMER_RECORDING_RESULT_EXTRA_CEC_DISABLED} 226e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * Cec disabled. Other values of this class should be ignored. 227e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * </ul> 228e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang */ 229e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang public int getExtraError() { 230e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang return mExtraError; 231e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang } 232e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang } 233e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang 234e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang /** 235e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * Called when receiving result for clear timer recording request. 236e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * 237326aef0c9402742e29c4503c857f93e75cf9a6ecJungshik Jang * @param recorderAddress An address of recorder that reports result of clear timer recording 238326aef0c9402742e29c4503c857f93e75cf9a6ecJungshik Jang * request 239e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * @param result result of clear timer. It should be one of 240e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * {@link HdmiControlManager#CLEAR_TIMER_STATUS_TIMER_NOT_CLEARED_RECORDING} 241e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * {@link HdmiControlManager#CLEAR_TIMER_STATUS_TIMER_NOT_CLEARED_NO_MATCHING}, 242e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * {@link HdmiControlManager#CLEAR_TIMER_STATUS_TIMER_NOT_CLEARED_NO_INFO_AVAILABLE}, 243e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * {@link HdmiControlManager#CLEAR_TIMER_STATUS_TIMER_CLEARED}, 244e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * {@link HdmiControlManager#CLEAR_TIMER_STATUS_CHECK_RECORDER_CONNECTION}, 245e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * {@link HdmiControlManager#CLEAR_TIMER_STATUS_FAIL_TO_CLEAR_SELECTED_SOURCE}, 246e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang * {@link HdmiControlManager#CLEAR_TIMER_STATUS_CEC_DISABLE}. 247e5a9337ebe738633cf7b66141cdf76efcdc5754cJungshik Jang */ 248326aef0c9402742e29c4503c857f93e75cf9a6ecJungshik Jang public void onClearTimerRecordingResult(int recorderAddress, int result) { 24912e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang } 25012e5dcefe136b58562f39604e6a8460ac92cb895Jungshik Jang} 251