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