163a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo/* 263a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo * Copyright (C) 2014 The Android Open Source Project 363a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo * 463a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo * Licensed under the Apache License, Version 2.0 (the "License"); 563a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo * you may not use this file except in compliance with the License. 663a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo * You may obtain a copy of the License at 763a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo * 863a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo * http://www.apache.org/licenses/LICENSE-2.0 963a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo * 1063a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo * Unless required by applicable law or agreed to in writing, software 1163a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo * distributed under the License is distributed on an "AS IS" BASIS, 1263a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1363a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo * See the License for the specific language governing permissions and 1463a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo * limitations under the License. 1563a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo */ 1663a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo 1763a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heopackage com.android.server.hdmi; 1863a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo 1961f4fbd2e8436a1ecd478c2a1f516d064a24d43bJungshik Jangimport android.hardware.hdmi.HdmiDeviceInfo; 20ea67c183fe5511ad99aeaae1a32b5245bd020e36Jungshik Jangimport android.hardware.hdmi.IHdmiControlCallback; 2163a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo 2263a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo 2363a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo/** 2463a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo * Feature action that handles System Audio initiated by TV devices. 2563a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo */ 2663a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heofinal class SystemAudioActionFromTv extends SystemAudioAction { 27c516d65fd96cdc39f9935ddb80d26ee6499a77bfYuncheol Heo 2863a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo /** 2963a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo * Constructor 3063a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo * 3179c58a4b97f27ede6a1b680d2fece9c2a0edf7b7Jungshik Jang * @param sourceAddress {@link HdmiCecLocalDevice} instance 3263a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo * @param avrAddress logical address of AVR device 3363a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo * @param targetStatus Whether to enable the system audio mode or not 34ea67c183fe5511ad99aeaae1a32b5245bd020e36Jungshik Jang * @param callback callback interface to be notified when it's done 3563a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo * @throw IllegalArugmentException if device type of tvAddress is invalid 3663a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo */ 3779c58a4b97f27ede6a1b680d2fece9c2a0edf7b7Jungshik Jang SystemAudioActionFromTv(HdmiCecLocalDevice sourceAddress, int avrAddress, 38ea67c183fe5511ad99aeaae1a32b5245bd020e36Jungshik Jang boolean targetStatus, IHdmiControlCallback callback) { 39ea67c183fe5511ad99aeaae1a32b5245bd020e36Jungshik Jang super(sourceAddress, avrAddress, targetStatus, callback); 4061f4fbd2e8436a1ecd478c2a1f516d064a24d43bJungshik Jang HdmiUtils.verifyAddressType(getSourceAddress(), HdmiDeviceInfo.DEVICE_TV); 4163a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo } 4263a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo 4363a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo @Override 4463a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo boolean start() { 4563a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo removeSystemAudioActionInProgress(); 4663a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo sendSystemAudioModeRequest(); 4763a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo return true; 4863a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo } 4963a2e0696ce2a04fbe0f1f00cfe9c93189f944daYuncheol Heo} 50