19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.media; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 19f0cff0456258478ba768097f73d4367ab67fd7a3Jean-Michel Triviimport android.app.PendingIntent; 20b1fbaaccb656ef09a8770c28df15e3e91a452e64Eric Laurentimport android.bluetooth.BluetoothDevice; 21d327f21626217aa3c9c0cdb7a84a742c531e59a3Jean-Michel Triviimport android.content.ComponentName; 22fd6ad747e6c268753d0edf7a5a59b6815b190854Jean-Michel Triviimport android.media.AudioAttributes; 23632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackbornimport android.media.AudioRoutesInfo; 24d5176cfe6eae954e9cef1e2ec17859a5089e1330Jean-Michel Triviimport android.media.IAudioFocusDispatcher; 25632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackbornimport android.media.IAudioRoutesObserver; 264426e42ac6107bf6b09f7c4cdad39eb161d8b9caJean-Michel Triviimport android.media.IRemoteControlClient; 274426e42ac6107bf6b09f7c4cdad39eb161d8b9caJean-Michel Triviimport android.media.IRemoteControlDisplay; 281357012968f9066ea3051d83995e9bac69526c3cJean-Michel Triviimport android.media.IRemoteVolumeObserver; 29098d580cc2bb6c0891c756a4e5230c6c6b0d2376Jeff Sharkeyimport android.media.IRingtonePlayer; 303346a802087f621c6441bc512dfcc17b07143fc6John Spurlockimport android.media.IVolumeController; 317ddd226e7c6e759feaf2747a90be1cc06acf37a3Jean-Michel Triviimport android.media.Rating; 32a48d779dad4c48aa2f97ad021ae3a5649c058312John Spurlockimport android.media.VolumePolicy; 33a8b6bd88cfb010c9e9aa1339e504fd593919e1e0Jean-Michel Triviimport android.media.audiopolicy.AudioPolicyConfig; 340212be5150fb9fb3c340f3c7e51f6126372cc6f9Jean-Michel Triviimport android.media.audiopolicy.IAudioPolicyCallback; 35098d580cc2bb6c0891c756a4e5230c6c6b0d2376Jeff Sharkeyimport android.net.Uri; 36c68022258ebd3dd97a5079ba99f4f3cd12b223b0Jean-Michel Triviimport android.view.KeyEvent; 37d5176cfe6eae954e9cef1e2ec17859a5089e1330Jean-Michel Trivi 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide} 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface IAudioService { 4268d6dedcc3a7d7ceaad297e59248332eb900113cJean-Michel Trivi 43a38e1f4ed997bea3cbfbf8094a52c23570d59d2aDongwon Kang oneway void adjustSuggestedStreamVolume(int direction, int suggestedStreamType, int flags, 449087433753a5068819dcd3e86bdc2cce82bb8040John Spurlock String callingPackage, String caller); 45dff25597a9a862143c69e70e6ed86790538c23c1Mike Lockwood 46ba50b97cff80e73620a0e3d13cae169e095974a7Dianne Hackborn void adjustStreamVolume(int streamType, int direction, int flags, String callingPackage); 47dff25597a9a862143c69e70e6ed86790538c23c1Mike Lockwood 48ba50b97cff80e73620a0e3d13cae169e095974a7Dianne Hackborn void setStreamVolume(int streamType, int index, int flags, String callingPackage); 49a2aa08e20cb4f1e302bb7ae05882cd1be8cfa0d2Mike Lockwood 503114ce3861f20f9a5c2c59dd2629197a1f4874a8Jean-Michel Trivi oneway void setRemoteStreamVolume(int index); 513114ce3861f20f9a5c2c59dd2629197a1f4874a8Jean-Michel Trivi 5225101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent boolean isStreamMute(int streamType); 5325101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent 54ba5270b88798c66fefc17a1b25b27894e4fb7862Jean-Michel Trivi void forceRemoteSubmixFullVolume(boolean startForcing, IBinder cb); 55ba5270b88798c66fefc17a1b25b27894e4fb7862Jean-Michel Trivi 56cfbcd3bf21c8453e9afd7740fdb7fc272c362389Mike Lockwood boolean isMasterMute(); 57cfbcd3bf21c8453e9afd7740fdb7fc272c362389Mike Lockwood 5870e0c58c2269cd29dfd6420d690da13dc03fd457Kenny Guy void setMasterMute(boolean mute, int flags, String callingPackage, int userId); 595020e7e2d37865da862846b97d9959e83244a35eMike Lockwood 60ee5ad729b90deff435f9875337cbc434be4f8fe7John Spurlock int getStreamVolume(int streamType); 615020e7e2d37865da862846b97d9959e83244a35eMike Lockwood 62b6e19e3e0f0170d058636101e23f964196f6f4b2John Spurlock int getStreamMinVolume(int streamType); 63b6e19e3e0f0170d058636101e23f964196f6f4b2John Spurlock 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getStreamMaxVolume(int streamType); 65a2aa08e20cb4f1e302bb7ae05882cd1be8cfa0d2Mike Lockwood 6625101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent int getLastAudibleStreamVolume(int streamType); 6725101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent 6870e0c58c2269cd29dfd6420d690da13dc03fd457Kenny Guy void setMicrophoneMute(boolean on, String callingPackage, int userId); 6922c921a910d236abf3a1705a02541a49fdaf3a14Emily Bernier 70661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock void setRingerModeExternal(int ringerMode, String caller); 7168d6dedcc3a7d7ceaad297e59248332eb900113cJean-Michel Trivi 72661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock void setRingerModeInternal(int ringerMode, String caller); 73661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock 74661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock int getRingerModeExternal(); 75661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock 76661f2cf45860d2e10924e6b69966a9afe255f28bJohn Spurlock int getRingerModeInternal(); 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 789755937ed90f06db45ff5fe4510950ae1516f8f9John Spurlock boolean isValidRingerMode(int ringerMode); 799755937ed90f06db45ff5fe4510950ae1516f8f9John Spurlock 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setVibrateSetting(int vibrateType, int vibrateSetting); 8168d6dedcc3a7d7ceaad297e59248332eb900113cJean-Michel Trivi 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getVibrateSetting(int vibrateType); 8368d6dedcc3a7d7ceaad297e59248332eb900113cJean-Michel Trivi 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean shouldVibrate(int vibrateType); 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 869087433753a5068819dcd3e86bdc2cce82bb8040John Spurlock void setMode(int mode, IBinder cb, String callingPackage); 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getMode(); 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project oneway void playSoundEffect(int effectType); 9168d6dedcc3a7d7ceaad297e59248332eb900113cJean-Michel Trivi 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project oneway void playSoundEffectVolume(int effectType, float volume); 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean loadSoundEffects(); 9568d6dedcc3a7d7ceaad297e59248332eb900113cJean-Michel Trivi 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project oneway void unloadSoundEffects(); 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 984050c93601b3c3609b21cc1e18a29b64747e7fa9Eric Laurent oneway void reloadAudioSettings(); 99c42ac9d4d03f62c3a1ba197a28a81fda44bd8b7fEric Laurent 1005a0cf7a27f3953a1266af48543ccd9024f4cd89fJohn Du oneway void avrcpSupportsAbsoluteVolume(String address, boolean support); 1015a0cf7a27f3953a1266af48543ccd9024f4cd89fJohn Du 102c42ac9d4d03f62c3a1ba197a28a81fda44bd8b7fEric Laurent void setSpeakerphoneOn(boolean on); 103c42ac9d4d03f62c3a1ba197a28a81fda44bd8b7fEric Laurent 104c42ac9d4d03f62c3a1ba197a28a81fda44bd8b7fEric Laurent boolean isSpeakerphoneOn(); 105c42ac9d4d03f62c3a1ba197a28a81fda44bd8b7fEric Laurent 106c42ac9d4d03f62c3a1ba197a28a81fda44bd8b7fEric Laurent void setBluetoothScoOn(boolean on); 107c42ac9d4d03f62c3a1ba197a28a81fda44bd8b7fEric Laurent 108c42ac9d4d03f62c3a1ba197a28a81fda44bd8b7fEric Laurent boolean isBluetoothScoOn(); 109d5176cfe6eae954e9cef1e2ec17859a5089e1330Jean-Michel Trivi 1104ab22bb7d0aafce1be200153d71d432c9d54e04aEric Laurent void setBluetoothA2dpOn(boolean on); 1117847211fb4699bf6018e29d214a918ed6657319bEric Laurent 1127847211fb4699bf6018e29d214a918ed6657319bEric Laurent boolean isBluetoothA2dpOn(); 1137847211fb4699bf6018e29d214a918ed6657319bEric Laurent 114fd6ad747e6c268753d0edf7a5a59b6815b190854Jean-Michel Trivi int requestAudioFocus(in AudioAttributes aa, int durationHint, IBinder cb, 115958876fe55ea0fdeb73c72240a2f2bab32833443Jean-Michel Trivi IAudioFocusDispatcher fd, String clientId, String callingPackageName, int flags, 1160212be5150fb9fb3c340f3c7e51f6126372cc6f9Jean-Michel Trivi IAudioPolicyCallback pcb); 117d5176cfe6eae954e9cef1e2ec17859a5089e1330Jean-Michel Trivi 118958876fe55ea0fdeb73c72240a2f2bab32833443Jean-Michel Trivi int abandonAudioFocus(IAudioFocusDispatcher fd, String clientId, in AudioAttributes aa); 11968d6dedcc3a7d7ceaad297e59248332eb900113cJean-Michel Trivi 120d327f21626217aa3c9c0cdb7a84a742c531e59a3Jean-Michel Trivi void unregisterAudioFocusClient(String clientId); 121d327f21626217aa3c9c0cdb7a84a742c531e59a3Jean-Michel Trivi 1222380566debfc57eb1cc07db1306ccee23b84ddd4Jean-Michel Trivi int getCurrentAudioFocus(); 1232380566debfc57eb1cc07db1306ccee23b84ddd4Jean-Michel Trivi 1244a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi /** 1254a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi * Register an IRemoteControlDisplay. 126f108cdd9ee5efe354d87edd02a07b323298c116cJean-Michel Trivi * Success of registration is subject to a check on 127f108cdd9ee5efe354d87edd02a07b323298c116cJean-Michel Trivi * the android.Manifest.permission.MEDIA_CONTENT_CONTROL permission. 1284a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi * Notify all IRemoteControlClient of the new display and cause the RemoteControlClient 1294a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi * at the top of the stack to update the new display with its information. 1304a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi * @param rcd the IRemoteControlDisplay to register. No effect if null. 1314a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi * @param w the maximum width of the expected bitmap. Negative or zero values indicate this 1324a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi * display doesn't need to receive artwork. 1334a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi * @param h the maximum height of the expected bitmap. Negative or zero values indicate this 1344a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi * display doesn't need to receive artwork. 1354a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi */ 1367ddd226e7c6e759feaf2747a90be1cc06acf37a3Jean-Michel Trivi boolean registerRemoteControlDisplay(in IRemoteControlDisplay rcd, int w, int h); 137f108cdd9ee5efe354d87edd02a07b323298c116cJean-Michel Trivi 138f108cdd9ee5efe354d87edd02a07b323298c116cJean-Michel Trivi /** 139f108cdd9ee5efe354d87edd02a07b323298c116cJean-Michel Trivi * Like registerRemoteControlDisplay, but with success being subject to a check on 140f108cdd9ee5efe354d87edd02a07b323298c116cJean-Michel Trivi * the android.Manifest.permission.MEDIA_CONTENT_CONTROL permission, and if it fails, 141f108cdd9ee5efe354d87edd02a07b323298c116cJean-Michel Trivi * success is subject to listenerComp being one of the ENABLED_NOTIFICATION_LISTENERS 142f108cdd9ee5efe354d87edd02a07b323298c116cJean-Michel Trivi * components. 143f108cdd9ee5efe354d87edd02a07b323298c116cJean-Michel Trivi */ 144f108cdd9ee5efe354d87edd02a07b323298c116cJean-Michel Trivi boolean registerRemoteController(in IRemoteControlDisplay rcd, int w, int h, 145f108cdd9ee5efe354d87edd02a07b323298c116cJean-Michel Trivi in ComponentName listenerComp); 146f108cdd9ee5efe354d87edd02a07b323298c116cJean-Michel Trivi 1474a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi /** 1484a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi * Unregister an IRemoteControlDisplay. 1494a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi * No effect if the IRemoteControlDisplay hasn't been successfully registered. 1504a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi * @param rcd the IRemoteControlDisplay to unregister. No effect if null. 1514a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi */ 1524426e42ac6107bf6b09f7c4cdad39eb161d8b9caJean-Michel Trivi oneway void unregisterRemoteControlDisplay(in IRemoteControlDisplay rcd); 1534a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi /** 1544a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi * Update the size of the artwork used by an IRemoteControlDisplay. 1554a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi * @param rcd the IRemoteControlDisplay with the new artwork size requirement 1564a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi * @param w the maximum width of the expected bitmap. Negative or zero values indicate this 1574a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi * display doesn't need to receive artwork. 1584a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi * @param h the maximum height of the expected bitmap. Negative or zero values indicate this 1594a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi * display doesn't need to receive artwork. 1604a5700556191c835116ec2a6997a4f16f464ac9dJean-Michel Trivi */ 1614426e42ac6107bf6b09f7c4cdad39eb161d8b9caJean-Michel Trivi oneway void remoteControlDisplayUsesBitmapSize(in IRemoteControlDisplay rcd, int w, int h); 1623261b537c5fdec824575a1f6ad6d8942715e82e2Jean-Michel Trivi /** 163c3c4babf8424f65b3d3d2700f60fae6e94e9cd00Jean-Michel Trivi * Controls whether a remote control display needs periodic checks of the RemoteControlClient 164c3c4babf8424f65b3d3d2700f60fae6e94e9cd00Jean-Michel Trivi * playback position to verify that the estimated position has not drifted from the actual 165c3c4babf8424f65b3d3d2700f60fae6e94e9cd00Jean-Michel Trivi * position. By default the check is not performed. 166c3c4babf8424f65b3d3d2700f60fae6e94e9cd00Jean-Michel Trivi * The IRemoteControlDisplay must have been previously registered for this to have any effect. 167c3c4babf8424f65b3d3d2700f60fae6e94e9cd00Jean-Michel Trivi * @param rcd the IRemoteControlDisplay for which the anti-drift mechanism will be enabled 168c3c4babf8424f65b3d3d2700f60fae6e94e9cd00Jean-Michel Trivi * or disabled. Not null. 169c3c4babf8424f65b3d3d2700f60fae6e94e9cd00Jean-Michel Trivi * @param wantsSync if true, RemoteControlClient instances which expose their playback position 170c3c4babf8424f65b3d3d2700f60fae6e94e9cd00Jean-Michel Trivi * to the framework will regularly compare the estimated playback position with the actual 171c3c4babf8424f65b3d3d2700f60fae6e94e9cd00Jean-Michel Trivi * position, and will update the IRemoteControlDisplay implementation whenever a drift is 172c3c4babf8424f65b3d3d2700f60fae6e94e9cd00Jean-Michel Trivi * detected. 173c3c4babf8424f65b3d3d2700f60fae6e94e9cd00Jean-Michel Trivi */ 174c3c4babf8424f65b3d3d2700f60fae6e94e9cd00Jean-Michel Trivi oneway void remoteControlDisplayWantsPlaybackPositionSync(in IRemoteControlDisplay rcd, 175c3c4babf8424f65b3d3d2700f60fae6e94e9cd00Jean-Michel Trivi boolean wantsSync); 1763114ce3861f20f9a5c2c59dd2629197a1f4874a8Jean-Michel Trivi 177c18c9138cee0f0859bcab636a004ce92ca4a9ab5Eric Laurent void startBluetoothSco(IBinder cb, int targetSdkVersion); 17883900754f357616b9e56eaf7fc85f49b8906e987Eric Laurent void startBluetoothScoVirtualCall(IBinder cb); 1793def1eec2baed0b8845ec32c871e249dc533a9d9Eric Laurent void stopBluetoothSco(IBinder cb); 18045c90cefd13a03b852bb4b8da4be218876cbbb32Eric Laurent 18145c90cefd13a03b852bb4b8da4be218876cbbb32Eric Laurent void forceVolumeControlStream(int streamType, IBinder cb); 1826d5176638c2189595cede38fb92c3e7e8700e221Eric Laurent 183098d580cc2bb6c0891c756a4e5230c6c6b0d2376Jeff Sharkey void setRingtonePlayer(IRingtonePlayer player); 184098d580cc2bb6c0891c756a4e5230c6c6b0d2376Jeff Sharkey IRingtonePlayer getRingtonePlayer(); 185ee5ad729b90deff435f9875337cbc434be4f8fe7John Spurlock int getUiSoundsStreamType(); 186b1fbaaccb656ef09a8770c28df15e3e91a452e64Eric Laurent 1879087433753a5068819dcd3e86bdc2cce82bb8040John Spurlock void setWiredDeviceConnectionState(int type, int state, String address, String name, 1889087433753a5068819dcd3e86bdc2cce82bb8040John Spurlock String caller); 1899087433753a5068819dcd3e86bdc2cce82bb8040John Spurlock 1900a40ec2192e4836b2fcb6ba51a7688aa6bd4ee98Mike Lockwood int setBluetoothA2dpDeviceConnectionState(in BluetoothDevice device, int state, int profile); 191632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn 192632ca417f0a33e3fa9ccece531afa2db3f0d4a30Dianne Hackborn AudioRoutesInfo startWatchingRoutes(in IAudioRoutesObserver observer); 193dd45d01128423a82652a3c9d77fa393631d95229Eric Laurent 194dd45d01128423a82652a3c9d77fa393631d95229Eric Laurent boolean isCameraSoundForced(); 1953346a802087f621c6441bc512dfcc17b07143fc6John Spurlock 1963346a802087f621c6441bc512dfcc17b07143fc6John Spurlock void setVolumeController(in IVolumeController controller); 1973346a802087f621c6441bc512dfcc17b07143fc6John Spurlock 19833f4e04e32fac42f158733d6a731e50490fa9951John Spurlock void notifyVolumeControllerVisible(in IVolumeController controller, boolean visible); 19933f4e04e32fac42f158733d6a731e50490fa9951John Spurlock 2003346a802087f621c6441bc512dfcc17b07143fc6John Spurlock boolean isStreamAffectedByRingerMode(int streamType); 2013346a802087f621c6441bc512dfcc17b07143fc6John Spurlock 202a9dfbe8b122d746cf8841fe1b13d31e7e0fc9c52John Spurlock boolean isStreamAffectedByMute(int streamType); 203a9dfbe8b122d746cf8841fe1b13d31e7e0fc9c52John Spurlock 2049087433753a5068819dcd3e86bdc2cce82bb8040John Spurlock void disableSafeMediaVolume(String callingPackage); 20541d974631c5f525da49c88d34cecedd5a4cfeda8Jungshik Jang 20612307ca810e8100981b2b60e3f2c6a7e451b9774Jungshik Jang int setHdmiSystemAudioSupported(boolean on); 207a8b6bd88cfb010c9e9aa1339e504fd593919e1e0Jean-Michel Trivi 208e7d6d97f0d95b9e8982b0d4d9f5e8ce688291940Terry Heo boolean isHdmiSystemAudioSupported(); 209e7d6d97f0d95b9e8982b0d4d9f5e8ce688291940Terry Heo 210a48d779dad4c48aa2f97ad021ae3a5649c058312John Spurlock String registerAudioPolicy(in AudioPolicyConfig policyConfig, 211a48d779dad4c48aa2f97ad021ae3a5649c058312John Spurlock in IAudioPolicyCallback pcb, boolean hasFocusListener); 212a48d779dad4c48aa2f97ad021ae3a5649c058312John Spurlock 2130212be5150fb9fb3c340f3c7e51f6126372cc6f9Jean-Michel Trivi oneway void unregisterAudioPolicyAsync(in IAudioPolicyCallback pcb); 2140212be5150fb9fb3c340f3c7e51f6126372cc6f9Jean-Michel Trivi 215a48d779dad4c48aa2f97ad021ae3a5649c058312John Spurlock int setFocusPropertiesForPolicy(int duckingBehavior, in IAudioPolicyCallback pcb); 216a48d779dad4c48aa2f97ad021ae3a5649c058312John Spurlock 217a48d779dad4c48aa2f97ad021ae3a5649c058312John Spurlock void setVolumePolicy(in VolumePolicy policy); 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 219