1 /* 2 * Copyright (C) 2007 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.media; 18 19 import android.bluetooth.BluetoothDevice; 20 import android.content.ComponentName; 21 import android.media.AudioAttributes; 22 import android.media.AudioDeviceAttributes; 23 import android.media.AudioFormat; 24 import android.media.AudioFocusInfo; 25 import android.media.AudioPlaybackConfiguration; 26 import android.media.AudioRecordingConfiguration; 27 import android.media.AudioRoutesInfo; 28 import android.media.IAudioFocusDispatcher; 29 import android.media.IAudioModeDispatcher; 30 import android.media.IAudioRoutesObserver; 31 import android.media.IAudioServerStateDispatcher; 32 import android.media.ICapturePresetDevicesRoleDispatcher; 33 import android.media.ICommunicationDeviceDispatcher; 34 import android.media.IPlaybackConfigDispatcher; 35 import android.media.IRecordingConfigDispatcher; 36 import android.media.IRingtonePlayer; 37 import android.media.IStrategyPreferredDevicesDispatcher; 38 import android.media.ISpatializerCallback; 39 import android.media.ISpatializerHeadTrackingModeCallback; 40 import android.media.ISpatializerHeadToSoundStagePoseCallback; 41 import android.media.ISpatializerOutputCallback; 42 import android.media.IVolumeController; 43 import android.media.IVolumeController; 44 import android.media.PlayerBase; 45 import android.media.VolumePolicy; 46 import android.media.audiopolicy.AudioPolicyConfig; 47 import android.media.audiopolicy.AudioProductStrategy; 48 import android.media.audiopolicy.AudioVolumeGroup; 49 import android.media.audiopolicy.IAudioPolicyCallback; 50 import android.media.projection.IMediaProjection; 51 import android.net.Uri; 52 import android.os.UserHandle; 53 import android.view.KeyEvent; 54 55 /** 56 * {@hide} 57 */ 58 interface IAudioService { 59 // C++ and Java methods below. 60 61 // WARNING: When methods are inserted or deleted in this section, the transaction IDs in 62 // frameworks/native/include/audiomanager/IAudioManager.h must be updated to match the order 63 // in this file. 64 // 65 // When a method's argument list is changed, BpAudioManager's corresponding serialization code 66 // (if any) in frameworks/native/services/audiomanager/IAudioManager.cpp must be updated. 67 trackPlayer(in PlayerBase.PlayerIdCard pic)68 int trackPlayer(in PlayerBase.PlayerIdCard pic); 69 playerAttributes(in int piid, in AudioAttributes attr)70 oneway void playerAttributes(in int piid, in AudioAttributes attr); 71 playerEvent(in int piid, in int event, in int deviceId)72 oneway void playerEvent(in int piid, in int event, in int deviceId); 73 releasePlayer(in int piid)74 oneway void releasePlayer(in int piid); 75 trackRecorder(in IBinder recorder)76 int trackRecorder(in IBinder recorder); 77 recorderEvent(in int riid, in int event)78 oneway void recorderEvent(in int riid, in int event); 79 releaseRecorder(in int riid)80 oneway void releaseRecorder(in int riid); 81 playerSessionId(in int piid, in int sessionId)82 oneway void playerSessionId(in int piid, in int sessionId); 83 84 // Java-only methods below. 85 adjustSuggestedStreamVolume(int direction, int suggestedStreamType, int flags, String callingPackage, String caller)86 oneway void adjustSuggestedStreamVolume(int direction, int suggestedStreamType, int flags, 87 String callingPackage, String caller); 88 adjustStreamVolume(int streamType, int direction, int flags, String callingPackage)89 void adjustStreamVolume(int streamType, int direction, int flags, String callingPackage); 90 91 @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) setStreamVolume(int streamType, int index, int flags, String callingPackage)92 void setStreamVolume(int streamType, int index, int flags, String callingPackage); 93 handleVolumeKey(in KeyEvent event, boolean isOnTv, String callingPackage, String caller)94 oneway void handleVolumeKey(in KeyEvent event, boolean isOnTv, 95 String callingPackage, String caller); 96 isStreamMute(int streamType)97 boolean isStreamMute(int streamType); 98 forceRemoteSubmixFullVolume(boolean startForcing, IBinder cb)99 void forceRemoteSubmixFullVolume(boolean startForcing, IBinder cb); 100 isMasterMute()101 boolean isMasterMute(); 102 setMasterMute(boolean mute, int flags, String callingPackage, int userId)103 void setMasterMute(boolean mute, int flags, String callingPackage, int userId); 104 105 @UnsupportedAppUsage getStreamVolume(int streamType)106 int getStreamVolume(int streamType); 107 getStreamMinVolume(int streamType)108 int getStreamMinVolume(int streamType); 109 110 @UnsupportedAppUsage getStreamMaxVolume(int streamType)111 int getStreamMaxVolume(int streamType); 112 getAudioVolumeGroups()113 List<AudioVolumeGroup> getAudioVolumeGroups(); 114 setVolumeIndexForAttributes(in AudioAttributes aa, int index, int flags, String callingPackage)115 void setVolumeIndexForAttributes(in AudioAttributes aa, int index, int flags, String callingPackage); 116 getVolumeIndexForAttributes(in AudioAttributes aa)117 int getVolumeIndexForAttributes(in AudioAttributes aa); 118 getMaxVolumeIndexForAttributes(in AudioAttributes aa)119 int getMaxVolumeIndexForAttributes(in AudioAttributes aa); 120 getMinVolumeIndexForAttributes(in AudioAttributes aa)121 int getMinVolumeIndexForAttributes(in AudioAttributes aa); 122 getLastAudibleStreamVolume(int streamType)123 int getLastAudibleStreamVolume(int streamType); 124 setSupportedSystemUsages(in int[] systemUsages)125 void setSupportedSystemUsages(in int[] systemUsages); 126 getSupportedSystemUsages()127 int[] getSupportedSystemUsages(); 128 getAudioProductStrategies()129 List<AudioProductStrategy> getAudioProductStrategies(); 130 isMicrophoneMuted()131 boolean isMicrophoneMuted(); 132 setMicrophoneMute(boolean on, String callingPackage, int userId)133 void setMicrophoneMute(boolean on, String callingPackage, int userId); 134 setMicrophoneMuteFromSwitch(boolean on)135 oneway void setMicrophoneMuteFromSwitch(boolean on); 136 setRingerModeExternal(int ringerMode, String caller)137 void setRingerModeExternal(int ringerMode, String caller); 138 setRingerModeInternal(int ringerMode, String caller)139 void setRingerModeInternal(int ringerMode, String caller); 140 getRingerModeExternal()141 int getRingerModeExternal(); 142 getRingerModeInternal()143 int getRingerModeInternal(); 144 isValidRingerMode(int ringerMode)145 boolean isValidRingerMode(int ringerMode); 146 setVibrateSetting(int vibrateType, int vibrateSetting)147 void setVibrateSetting(int vibrateType, int vibrateSetting); 148 getVibrateSetting(int vibrateType)149 int getVibrateSetting(int vibrateType); 150 shouldVibrate(int vibrateType)151 boolean shouldVibrate(int vibrateType); 152 setMode(int mode, IBinder cb, String callingPackage)153 void setMode(int mode, IBinder cb, String callingPackage); 154 getMode()155 int getMode(); 156 playSoundEffect(int effectType)157 oneway void playSoundEffect(int effectType); 158 playSoundEffectVolume(int effectType, float volume)159 oneway void playSoundEffectVolume(int effectType, float volume); 160 loadSoundEffects()161 boolean loadSoundEffects(); 162 unloadSoundEffects()163 oneway void unloadSoundEffects(); 164 reloadAudioSettings()165 oneway void reloadAudioSettings(); 166 getSurroundFormats()167 Map getSurroundFormats(); 168 getReportedSurroundFormats()169 List getReportedSurroundFormats(); 170 setSurroundFormatEnabled(int audioFormat, boolean enabled)171 boolean setSurroundFormatEnabled(int audioFormat, boolean enabled); 172 isSurroundFormatEnabled(int audioFormat)173 boolean isSurroundFormatEnabled(int audioFormat); 174 setEncodedSurroundMode(int mode)175 boolean setEncodedSurroundMode(int mode); 176 getEncodedSurroundMode(int targetSdkVersion)177 int getEncodedSurroundMode(int targetSdkVersion); 178 avrcpSupportsAbsoluteVolume(String address, boolean support)179 oneway void avrcpSupportsAbsoluteVolume(String address, boolean support); 180 setSpeakerphoneOn(IBinder cb, boolean on)181 void setSpeakerphoneOn(IBinder cb, boolean on); 182 isSpeakerphoneOn()183 boolean isSpeakerphoneOn(); 184 setBluetoothScoOn(boolean on)185 void setBluetoothScoOn(boolean on); 186 isBluetoothScoOn()187 boolean isBluetoothScoOn(); 188 setBluetoothA2dpOn(boolean on)189 void setBluetoothA2dpOn(boolean on); 190 isBluetoothA2dpOn()191 boolean isBluetoothA2dpOn(); 192 requestAudioFocus(in AudioAttributes aa, int durationHint, IBinder cb, IAudioFocusDispatcher fd, String clientId, String callingPackageName, int flags, IAudioPolicyCallback pcb, int sdk)193 int requestAudioFocus(in AudioAttributes aa, int durationHint, IBinder cb, 194 IAudioFocusDispatcher fd, String clientId, String callingPackageName, int flags, 195 IAudioPolicyCallback pcb, int sdk); 196 abandonAudioFocus(IAudioFocusDispatcher fd, String clientId, in AudioAttributes aa, in String callingPackageName)197 int abandonAudioFocus(IAudioFocusDispatcher fd, String clientId, in AudioAttributes aa, 198 in String callingPackageName); 199 unregisterAudioFocusClient(String clientId)200 void unregisterAudioFocusClient(String clientId); 201 getCurrentAudioFocus()202 int getCurrentAudioFocus(); 203 startBluetoothSco(IBinder cb, int targetSdkVersion)204 void startBluetoothSco(IBinder cb, int targetSdkVersion); startBluetoothScoVirtualCall(IBinder cb)205 void startBluetoothScoVirtualCall(IBinder cb); stopBluetoothSco(IBinder cb)206 void stopBluetoothSco(IBinder cb); 207 forceVolumeControlStream(int streamType, IBinder cb)208 void forceVolumeControlStream(int streamType, IBinder cb); 209 setRingtonePlayer(IRingtonePlayer player)210 void setRingtonePlayer(IRingtonePlayer player); getRingtonePlayer()211 IRingtonePlayer getRingtonePlayer(); getUiSoundsStreamType()212 int getUiSoundsStreamType(); 213 setWiredDeviceConnectionState(int type, int state, String address, String name, String caller)214 void setWiredDeviceConnectionState(int type, int state, String address, String name, 215 String caller); 216 handleBluetoothA2dpDeviceConfigChange(in BluetoothDevice device)217 void handleBluetoothA2dpDeviceConfigChange(in BluetoothDevice device); 218 219 @UnsupportedAppUsage startWatchingRoutes(in IAudioRoutesObserver observer)220 AudioRoutesInfo startWatchingRoutes(in IAudioRoutesObserver observer); 221 isCameraSoundForced()222 boolean isCameraSoundForced(); 223 setVolumeController(in IVolumeController controller)224 void setVolumeController(in IVolumeController controller); 225 notifyVolumeControllerVisible(in IVolumeController controller, boolean visible)226 void notifyVolumeControllerVisible(in IVolumeController controller, boolean visible); 227 isStreamAffectedByRingerMode(int streamType)228 boolean isStreamAffectedByRingerMode(int streamType); 229 isStreamAffectedByMute(int streamType)230 boolean isStreamAffectedByMute(int streamType); 231 disableSafeMediaVolume(String callingPackage)232 void disableSafeMediaVolume(String callingPackage); 233 setHdmiSystemAudioSupported(boolean on)234 int setHdmiSystemAudioSupported(boolean on); 235 isHdmiSystemAudioSupported()236 boolean isHdmiSystemAudioSupported(); 237 registerAudioPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb, boolean hasFocusListener, boolean isFocusPolicy, boolean isTestFocusPolicy, boolean isVolumeController, in IMediaProjection projection)238 String registerAudioPolicy(in AudioPolicyConfig policyConfig, 239 in IAudioPolicyCallback pcb, boolean hasFocusListener, boolean isFocusPolicy, 240 boolean isTestFocusPolicy, 241 boolean isVolumeController, in IMediaProjection projection); 242 unregisterAudioPolicyAsync(in IAudioPolicyCallback pcb)243 oneway void unregisterAudioPolicyAsync(in IAudioPolicyCallback pcb); 244 unregisterAudioPolicy(in IAudioPolicyCallback pcb)245 void unregisterAudioPolicy(in IAudioPolicyCallback pcb); 246 addMixForPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb)247 int addMixForPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb); 248 removeMixForPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb)249 int removeMixForPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb); 250 setFocusPropertiesForPolicy(int duckingBehavior, in IAudioPolicyCallback pcb)251 int setFocusPropertiesForPolicy(int duckingBehavior, in IAudioPolicyCallback pcb); 252 setVolumePolicy(in VolumePolicy policy)253 void setVolumePolicy(in VolumePolicy policy); 254 hasRegisteredDynamicPolicy()255 boolean hasRegisteredDynamicPolicy(); 256 registerRecordingCallback(in IRecordingConfigDispatcher rcdb)257 void registerRecordingCallback(in IRecordingConfigDispatcher rcdb); 258 unregisterRecordingCallback(in IRecordingConfigDispatcher rcdb)259 oneway void unregisterRecordingCallback(in IRecordingConfigDispatcher rcdb); 260 getActiveRecordingConfigurations()261 List<AudioRecordingConfiguration> getActiveRecordingConfigurations(); 262 registerPlaybackCallback(in IPlaybackConfigDispatcher pcdb)263 void registerPlaybackCallback(in IPlaybackConfigDispatcher pcdb); 264 unregisterPlaybackCallback(in IPlaybackConfigDispatcher pcdb)265 oneway void unregisterPlaybackCallback(in IPlaybackConfigDispatcher pcdb); 266 getActivePlaybackConfigurations()267 List<AudioPlaybackConfiguration> getActivePlaybackConfigurations(); 268 disableRingtoneSync(in int userId)269 void disableRingtoneSync(in int userId); 270 getFocusRampTimeMs(in int focusGain, in AudioAttributes attr)271 int getFocusRampTimeMs(in int focusGain, in AudioAttributes attr); 272 dispatchFocusChange(in AudioFocusInfo afi, in int focusChange, in IAudioPolicyCallback pcb)273 int dispatchFocusChange(in AudioFocusInfo afi, in int focusChange, 274 in IAudioPolicyCallback pcb); 275 playerHasOpPlayAudio(in int piid, in boolean hasOpPlayAudio)276 oneway void playerHasOpPlayAudio(in int piid, in boolean hasOpPlayAudio); 277 setBluetoothHearingAidDeviceConnectionState(in BluetoothDevice device, int state, boolean suppressNoisyIntent, int musicDevice)278 void setBluetoothHearingAidDeviceConnectionState(in BluetoothDevice device, 279 int state, boolean suppressNoisyIntent, int musicDevice); 280 setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(in BluetoothDevice device, int state, int profile, boolean suppressNoisyIntent, int a2dpVolume)281 void setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(in BluetoothDevice device, 282 int state, int profile, boolean suppressNoisyIntent, int a2dpVolume); 283 setFocusRequestResultFromExtPolicy(in AudioFocusInfo afi, int requestResult, in IAudioPolicyCallback pcb)284 oneway void setFocusRequestResultFromExtPolicy(in AudioFocusInfo afi, int requestResult, 285 in IAudioPolicyCallback pcb); 286 registerAudioServerStateDispatcher(IAudioServerStateDispatcher asd)287 void registerAudioServerStateDispatcher(IAudioServerStateDispatcher asd); 288 unregisterAudioServerStateDispatcher(IAudioServerStateDispatcher asd)289 oneway void unregisterAudioServerStateDispatcher(IAudioServerStateDispatcher asd); 290 isAudioServerRunning()291 boolean isAudioServerRunning(); 292 setUidDeviceAffinity(in IAudioPolicyCallback pcb, in int uid, in int[] deviceTypes, in String[] deviceAddresses)293 int setUidDeviceAffinity(in IAudioPolicyCallback pcb, in int uid, in int[] deviceTypes, 294 in String[] deviceAddresses); 295 removeUidDeviceAffinity(in IAudioPolicyCallback pcb, in int uid)296 int removeUidDeviceAffinity(in IAudioPolicyCallback pcb, in int uid); 297 setUserIdDeviceAffinity(in IAudioPolicyCallback pcb, in int userId, in int[] deviceTypes, in String[] deviceAddresses)298 int setUserIdDeviceAffinity(in IAudioPolicyCallback pcb, in int userId, in int[] deviceTypes, 299 in String[] deviceAddresses); removeUserIdDeviceAffinity(in IAudioPolicyCallback pcb, in int userId)300 int removeUserIdDeviceAffinity(in IAudioPolicyCallback pcb, in int userId); 301 hasHapticChannels(in Uri uri)302 boolean hasHapticChannels(in Uri uri); 303 isCallScreeningModeSupported()304 boolean isCallScreeningModeSupported(); 305 setPreferredDevicesForStrategy(in int strategy, in List<AudioDeviceAttributes> device)306 int setPreferredDevicesForStrategy(in int strategy, in List<AudioDeviceAttributes> device); 307 removePreferredDevicesForStrategy(in int strategy)308 int removePreferredDevicesForStrategy(in int strategy); 309 getPreferredDevicesForStrategy(in int strategy)310 List<AudioDeviceAttributes> getPreferredDevicesForStrategy(in int strategy); 311 getDevicesForAttributes(in AudioAttributes attributes)312 List<AudioDeviceAttributes> getDevicesForAttributes(in AudioAttributes attributes); 313 setAllowedCapturePolicy(in int capturePolicy)314 int setAllowedCapturePolicy(in int capturePolicy); 315 getAllowedCapturePolicy()316 int getAllowedCapturePolicy(); 317 registerStrategyPreferredDevicesDispatcher(IStrategyPreferredDevicesDispatcher dispatcher)318 void registerStrategyPreferredDevicesDispatcher(IStrategyPreferredDevicesDispatcher dispatcher); 319 unregisterStrategyPreferredDevicesDispatcher( IStrategyPreferredDevicesDispatcher dispatcher)320 oneway void unregisterStrategyPreferredDevicesDispatcher( 321 IStrategyPreferredDevicesDispatcher dispatcher); 322 setRttEnabled(in boolean rttEnabled)323 oneway void setRttEnabled(in boolean rttEnabled); 324 setDeviceVolumeBehavior(in AudioDeviceAttributes device, in int deviceVolumeBehavior, in String pkgName)325 void setDeviceVolumeBehavior(in AudioDeviceAttributes device, 326 in int deviceVolumeBehavior, in String pkgName); 327 getDeviceVolumeBehavior(in AudioDeviceAttributes device)328 int getDeviceVolumeBehavior(in AudioDeviceAttributes device); 329 330 // WARNING: read warning at top of file, new methods that need to be used by native 331 // code via IAudioManager.h need to be added to the top section. 332 setMultiAudioFocusEnabled(in boolean enabled)333 oneway void setMultiAudioFocusEnabled(in boolean enabled); 334 setPreferredDevicesForCapturePreset( in int capturePreset, in List<AudioDeviceAttributes> devices)335 int setPreferredDevicesForCapturePreset( 336 in int capturePreset, in List<AudioDeviceAttributes> devices); 337 clearPreferredDevicesForCapturePreset(in int capturePreset)338 int clearPreferredDevicesForCapturePreset(in int capturePreset); 339 getPreferredDevicesForCapturePreset(in int capturePreset)340 List<AudioDeviceAttributes> getPreferredDevicesForCapturePreset(in int capturePreset); 341 registerCapturePresetDevicesRoleDispatcher(ICapturePresetDevicesRoleDispatcher dispatcher)342 void registerCapturePresetDevicesRoleDispatcher(ICapturePresetDevicesRoleDispatcher dispatcher); 343 unregisterCapturePresetDevicesRoleDispatcher( ICapturePresetDevicesRoleDispatcher dispatcher)344 oneway void unregisterCapturePresetDevicesRoleDispatcher( 345 ICapturePresetDevicesRoleDispatcher dispatcher); 346 adjustStreamVolumeForUid(int streamType, int direction, int flags, in String packageName, int uid, int pid, in UserHandle userHandle, int targetSdkVersion)347 oneway void adjustStreamVolumeForUid(int streamType, int direction, int flags, 348 in String packageName, int uid, int pid, in UserHandle userHandle, 349 int targetSdkVersion); 350 adjustSuggestedStreamVolumeForUid(int streamType, int direction, int flags, in String packageName, int uid, int pid, in UserHandle userHandle, int targetSdkVersion)351 oneway void adjustSuggestedStreamVolumeForUid(int streamType, int direction, int flags, 352 in String packageName, int uid, int pid, in UserHandle userHandle, 353 int targetSdkVersion); 354 setStreamVolumeForUid(int streamType, int direction, int flags, in String packageName, int uid, int pid, in UserHandle userHandle, int targetSdkVersion)355 oneway void setStreamVolumeForUid(int streamType, int direction, int flags, 356 in String packageName, int uid, int pid, in UserHandle userHandle, 357 int targetSdkVersion); 358 isMusicActive(in boolean remotely)359 boolean isMusicActive(in boolean remotely); 360 getDevicesForStream(in int streamType)361 int getDevicesForStream(in int streamType); 362 getAvailableCommunicationDeviceIds()363 int[] getAvailableCommunicationDeviceIds(); 364 setCommunicationDevice(IBinder cb, int portId)365 boolean setCommunicationDevice(IBinder cb, int portId); 366 getCommunicationDevice()367 int getCommunicationDevice(); 368 registerCommunicationDeviceDispatcher(ICommunicationDeviceDispatcher dispatcher)369 void registerCommunicationDeviceDispatcher(ICommunicationDeviceDispatcher dispatcher); 370 unregisterCommunicationDeviceDispatcher( ICommunicationDeviceDispatcher dispatcher)371 oneway void unregisterCommunicationDeviceDispatcher( 372 ICommunicationDeviceDispatcher dispatcher); 373 areNavigationRepeatSoundEffectsEnabled()374 boolean areNavigationRepeatSoundEffectsEnabled(); 375 setNavigationRepeatSoundEffectsEnabled(boolean enabled)376 oneway void setNavigationRepeatSoundEffectsEnabled(boolean enabled); 377 isHomeSoundEffectEnabled()378 boolean isHomeSoundEffectEnabled(); 379 setHomeSoundEffectEnabled(boolean enabled)380 oneway void setHomeSoundEffectEnabled(boolean enabled); 381 setAdditionalOutputDeviceDelay(in AudioDeviceAttributes device, long delayMillis)382 boolean setAdditionalOutputDeviceDelay(in AudioDeviceAttributes device, long delayMillis); 383 getAdditionalOutputDeviceDelay(in AudioDeviceAttributes device)384 long getAdditionalOutputDeviceDelay(in AudioDeviceAttributes device); 385 getMaxAdditionalOutputDeviceDelay(in AudioDeviceAttributes device)386 long getMaxAdditionalOutputDeviceDelay(in AudioDeviceAttributes device); 387 requestAudioFocusForTest(in AudioAttributes aa, int durationHint, IBinder cb, in IAudioFocusDispatcher fd, in String clientId, in String callingPackageName, int uid, int sdk)388 int requestAudioFocusForTest(in AudioAttributes aa, int durationHint, IBinder cb, 389 in IAudioFocusDispatcher fd, in String clientId, in String callingPackageName, 390 int uid, int sdk); 391 abandonAudioFocusForTest(in IAudioFocusDispatcher fd, in String clientId, in AudioAttributes aa, in String callingPackageName)392 int abandonAudioFocusForTest(in IAudioFocusDispatcher fd, in String clientId, 393 in AudioAttributes aa, in String callingPackageName); 394 getFadeOutDurationOnFocusLossMillis(in AudioAttributes aa)395 long getFadeOutDurationOnFocusLossMillis(in AudioAttributes aa); 396 registerModeDispatcher(IAudioModeDispatcher dispatcher)397 void registerModeDispatcher(IAudioModeDispatcher dispatcher); 398 unregisterModeDispatcher(IAudioModeDispatcher dispatcher)399 oneway void unregisterModeDispatcher(IAudioModeDispatcher dispatcher); 400 getSpatializerImmersiveAudioLevel()401 int getSpatializerImmersiveAudioLevel(); 402 isSpatializerEnabled()403 boolean isSpatializerEnabled(); 404 isSpatializerAvailable()405 boolean isSpatializerAvailable(); 406 setSpatializerEnabled(boolean enabled)407 void setSpatializerEnabled(boolean enabled); 408 canBeSpatialized(in AudioAttributes aa, in AudioFormat af)409 boolean canBeSpatialized(in AudioAttributes aa, in AudioFormat af); 410 registerSpatializerCallback(in ISpatializerCallback cb)411 void registerSpatializerCallback(in ISpatializerCallback cb); 412 unregisterSpatializerCallback(in ISpatializerCallback cb)413 void unregisterSpatializerCallback(in ISpatializerCallback cb); 414 registerSpatializerHeadTrackingCallback(in ISpatializerHeadTrackingModeCallback cb)415 void registerSpatializerHeadTrackingCallback(in ISpatializerHeadTrackingModeCallback cb); 416 unregisterSpatializerHeadTrackingCallback(in ISpatializerHeadTrackingModeCallback cb)417 void unregisterSpatializerHeadTrackingCallback(in ISpatializerHeadTrackingModeCallback cb); 418 registerHeadToSoundstagePoseCallback(in ISpatializerHeadToSoundStagePoseCallback cb)419 void registerHeadToSoundstagePoseCallback(in ISpatializerHeadToSoundStagePoseCallback cb); 420 unregisterHeadToSoundstagePoseCallback(in ISpatializerHeadToSoundStagePoseCallback cb)421 void unregisterHeadToSoundstagePoseCallback(in ISpatializerHeadToSoundStagePoseCallback cb); 422 getSpatializerCompatibleAudioDevices()423 List<AudioDeviceAttributes> getSpatializerCompatibleAudioDevices(); 424 addSpatializerCompatibleAudioDevice(in AudioDeviceAttributes ada)425 void addSpatializerCompatibleAudioDevice(in AudioDeviceAttributes ada); 426 removeSpatializerCompatibleAudioDevice(in AudioDeviceAttributes ada)427 void removeSpatializerCompatibleAudioDevice(in AudioDeviceAttributes ada); 428 setDesiredHeadTrackingMode(int mode)429 void setDesiredHeadTrackingMode(int mode); 430 getDesiredHeadTrackingMode()431 int getDesiredHeadTrackingMode(); 432 getSupportedHeadTrackingModes()433 int[] getSupportedHeadTrackingModes(); 434 getActualHeadTrackingMode()435 int getActualHeadTrackingMode(); 436 setSpatializerGlobalTransform(in float[] transform)437 oneway void setSpatializerGlobalTransform(in float[] transform); 438 recenterHeadTracker()439 oneway void recenterHeadTracker(); 440 setSpatializerParameter(int key, in byte[] value)441 void setSpatializerParameter(int key, in byte[] value); 442 getSpatializerParameter(int key, inout byte[] value)443 void getSpatializerParameter(int key, inout byte[] value); 444 getSpatializerOutput()445 int getSpatializerOutput(); 446 registerSpatializerOutputCallback(in ISpatializerOutputCallback cb)447 void registerSpatializerOutputCallback(in ISpatializerOutputCallback cb); 448 unregisterSpatializerOutputCallback(in ISpatializerOutputCallback cb)449 void unregisterSpatializerOutputCallback(in ISpatializerOutputCallback cb); 450 } 451