1c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim/* 2c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * Copyright (C) 2014 The Android Open Source Project 3c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * 4c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * Licensed under the Apache License, Version 2.0 (the "License"); 5c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * you may not use this file except in compliance with the License. 6c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * You may obtain a copy of the License at 7c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * 8c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * http://www.apache.org/licenses/LICENSE-2.0 9c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * 10c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * Unless required by applicable law or agreed to in writing, software 11c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * distributed under the License is distributed on an "AS IS" BASIS, 12c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * See the License for the specific language governing permissions and 14c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * limitations under the License. 15c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim */ 16c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim 17d5cc4a281e7ce29d1e8687ff3394b57a3a549260Jae Seopackage android.media.tv; 18c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim 19d5cc4a281e7ce29d1e8687ff3394b57a3a549260Jae Seoimport android.media.tv.TvStreamConfig; 20c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kimimport android.view.KeyEvent; 21c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kimimport android.view.Surface; 22c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim 23c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim/** 24c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * TvInputService representing a physical port should connect to HAL through this interface. 25c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * Framework will take care of communication among system services including TvInputManagerService, 26c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * HdmiControlService, AudioService, etc. 27c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * 28c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * @hide 29c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim */ 30c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kiminterface ITvInputHardware { 31c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim /** 32c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * Make the input render on the surface according to the config. In case of HDMI, this will 33c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * trigger CEC commands for adjusting active HDMI source. Returns true on success. 34c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim */ 35c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim boolean setSurface(in Surface surface, in TvStreamConfig config); 36ca17a9029dd7b1b87c155e68476eae5ee4efbedeWonsik Kim 37c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim /** 388e45a33ca8cb6b6a0cf75edf52ffdf86ffe3dd31Wonsik Kim * Set volume for this stream via AudioGain. 39c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim */ 408e45a33ca8cb6b6a0cf75edf52ffdf86ffe3dd31Wonsik Kim void setStreamVolume(float volume); 41c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim 42c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim /** 43c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * Dispatch key event to HDMI service. The events would be automatically converted to 44c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim * HDMI CEC commands. If the hardware is not representing an HDMI port, this method will fail. 45c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim */ 46c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim boolean dispatchKeyEventToHdmi(in KeyEvent event); 47ca17a9029dd7b1b87c155e68476eae5ee4efbedeWonsik Kim 48ca17a9029dd7b1b87c155e68476eae5ee4efbedeWonsik Kim /** 49ca17a9029dd7b1b87c155e68476eae5ee4efbedeWonsik Kim * Override default audio sink from audio policy. When override is on, it is 50ca17a9029dd7b1b87c155e68476eae5ee4efbedeWonsik Kim * TvInputService's responsibility to adjust to audio configuration change 51ca17a9029dd7b1b87c155e68476eae5ee4efbedeWonsik Kim * (for example, when the audio sink becomes unavailable or more desirable 52ca17a9029dd7b1b87c155e68476eae5ee4efbedeWonsik Kim * audio sink is detected). 53ca17a9029dd7b1b87c155e68476eae5ee4efbedeWonsik Kim * 54ca17a9029dd7b1b87c155e68476eae5ee4efbedeWonsik Kim * @param audioType one of AudioManager.DEVICE_* values. When it's * DEVICE_NONE, override 55ca17a9029dd7b1b87c155e68476eae5ee4efbedeWonsik Kim * becomes off. 56ca17a9029dd7b1b87c155e68476eae5ee4efbedeWonsik Kim * @param audioAddress audio address of the overriding device. 57ca17a9029dd7b1b87c155e68476eae5ee4efbedeWonsik Kim * @param samplingRate desired sampling rate. Use default when it's 0. 58ca17a9029dd7b1b87c155e68476eae5ee4efbedeWonsik Kim * @param channelMask desired channel mask. Use default when it's 59ca17a9029dd7b1b87c155e68476eae5ee4efbedeWonsik Kim * AudioFormat.CHANNEL_OUT_DEFAULT. 60ca17a9029dd7b1b87c155e68476eae5ee4efbedeWonsik Kim * @param format desired format. Use default when it's AudioFormat.ENCODING_DEFAULT. 61ca17a9029dd7b1b87c155e68476eae5ee4efbedeWonsik Kim */ 62ca17a9029dd7b1b87c155e68476eae5ee4efbedeWonsik Kim void overrideAudioSink(int audioType, String audioAddress, int samplingRate, int channelMask, 63ca17a9029dd7b1b87c155e68476eae5ee4efbedeWonsik Kim int format); 64c22dbb69194c8e8fe2a32326d1f37a738cad0904Wonsik Kim} 65