/**@class android.hardware.hdmi.HdmiTvClient
@extends android.hardware.hdmi.HdmiClient

 HdmiTvClient represents HDMI-CEC logical device of type TV in the Android system
 which acts as TV/Display.

 <p>HdmiTvClient provides methods that manage, interact with other devices on the CEC bus.

 @hide
*/
var HdmiTvClient = {

/** Size of MHL register for vendor command
*/
VENDOR_DATA_SIZE : "16",
/**
*/
getDeviceType : function(  ) {},

/**Selects a CEC logical device to be a new active source.
@param {Number} logicalAddress logical address of the device to select
@param {Object {HdmiTvClient.SelectCallback}} callback callback to get the result with
@throws {@link IllegalArgumentException} if the {@code callback} is null
*/
deviceSelect : function(  ) {},

/**Selects a HDMI port to be a new route path.
@param {Number} portId HDMI port to select
@param {Object {HdmiTvClient.SelectCallback}} callback callback to get the result with
@throws {@link IllegalArgumentException} if the {@code callback} is null
*/
portSelect : function(  ) {},

/**Sets the listener used to get informed of the input change event.
@param {Object {HdmiTvClient.InputChangeListener}} listener listener object
*/
setInputChangeListener : function(  ) {},

/**Returns all the CEC devices connected to TV.
@return {Object {java.util.List}} list of {@link HdmiDeviceInfo} for connected CEC devices.
         Empty list is returned if there is none.
*/
getDeviceList : function(  ) {},

/**Sets system audio mode.
@param {Boolean} enabled set to {@code true} to enable the mode; otherwise {@code false}
@param {Object {HdmiTvClient.SelectCallback}} callback callback to get the result with
@throws {@link IllegalArgumentException} if the {@code callback} is null
*/
setSystemAudioMode : function(  ) {},

/**Sets system audio volume.
@param {Number} oldIndex current volume index
@param {Number} newIndex volume index to be set
@param {Number} maxIndex maximum volume index
*/
setSystemAudioVolume : function(  ) {},

/**Sets system audio mute status.
@param {Boolean} mute {@code true} if muted; otherwise, {@code false}
*/
setSystemAudioMute : function(  ) {},

/**Sets record listener.
@param {Object {HdmiRecordListener}} listener
*/
setRecordListener : function(  ) {},

/**Sends a &lt;Standby&gt; command to other device.
@param {Number} deviceId device id to send the command to
*/
sendStandby : function(  ) {},

/**Starts one touch recording with the given recorder address and recorder source.
 <p>
 Usage
 <pre>
 HdmiTvClient tvClient = ....;
 // for own source.
 OwnSource ownSource = HdmiRecordSources.ofOwnSource();
 tvClient.startOneTouchRecord(recorderAddress, ownSource);
 </pre>
*/
startOneTouchRecord : function(  ) {},

/**Stops one touch record.
@param {Number} recorderAddress recorder address where recoding will be stopped
*/
stopOneTouchRecord : function(  ) {},

/**Starts timer recording with the given recoder address and recorder source.
 <p>
 Usage
 <pre>
 HdmiTvClient tvClient = ....;
 // create timer info
 TimerInfo timerInfo = HdmiTimerRecourdSources.timerInfoOf(...);
 // for digital source.
 DigitalServiceSource recordSource = HdmiRecordSources.ofDigitalService(...);
 // create timer recording source.
 TimerRecordSource source = HdmiTimerRecourdSources.ofDigitalSource(timerInfo, recordSource);
 tvClient.startTimerRecording(recorderAddress, source);
 </pre>
@param {Number} recorderAddress target recorder address
@param {Number} sourceType type of record source. It should be one of
          {@link HdmiControlManager#TIMER_RECORDING_TYPE_DIGITAL},
          {@link HdmiControlManager#TIMER_RECORDING_TYPE_ANALOGUE},
          {@link HdmiControlManager#TIMER_RECORDING_TYPE_EXTERNAL}.
@param {Object {HdmiTimerRecordSources.TimerRecordSource}} source record source to be used
*/
startTimerRecording : function(  ) {},

/**Clears timer recording with the given recorder address and recording source.
 For more details, please refer {@link #startandroid.hardware.hdmi.HdmiTimerRecordSources.TimerRecording(int, int, android.hardware.hdmi.HdmiTimerRecordSources.TimerRecordSource)}.
*/
clearTimerRecording : function(  ) {},

/**Sets {@link android.hardware.hdmi.HdmiTvClient.HdmiMhlVendorCommandListener} to get incoming MHL vendor command.
@param {Object {HdmiTvClient.HdmiMhlVendorCommandListener}} listener to receive incoming MHL vendor command
*/
setHdmiMhlVendorCommandListener : function(  ) {},

/**Sends MHL vendor command to the device connected to a port of the given portId.
@param {Number} portId id of port to send MHL vendor command
@param {Number} offset offset in the in given data
@param {Number} length length of data. offset + length should be bound to length of data.
@param {Object {byte[]}} data container for vendor command data. It should be 16 bytes.
@throws IllegalArgumentException if the given parameters are invalid
*/
sendMhlVendorCommand : function(  ) {},


};