• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.content.AttributionSource;
22 import android.media.AudioAttributes;
23 import android.media.AudioDeviceAttributes;
24 import android.media.AudioFormat;
25 import android.media.AudioFocusInfo;
26 import android.media.AudioHalVersionInfo;
27 import android.media.AudioMixerAttributes;
28 import android.media.AudioPlaybackConfiguration;
29 import android.media.AudioRecordingConfiguration;
30 import android.media.AudioRoutesInfo;
31 import android.media.BluetoothProfileConnectionInfo;
32 import android.media.FadeManagerConfiguration;
33 import android.media.IAudioDeviceVolumeDispatcher;
34 import android.media.IAudioFocusDispatcher;
35 import android.media.IAudioManagerNative;
36 import android.media.IAudioModeDispatcher;
37 import android.media.IAudioRoutesObserver;
38 import android.media.IAudioServerStateDispatcher;
39 import android.media.ICapturePresetDevicesRoleDispatcher;
40 import android.media.ICommunicationDeviceDispatcher;
41 import android.media.IDeviceVolumeBehaviorDispatcher;
42 import android.media.IDevicesForAttributesCallback;
43 import android.media.ILoudnessCodecUpdatesDispatcher;
44 import android.media.IMuteAwaitConnectionCallback;
45 import android.media.IPlaybackConfigDispatcher;
46 import android.media.IPreferredMixerAttributesDispatcher;
47 import android.media.IRecordingConfigDispatcher;
48 import android.media.IRingtonePlayer;
49 import android.media.IStrategyPreferredDevicesDispatcher;
50 import android.media.IStrategyNonDefaultDevicesDispatcher;
51 import android.media.ISpatializerCallback;
52 import android.media.ISpatializerHeadTrackerAvailableCallback;
53 import android.media.ISpatializerHeadTrackingModeCallback;
54 import android.media.ISpatializerHeadToSoundStagePoseCallback;
55 import android.media.ISpatializerOutputCallback;
56 import android.media.IStreamAliasingDispatcher;
57 import android.media.IVolumeController;
58 import android.media.LoudnessCodecInfo;
59 import android.media.PlayerBase;
60 import android.media.VolumeInfo;
61 import android.media.VolumePolicy;
62 import android.media.audiopolicy.AudioMix;
63 import android.media.audiopolicy.AudioMixingRule;
64 import android.media.audiopolicy.AudioPolicyConfig;
65 import android.media.audiopolicy.AudioProductStrategy;
66 import android.media.audiopolicy.AudioVolumeGroup;
67 import android.media.audiopolicy.IAudioPolicyCallback;
68 import android.media.audiopolicy.IAudioVolumeChangeDispatcher;
69 import android.media.projection.IMediaProjection;
70 import android.net.Uri;
71 import android.os.PersistableBundle;
72 import android.os.UserHandle;
73 import android.view.KeyEvent;
74 
75 /**
76  * {@hide}
77  */
78 interface IAudioService {
79     // C++ and Java methods below.
80 
81     // WARNING: When methods are inserted or deleted in this section, the transaction IDs in
82     // frameworks/native/include/audiomanager/IAudioManager.h must be updated to match the order
83     // in this file.
84     //
85     // When a method's argument list is changed, BpAudioManager's corresponding serialization code
86     // (if any) in frameworks/native/services/audiomanager/IAudioManager.cpp must be updated.
87 
getNativeInterface()88     IAudioManagerNative getNativeInterface();
trackPlayer(in PlayerBase.PlayerIdCard pic)89     int trackPlayer(in PlayerBase.PlayerIdCard pic);
90 
playerAttributes(in int piid, in AudioAttributes attr)91     oneway void playerAttributes(in int piid, in AudioAttributes attr);
92 
playerEvent(in int piid, in int event, in int[] eventId)93     oneway void playerEvent(in int piid, in int event, in int[] eventId);
94 
releasePlayer(in int piid)95     oneway void releasePlayer(in int piid);
96 
trackRecorder(in IBinder recorder)97     int trackRecorder(in IBinder recorder);
98 
recorderEvent(in int riid, in int event)99     oneway void recorderEvent(in int riid, in int event);
100 
releaseRecorder(in int riid)101     oneway void releaseRecorder(in int riid);
102 
playerSessionId(in int piid, in int sessionId)103     oneway void playerSessionId(in int piid, in int sessionId);
104 
portEvent(in int portId, in int event, in @nullable PersistableBundle extras)105     oneway void portEvent(in int portId, in int event, in @nullable PersistableBundle extras);
106 
permissionUpdateBarrier()107     void permissionUpdateBarrier();
108 
109     // Java-only methods below.
adjustStreamVolume(int streamType, int direction, int flags, String callingPackage)110     void adjustStreamVolume(int streamType, int direction, int flags, String callingPackage);
111 
adjustStreamVolumeWithAttribution(int streamType, int direction, int flags, in String callingPackage, in String attributionTag)112     void adjustStreamVolumeWithAttribution(int streamType, int direction, int flags,
113             in String callingPackage, in String attributionTag);
114 
115     @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
setStreamVolume(int streamType, int index, int flags, String callingPackage)116     void setStreamVolume(int streamType, int index, int flags, String callingPackage);
117 
setStreamVolumeWithAttribution(int streamType, int index, int flags, in String callingPackage, in String attributionTag)118     void setStreamVolumeWithAttribution(int streamType, int index, int flags,
119             in String callingPackage, in String attributionTag);
120 
121     @EnforcePermission(anyOf = {"MODIFY_AUDIO_ROUTING", "MODIFY_AUDIO_SETTINGS_PRIVILEGED"})
setDeviceVolume(in VolumeInfo vi, in AudioDeviceAttributes ada, in String callingPackage)122     void setDeviceVolume(in VolumeInfo vi, in AudioDeviceAttributes ada,
123             in String callingPackage);
124 
125     @EnforcePermission(anyOf = {"MODIFY_AUDIO_ROUTING", "MODIFY_AUDIO_SETTINGS_PRIVILEGED"})
getDeviceVolume(in VolumeInfo vi, in AudioDeviceAttributes ada, in String callingPackage)126     VolumeInfo getDeviceVolume(in VolumeInfo vi, in AudioDeviceAttributes ada,
127             in String callingPackage);
128 
handleVolumeKey(in KeyEvent event, boolean isOnTv, String callingPackage, String caller)129     oneway void handleVolumeKey(in KeyEvent event, boolean isOnTv,
130             String callingPackage, String caller);
131 
isStreamMute(int streamType)132     boolean isStreamMute(int streamType);
133 
forceRemoteSubmixFullVolume(boolean startForcing, IBinder cb)134     void forceRemoteSubmixFullVolume(boolean startForcing, IBinder cb);
135 
isMasterMute()136     boolean isMasterMute();
137 
138     @EnforcePermission("MODIFY_AUDIO_ROUTING")
setMasterMute(boolean mute, int flags, String callingPackage, int userId, in String attributionTag)139     void setMasterMute(boolean mute, int flags, String callingPackage, int userId,
140             in String attributionTag);
141 
142     @UnsupportedAppUsage
getStreamVolume(int streamType)143     int getStreamVolume(int streamType);
144 
getStreamMinVolume(int streamType)145     int getStreamMinVolume(int streamType);
146 
147     @UnsupportedAppUsage
getStreamMaxVolume(int streamType)148     int getStreamMaxVolume(int streamType);
149 
150     @EnforcePermission(anyOf={"MODIFY_AUDIO_SETTINGS_PRIVILEGED", "MODIFY_AUDIO_ROUTING"})
getAudioVolumeGroups()151     List<AudioVolumeGroup> getAudioVolumeGroups();
152 
153     @EnforcePermission(anyOf={"MODIFY_AUDIO_SETTINGS_PRIVILEGED", "MODIFY_AUDIO_ROUTING"})
setVolumeGroupVolumeIndex(int groupId, int index, int flags, String callingPackage, in String attributionTag)154     void setVolumeGroupVolumeIndex(int groupId, int index, int flags, String callingPackage,
155             in String attributionTag);
156 
157     @EnforcePermission(anyOf={"MODIFY_AUDIO_SETTINGS_PRIVILEGED", "MODIFY_AUDIO_ROUTING"})
getVolumeGroupVolumeIndex(int groupId)158     int getVolumeGroupVolumeIndex(int groupId);
159 
160     @EnforcePermission(anyOf={"MODIFY_AUDIO_SETTINGS_PRIVILEGED", "MODIFY_AUDIO_ROUTING"})
getVolumeGroupMaxVolumeIndex(int groupId)161     int getVolumeGroupMaxVolumeIndex(int groupId);
162 
163     @EnforcePermission(anyOf={"MODIFY_AUDIO_SETTINGS_PRIVILEGED", "MODIFY_AUDIO_ROUTING"})
getVolumeGroupMinVolumeIndex(int groupId)164     int getVolumeGroupMinVolumeIndex(int groupId);
165 
166     @EnforcePermission("QUERY_AUDIO_STATE")
getLastAudibleVolumeForVolumeGroup(int groupId)167     int getLastAudibleVolumeForVolumeGroup(int groupId);
168 
isVolumeGroupMuted(int groupId)169     boolean isVolumeGroupMuted(int groupId);
170 
adjustVolumeGroupVolume(int groupId, int direction, int flags, String callingPackage)171     void adjustVolumeGroupVolume(int groupId, int direction, int flags, String callingPackage);
172 
173     @EnforcePermission("QUERY_AUDIO_STATE")
getLastAudibleStreamVolume(int streamType)174     int getLastAudibleStreamVolume(int streamType);
175 
176     @EnforcePermission("MODIFY_AUDIO_ROUTING")
setSupportedSystemUsages(in int[] systemUsages)177     void setSupportedSystemUsages(in int[] systemUsages);
178 
179     @EnforcePermission("MODIFY_AUDIO_ROUTING")
getSupportedSystemUsages()180     int[] getSupportedSystemUsages();
181 
182     @EnforcePermission("MODIFY_AUDIO_ROUTING")
getAudioProductStrategies()183     List<AudioProductStrategy> getAudioProductStrategies();
184 
isMicrophoneMuted()185     boolean isMicrophoneMuted();
186 
187     @EnforcePermission("ACCESS_ULTRASOUND")
isUltrasoundSupported()188     boolean isUltrasoundSupported();
189 
190     @EnforcePermission("CAPTURE_AUDIO_HOTWORD")
isHotwordStreamSupported(boolean lookbackAudio)191     boolean isHotwordStreamSupported(boolean lookbackAudio);
192 
setMicrophoneMute(boolean on, String callingPackage, int userId, in String attributionTag)193     void setMicrophoneMute(boolean on, String callingPackage, int userId, in String attributionTag);
194 
195     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
setInputGainIndex(in AudioDeviceAttributes ada, int index)196     void setInputGainIndex(in AudioDeviceAttributes ada, int index);
197 
198     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
getInputGainIndex(in AudioDeviceAttributes ada)199     int getInputGainIndex(in AudioDeviceAttributes ada);
200 
201     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
getMaxInputGainIndex()202     int getMaxInputGainIndex();
203 
204     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
getMinInputGainIndex()205     int getMinInputGainIndex();
206 
207     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
isInputGainFixed(in AudioDeviceAttributes ada)208     boolean isInputGainFixed(in AudioDeviceAttributes ada);
209 
setMicrophoneMuteFromSwitch(boolean on)210     oneway void setMicrophoneMuteFromSwitch(boolean on);
211 
setRingerModeExternal(int ringerMode, String caller)212     void setRingerModeExternal(int ringerMode, String caller);
213 
setRingerModeInternal(int ringerMode, String caller)214     void setRingerModeInternal(int ringerMode, String caller);
215 
getRingerModeExternal()216     int getRingerModeExternal();
217 
getRingerModeInternal()218     int getRingerModeInternal();
219 
isValidRingerMode(int ringerMode)220     boolean isValidRingerMode(int ringerMode);
221 
setVibrateSetting(int vibrateType, int vibrateSetting)222     void setVibrateSetting(int vibrateType, int vibrateSetting);
223 
getVibrateSetting(int vibrateType)224     int getVibrateSetting(int vibrateType);
225 
shouldVibrate(int vibrateType)226     boolean shouldVibrate(int vibrateType);
227 
setMode(int mode, IBinder cb, String callingPackage)228     void setMode(int mode, IBinder cb, String callingPackage);
229 
getMode()230     int getMode();
231 
playSoundEffect(int effectType, int userId)232     oneway void playSoundEffect(int effectType, int userId);
233 
playSoundEffectVolume(int effectType, float volume)234     oneway void playSoundEffectVolume(int effectType, float volume);
235 
loadSoundEffects()236     boolean loadSoundEffects();
237 
unloadSoundEffects()238     oneway void unloadSoundEffects();
239 
reloadAudioSettings()240     oneway void reloadAudioSettings();
241 
getSurroundFormats()242     Map getSurroundFormats();
243 
getReportedSurroundFormats()244     List getReportedSurroundFormats();
245 
setSurroundFormatEnabled(int audioFormat, boolean enabled)246     boolean setSurroundFormatEnabled(int audioFormat, boolean enabled);
247 
isSurroundFormatEnabled(int audioFormat)248     boolean isSurroundFormatEnabled(int audioFormat);
249 
250     @EnforcePermission("WRITE_SETTINGS")
setEncodedSurroundMode(int mode)251     boolean setEncodedSurroundMode(int mode);
252 
getEncodedSurroundMode(int targetSdkVersion)253     int getEncodedSurroundMode(int targetSdkVersion);
254 
setSpeakerphoneOn(IBinder cb, boolean on, in AttributionSource attributionSource)255     void setSpeakerphoneOn(IBinder cb, boolean on, in AttributionSource attributionSource);
256 
isSpeakerphoneOn()257     boolean isSpeakerphoneOn();
258 
setBluetoothScoOn(boolean on)259     void setBluetoothScoOn(boolean on);
260 
261     @EnforcePermission("BLUETOOTH_STACK")
setA2dpSuspended(boolean on)262     void setA2dpSuspended(boolean on);
263 
264     @EnforcePermission("BLUETOOTH_STACK")
setLeAudioSuspended(boolean enable)265     void setLeAudioSuspended(boolean enable);
266 
isBluetoothScoOn()267     boolean isBluetoothScoOn();
268 
setBluetoothA2dpOn(boolean on)269     void setBluetoothA2dpOn(boolean on);
270 
isBluetoothA2dpOn()271     boolean isBluetoothA2dpOn();
272 
requestAudioFocus(in AudioAttributes aa, int focusReqType, IBinder cb, IAudioFocusDispatcher fd, in String clientId, in String callingPackageName, in String attributionTag, int flags, IAudioPolicyCallback pcb, int sdk)273     int requestAudioFocus(in AudioAttributes aa, int focusReqType, IBinder cb,
274             IAudioFocusDispatcher fd, in String clientId, in String callingPackageName,
275             in String attributionTag, int flags, IAudioPolicyCallback pcb, int sdk);
276 
abandonAudioFocus(IAudioFocusDispatcher fd, String clientId, in AudioAttributes aa, in String callingPackageName)277     int abandonAudioFocus(IAudioFocusDispatcher fd, String clientId, in AudioAttributes aa,
278             in String callingPackageName);
279 
unregisterAudioFocusClient(String clientId)280     void unregisterAudioFocusClient(String clientId);
281 
getCurrentAudioFocus()282     int getCurrentAudioFocus();
283 
startBluetoothSco(IBinder cb, int targetSdkVersion, in AttributionSource attributionSource)284     void startBluetoothSco(IBinder cb, int targetSdkVersion,
285             in AttributionSource attributionSource);
startBluetoothScoVirtualCall(IBinder cb, in AttributionSource attributionSource)286     void startBluetoothScoVirtualCall(IBinder cb, in AttributionSource attributionSource);
stopBluetoothSco(IBinder cb, in AttributionSource attributionSource)287     void stopBluetoothSco(IBinder cb, in AttributionSource attributionSource);
288 
forceVolumeControlStream(int streamType, IBinder cb)289     void forceVolumeControlStream(int streamType, IBinder cb);
290 
291     @EnforcePermission("REMOTE_AUDIO_PLAYBACK")
setRingtonePlayer(IRingtonePlayer player)292     void setRingtonePlayer(IRingtonePlayer player);
getRingtonePlayer()293     IRingtonePlayer getRingtonePlayer();
getUiSoundsStreamType()294     int getUiSoundsStreamType();
295 
296     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
getIndependentStreamTypes()297     List getIndependentStreamTypes();
298 
299     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
getStreamTypeAlias(int streamType)300     int getStreamTypeAlias(int streamType);
301 
302     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
isVolumeControlUsingVolumeGroups()303     boolean isVolumeControlUsingVolumeGroups();
304 
305     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
registerStreamAliasingDispatcher(IStreamAliasingDispatcher isad, boolean register)306     void registerStreamAliasingDispatcher(IStreamAliasingDispatcher isad, boolean register);
307 
308     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
setNotifAliasRingForTest(boolean alias)309     void setNotifAliasRingForTest(boolean alias);
310 
311     @EnforcePermission("MODIFY_AUDIO_ROUTING")
setWiredDeviceConnectionState(in AudioDeviceAttributes aa, int state, String caller)312     void setWiredDeviceConnectionState(in AudioDeviceAttributes aa, int state, String caller);
313 
314     @UnsupportedAppUsage
startWatchingRoutes(in IAudioRoutesObserver observer)315     AudioRoutesInfo startWatchingRoutes(in IAudioRoutesObserver observer);
316 
isCameraSoundForced()317     boolean isCameraSoundForced();
318 
setVolumeController(in IVolumeController controller)319     void setVolumeController(in IVolumeController controller);
320 
getVolumeController()321     @nullable IVolumeController getVolumeController();
322 
notifyVolumeControllerVisible(in IVolumeController controller, boolean visible)323     void notifyVolumeControllerVisible(in IVolumeController controller, boolean visible);
324 
325     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
setVolumeControllerLongPressTimeoutEnabled(boolean enable)326     oneway void setVolumeControllerLongPressTimeoutEnabled(boolean enable);
327 
isStreamAffectedByRingerMode(int streamType)328     boolean isStreamAffectedByRingerMode(int streamType);
329 
isStreamAffectedByMute(int streamType)330     boolean isStreamAffectedByMute(int streamType);
331 
isStreamMutableByUi(int streamType)332     boolean isStreamMutableByUi(int streamType);
333 
disableSafeMediaVolume(String callingPackage)334     void disableSafeMediaVolume(String callingPackage);
335 
lowerVolumeToRs1(String callingPackage)336     oneway void lowerVolumeToRs1(String callingPackage);
337 
338     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
getOutputRs2UpperBound()339     float getOutputRs2UpperBound();
340 
341     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
setOutputRs2UpperBound(float rs2Value)342     oneway void setOutputRs2UpperBound(float rs2Value);
343 
344     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
getCsd()345     float getCsd();
346 
347     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
setCsd(float csd)348     oneway void setCsd(float csd);
349 
350     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
forceUseFrameworkMel(boolean useFrameworkMel)351     oneway void forceUseFrameworkMel(boolean useFrameworkMel);
352 
353     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
forceComputeCsdOnAllDevices(boolean computeCsdOnAllDevices)354     oneway void forceComputeCsdOnAllDevices(boolean computeCsdOnAllDevices);
355 
356     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
isCsdEnabled()357     boolean isCsdEnabled();
358 
359     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
isCsdAsAFeatureAvailable()360     boolean isCsdAsAFeatureAvailable();
361 
362     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
isCsdAsAFeatureEnabled()363     boolean isCsdAsAFeatureEnabled();
364 
365     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
setCsdAsAFeatureEnabled(boolean csdToggleValue)366     oneway void setCsdAsAFeatureEnabled(boolean csdToggleValue);
367 
368     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
setBluetoothAudioDeviceCategory(in String address, int deviceCategory)369     boolean setBluetoothAudioDeviceCategory(in String address, int deviceCategory);
370 
371     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
getBluetoothAudioDeviceCategory(in String address)372     int getBluetoothAudioDeviceCategory(in String address);
373 
374     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
isBluetoothAudioDeviceCategoryFixed(in String address)375     boolean isBluetoothAudioDeviceCategoryFixed(in String address);
376 
setHdmiSystemAudioSupported(boolean on)377     int setHdmiSystemAudioSupported(boolean on);
378 
isHdmiSystemAudioSupported()379     boolean isHdmiSystemAudioSupported();
380 
registerAudioPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb, boolean hasFocusListener, boolean isFocusPolicy, boolean isTestFocusPolicy, boolean isVolumeController, in IMediaProjection projection, in AttributionSource attributionSource)381     String registerAudioPolicy(in AudioPolicyConfig policyConfig,
382             in IAudioPolicyCallback pcb, boolean hasFocusListener, boolean isFocusPolicy,
383             boolean isTestFocusPolicy,
384             boolean isVolumeController, in IMediaProjection projection,
385             in AttributionSource attributionSource);
386 
unregisterAudioPolicyAsync(in IAudioPolicyCallback pcb)387     oneway void unregisterAudioPolicyAsync(in IAudioPolicyCallback pcb);
388 
getRegisteredPolicyMixes()389     List<AudioMix> getRegisteredPolicyMixes();
390 
unregisterAudioPolicy(in IAudioPolicyCallback pcb)391     void unregisterAudioPolicy(in IAudioPolicyCallback pcb);
392 
addMixForPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb)393     int addMixForPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb);
394 
removeMixForPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb)395     int removeMixForPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb);
396 
397     @EnforcePermission("MODIFY_AUDIO_ROUTING")
updateMixingRulesForPolicy(in AudioMix[] mixesToUpdate, in AudioMixingRule[] updatedMixingRules, in IAudioPolicyCallback pcb)398     int updateMixingRulesForPolicy(in AudioMix[] mixesToUpdate,
399                                    in AudioMixingRule[] updatedMixingRules,
400                                    in IAudioPolicyCallback pcb);
401 
setFocusPropertiesForPolicy(int duckingBehavior, in IAudioPolicyCallback pcb)402     int setFocusPropertiesForPolicy(int duckingBehavior, in IAudioPolicyCallback pcb);
403 
setVolumePolicy(in VolumePolicy policy)404     void setVolumePolicy(in VolumePolicy policy);
405 
getVolumePolicy()406     VolumePolicy getVolumePolicy();
407 
hasRegisteredDynamicPolicy()408     boolean hasRegisteredDynamicPolicy();
409 
registerRecordingCallback(in IRecordingConfigDispatcher rcdb)410     void registerRecordingCallback(in IRecordingConfigDispatcher rcdb);
411 
unregisterRecordingCallback(in IRecordingConfigDispatcher rcdb)412     oneway void unregisterRecordingCallback(in IRecordingConfigDispatcher rcdb);
413 
getActiveRecordingConfigurations()414     List<AudioRecordingConfiguration> getActiveRecordingConfigurations();
415 
registerPlaybackCallback(in IPlaybackConfigDispatcher pcdb)416     void registerPlaybackCallback(in IPlaybackConfigDispatcher pcdb);
417 
unregisterPlaybackCallback(in IPlaybackConfigDispatcher pcdb)418     oneway void unregisterPlaybackCallback(in IPlaybackConfigDispatcher pcdb);
419 
getActivePlaybackConfigurations()420     List<AudioPlaybackConfiguration> getActivePlaybackConfigurations();
421 
getFocusRampTimeMs(in int focusGain, in AudioAttributes attr)422     int getFocusRampTimeMs(in int focusGain, in AudioAttributes attr);
423 
dispatchFocusChange(in AudioFocusInfo afi, in int focusChange, in IAudioPolicyCallback pcb)424     int dispatchFocusChange(in AudioFocusInfo afi, in int focusChange,
425             in IAudioPolicyCallback pcb);
426 
427     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
428     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED)")
dispatchFocusChangeWithFade(in AudioFocusInfo afi, in int focusChange, in IAudioPolicyCallback pcb, in List<AudioFocusInfo> otherActiveAfis, in FadeManagerConfiguration transientFadeMgrConfig)429     int dispatchFocusChangeWithFade(in AudioFocusInfo afi,
430             in int focusChange,
431             in IAudioPolicyCallback pcb,
432             in List<AudioFocusInfo> otherActiveAfis,
433             in FadeManagerConfiguration transientFadeMgrConfig);
434 
playerHasOpPlayAudio(in int piid, in boolean hasOpPlayAudio)435     oneway void playerHasOpPlayAudio(in int piid, in boolean hasOpPlayAudio);
436 
437     @EnforcePermission("BLUETOOTH_STACK")
handleBluetoothActiveDeviceChanged(in BluetoothDevice newDevice, in BluetoothDevice previousDevice, in BluetoothProfileConnectionInfo info)438     void handleBluetoothActiveDeviceChanged(in BluetoothDevice newDevice,
439             in BluetoothDevice previousDevice, in BluetoothProfileConnectionInfo info);
440 
setFocusRequestResultFromExtPolicy(in AudioFocusInfo afi, int requestResult, in IAudioPolicyCallback pcb)441     oneway void setFocusRequestResultFromExtPolicy(in AudioFocusInfo afi, int requestResult,
442             in IAudioPolicyCallback pcb);
443 
registerAudioServerStateDispatcher(IAudioServerStateDispatcher asd)444     void registerAudioServerStateDispatcher(IAudioServerStateDispatcher asd);
445 
unregisterAudioServerStateDispatcher(IAudioServerStateDispatcher asd)446     oneway void unregisterAudioServerStateDispatcher(IAudioServerStateDispatcher asd);
447 
isAudioServerRunning()448     boolean isAudioServerRunning();
449 
registerAudioVolumeCallback(IAudioVolumeChangeDispatcher avc)450     void registerAudioVolumeCallback(IAudioVolumeChangeDispatcher avc);
451 
unregisterAudioVolumeCallback(IAudioVolumeChangeDispatcher avc)452     oneway void unregisterAudioVolumeCallback(IAudioVolumeChangeDispatcher avc);
453 
setUidDeviceAffinity(in IAudioPolicyCallback pcb, in int uid, in int[] deviceTypes, in String[] deviceAddresses)454     int setUidDeviceAffinity(in IAudioPolicyCallback pcb, in int uid, in int[] deviceTypes,
455              in String[] deviceAddresses);
456 
removeUidDeviceAffinity(in IAudioPolicyCallback pcb, in int uid)457     int removeUidDeviceAffinity(in IAudioPolicyCallback pcb, in int uid);
458 
setUserIdDeviceAffinity(in IAudioPolicyCallback pcb, in int userId, in int[] deviceTypes, in String[] deviceAddresses)459     int setUserIdDeviceAffinity(in IAudioPolicyCallback pcb, in int userId, in int[] deviceTypes,
460              in String[] deviceAddresses);
removeUserIdDeviceAffinity(in IAudioPolicyCallback pcb, in int userId)461     int removeUserIdDeviceAffinity(in IAudioPolicyCallback pcb, in int userId);
462 
hasHapticChannels(in Uri uri)463     boolean hasHapticChannels(in Uri uri);
464 
isCallScreeningModeSupported()465     boolean isCallScreeningModeSupported();
466 
467     @EnforcePermission("MODIFY_AUDIO_ROUTING")
setPreferredDevicesForStrategy(in int strategy, in List<AudioDeviceAttributes> devices)468     int setPreferredDevicesForStrategy(in int strategy, in List<AudioDeviceAttributes> devices);
469 
470     @EnforcePermission("MODIFY_AUDIO_ROUTING")
removePreferredDevicesForStrategy(in int strategy)471     int removePreferredDevicesForStrategy(in int strategy);
472 
473     @EnforcePermission("MODIFY_AUDIO_ROUTING")
getPreferredDevicesForStrategy(in int strategy)474     List<AudioDeviceAttributes> getPreferredDevicesForStrategy(in int strategy);
475 
476     @EnforcePermission("MODIFY_AUDIO_ROUTING")
setDeviceAsNonDefaultForStrategy(in int strategy, in AudioDeviceAttributes device)477     int setDeviceAsNonDefaultForStrategy(in int strategy, in AudioDeviceAttributes device);
478 
479     @EnforcePermission("MODIFY_AUDIO_ROUTING")
removeDeviceAsNonDefaultForStrategy(in int strategy, in AudioDeviceAttributes device)480     int removeDeviceAsNonDefaultForStrategy(in int strategy, in AudioDeviceAttributes device);
481 
482     @EnforcePermission("MODIFY_AUDIO_ROUTING")
getNonDefaultDevicesForStrategy(in int strategy)483     List<AudioDeviceAttributes> getNonDefaultDevicesForStrategy(in int strategy);
484 
getDevicesForAttributes(in AudioAttributes attributes)485     List<AudioDeviceAttributes> getDevicesForAttributes(in AudioAttributes attributes);
486 
getDevicesForAttributesUnprotected(in AudioAttributes attributes)487     List<AudioDeviceAttributes> getDevicesForAttributesUnprotected(in AudioAttributes attributes);
488 
489     @EnforcePermission(anyOf = {"MODIFY_AUDIO_ROUTING", "QUERY_AUDIO_STATE"})
addOnDevicesForAttributesChangedListener(in AudioAttributes attributes, in IDevicesForAttributesCallback callback)490     void addOnDevicesForAttributesChangedListener(in AudioAttributes attributes,
491             in IDevicesForAttributesCallback callback);
492 
removeOnDevicesForAttributesChangedListener( in IDevicesForAttributesCallback callback)493     oneway void removeOnDevicesForAttributesChangedListener(
494             in IDevicesForAttributesCallback callback);
495 
setAllowedCapturePolicy(in int capturePolicy)496     int setAllowedCapturePolicy(in int capturePolicy);
497 
getAllowedCapturePolicy()498     int getAllowedCapturePolicy();
499 
registerStrategyPreferredDevicesDispatcher(IStrategyPreferredDevicesDispatcher dispatcher)500     void registerStrategyPreferredDevicesDispatcher(IStrategyPreferredDevicesDispatcher dispatcher);
501 
unregisterStrategyPreferredDevicesDispatcher( IStrategyPreferredDevicesDispatcher dispatcher)502     oneway void unregisterStrategyPreferredDevicesDispatcher(
503             IStrategyPreferredDevicesDispatcher dispatcher);
504 
registerStrategyNonDefaultDevicesDispatcher( IStrategyNonDefaultDevicesDispatcher dispatcher)505     void registerStrategyNonDefaultDevicesDispatcher(
506             IStrategyNonDefaultDevicesDispatcher dispatcher);
507 
unregisterStrategyNonDefaultDevicesDispatcher( IStrategyNonDefaultDevicesDispatcher dispatcher)508     oneway void unregisterStrategyNonDefaultDevicesDispatcher(
509             IStrategyNonDefaultDevicesDispatcher dispatcher);
510 
setRttEnabled(in boolean rttEnabled)511     oneway void setRttEnabled(in boolean rttEnabled);
512 
513     @EnforcePermission(anyOf = {"MODIFY_AUDIO_ROUTING", "MODIFY_AUDIO_SETTINGS_PRIVILEGED"})
setDeviceVolumeBehavior(in AudioDeviceAttributes device, in int deviceVolumeBehavior, in String pkgName)514     void setDeviceVolumeBehavior(in AudioDeviceAttributes device,
515              in int deviceVolumeBehavior, in String pkgName);
516 
517     @EnforcePermission(anyOf = {"MODIFY_AUDIO_ROUTING", "QUERY_AUDIO_STATE", "MODIFY_AUDIO_SETTINGS_PRIVILEGED"})
getDeviceVolumeBehavior(in AudioDeviceAttributes device)518     int getDeviceVolumeBehavior(in AudioDeviceAttributes device);
519 
520     // WARNING: read warning at top of file, new methods that need to be used by native
521     // code via IAudioManager.h need to be added to the top section.
522 
523     @EnforcePermission("MODIFY_AUDIO_ROUTING")
setMultiAudioFocusEnabled(in boolean enabled)524     oneway void setMultiAudioFocusEnabled(in boolean enabled);
525 
setPreferredDevicesForCapturePreset( in int capturePreset, in List<AudioDeviceAttributes> devices)526     int setPreferredDevicesForCapturePreset(
527             in int capturePreset, in List<AudioDeviceAttributes> devices);
528 
529     @EnforcePermission("MODIFY_AUDIO_ROUTING")
clearPreferredDevicesForCapturePreset(in int capturePreset)530     int clearPreferredDevicesForCapturePreset(in int capturePreset);
531 
532     @EnforcePermission("MODIFY_AUDIO_ROUTING")
getPreferredDevicesForCapturePreset(in int capturePreset)533     List<AudioDeviceAttributes> getPreferredDevicesForCapturePreset(in int capturePreset);
534 
registerCapturePresetDevicesRoleDispatcher(ICapturePresetDevicesRoleDispatcher dispatcher)535     void registerCapturePresetDevicesRoleDispatcher(ICapturePresetDevicesRoleDispatcher dispatcher);
536 
unregisterCapturePresetDevicesRoleDispatcher( ICapturePresetDevicesRoleDispatcher dispatcher)537     oneway void unregisterCapturePresetDevicesRoleDispatcher(
538             ICapturePresetDevicesRoleDispatcher dispatcher);
539 
adjustStreamVolumeForUid(int streamType, int direction, int flags, in String packageName, int uid, int pid, in UserHandle userHandle, int targetSdkVersion)540     oneway void adjustStreamVolumeForUid(int streamType, int direction, int flags,
541             in String packageName, int uid, int pid, in UserHandle userHandle,
542             int targetSdkVersion);
543 
adjustSuggestedStreamVolumeForUid(int streamType, int direction, int flags, in String packageName, int uid, int pid, in UserHandle userHandle, int targetSdkVersion)544     oneway void adjustSuggestedStreamVolumeForUid(int streamType, int direction, int flags,
545             in String packageName, int uid, int pid, in UserHandle userHandle,
546             int targetSdkVersion);
547 
setStreamVolumeForUid(int streamType, int direction, int flags, in String packageName, int uid, int pid, in UserHandle userHandle, int targetSdkVersion)548     oneway void setStreamVolumeForUid(int streamType, int direction, int flags,
549             in String packageName, int uid, int pid, in UserHandle userHandle,
550             int targetSdkVersion);
551 
adjustVolume(int direction, int flags)552     oneway void adjustVolume(int direction, int flags);
553 
adjustSuggestedStreamVolume(int direction, int suggestedStreamType, int flags)554     oneway void adjustSuggestedStreamVolume(int direction, int suggestedStreamType, int flags);
555 
isMusicActive(in boolean remotely)556     boolean isMusicActive(in boolean remotely);
557 
getDeviceMaskForStream(in int streamType)558     int getDeviceMaskForStream(in int streamType);
559 
getAvailableCommunicationDeviceIds()560     int[] getAvailableCommunicationDeviceIds();
561 
setCommunicationDevice(IBinder cb, int portId, in AttributionSource attributionSource)562     boolean setCommunicationDevice(IBinder cb, int portId, in AttributionSource attributionSource);
563 
getCommunicationDevice()564     int getCommunicationDevice();
565 
registerCommunicationDeviceDispatcher(ICommunicationDeviceDispatcher dispatcher)566     void registerCommunicationDeviceDispatcher(ICommunicationDeviceDispatcher dispatcher);
567 
unregisterCommunicationDeviceDispatcher( ICommunicationDeviceDispatcher dispatcher)568     oneway void unregisterCommunicationDeviceDispatcher(
569             ICommunicationDeviceDispatcher dispatcher);
570 
areNavigationRepeatSoundEffectsEnabled()571     boolean areNavigationRepeatSoundEffectsEnabled();
572 
setNavigationRepeatSoundEffectsEnabled(boolean enabled)573     oneway void setNavigationRepeatSoundEffectsEnabled(boolean enabled);
574 
isHomeSoundEffectEnabled()575     boolean isHomeSoundEffectEnabled();
576 
setHomeSoundEffectEnabled(boolean enabled)577     oneway void setHomeSoundEffectEnabled(boolean enabled);
578 
setAdditionalOutputDeviceDelay(in AudioDeviceAttributes device, long delayMillis)579     boolean setAdditionalOutputDeviceDelay(in AudioDeviceAttributes device, long delayMillis);
580 
getAdditionalOutputDeviceDelay(in AudioDeviceAttributes device)581     long getAdditionalOutputDeviceDelay(in AudioDeviceAttributes device);
582 
getMaxAdditionalOutputDeviceDelay(in AudioDeviceAttributes device)583     long getMaxAdditionalOutputDeviceDelay(in AudioDeviceAttributes device);
584 
requestAudioFocusForTest(in AudioAttributes aa, int focusReqType, IBinder cb, in IAudioFocusDispatcher fd, in String clientId, in String callingPackageName, int flags, int uid, int sdk)585     int requestAudioFocusForTest(in AudioAttributes aa, int focusReqType, IBinder cb,
586             in IAudioFocusDispatcher fd, in String clientId, in String callingPackageName,
587             int flags, int uid, int sdk);
588 
abandonAudioFocusForTest(in IAudioFocusDispatcher fd, in String clientId, in AudioAttributes aa, in String callingPackageName)589     int abandonAudioFocusForTest(in IAudioFocusDispatcher fd, in String clientId,
590             in AudioAttributes aa, in String callingPackageName);
591 
getFadeOutDurationOnFocusLossMillis(in AudioAttributes aa)592     long getFadeOutDurationOnFocusLossMillis(in AudioAttributes aa);
593 
594     @EnforcePermission("QUERY_AUDIO_STATE")
595     /* Returns a List<Integer> */
596     @SuppressWarnings(value = {"untyped-collection"})
getFocusDuckedUidsForTest()597     List getFocusDuckedUidsForTest();
598 
599     @EnforcePermission("QUERY_AUDIO_STATE")
getFocusFadeOutDurationForTest()600     long getFocusFadeOutDurationForTest();
601 
602     @EnforcePermission("QUERY_AUDIO_STATE")
getFocusUnmuteDelayAfterFadeOutForTest()603     long getFocusUnmuteDelayAfterFadeOutForTest();
604 
605     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
enterAudioFocusFreezeForTest(IBinder cb, in int[] uids)606     boolean enterAudioFocusFreezeForTest(IBinder cb, in int[] uids);
607 
608     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
exitAudioFocusFreezeForTest(IBinder cb)609     boolean exitAudioFocusFreezeForTest(IBinder cb);
610 
registerModeDispatcher(IAudioModeDispatcher dispatcher)611     void registerModeDispatcher(IAudioModeDispatcher dispatcher);
612 
unregisterModeDispatcher(IAudioModeDispatcher dispatcher)613     oneway void unregisterModeDispatcher(IAudioModeDispatcher dispatcher);
614 
getSpatializerImmersiveAudioLevel()615     int getSpatializerImmersiveAudioLevel();
616 
isSpatializerEnabled()617     boolean isSpatializerEnabled();
618 
isSpatializerAvailable()619     boolean isSpatializerAvailable();
620 
621     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
isSpatializerAvailableForDevice(in AudioDeviceAttributes device)622     boolean isSpatializerAvailableForDevice(in AudioDeviceAttributes device);
623 
624     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
hasHeadTracker(in AudioDeviceAttributes device)625     boolean hasHeadTracker(in AudioDeviceAttributes device);
626 
627     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
setHeadTrackerEnabled(boolean enabled, in AudioDeviceAttributes device)628     void setHeadTrackerEnabled(boolean enabled, in AudioDeviceAttributes device);
629 
630     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
isHeadTrackerEnabled(in AudioDeviceAttributes device)631     boolean isHeadTrackerEnabled(in AudioDeviceAttributes device);
632 
isHeadTrackerAvailable()633     boolean isHeadTrackerAvailable();
634 
registerSpatializerHeadTrackerAvailableCallback( in ISpatializerHeadTrackerAvailableCallback cb, boolean register)635     void registerSpatializerHeadTrackerAvailableCallback(
636             in ISpatializerHeadTrackerAvailableCallback cb, boolean register);
637 
638     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
setSpatializerEnabled(boolean enabled)639     void setSpatializerEnabled(boolean enabled);
640 
canBeSpatialized(in AudioAttributes aa, in AudioFormat af)641     boolean canBeSpatialized(in AudioAttributes aa, in AudioFormat af);
642 
643     /* Returns a List<Integer> */
getSpatializedChannelMasks()644     List getSpatializedChannelMasks();
645 
registerSpatializerCallback(in ISpatializerCallback cb)646     void registerSpatializerCallback(in ISpatializerCallback cb);
647 
unregisterSpatializerCallback(in ISpatializerCallback cb)648     void unregisterSpatializerCallback(in ISpatializerCallback cb);
649 
650     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
registerSpatializerHeadTrackingCallback(in ISpatializerHeadTrackingModeCallback cb)651     void registerSpatializerHeadTrackingCallback(in ISpatializerHeadTrackingModeCallback cb);
652 
653     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
unregisterSpatializerHeadTrackingCallback(in ISpatializerHeadTrackingModeCallback cb)654     void unregisterSpatializerHeadTrackingCallback(in ISpatializerHeadTrackingModeCallback cb);
655 
656     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
registerHeadToSoundstagePoseCallback(in ISpatializerHeadToSoundStagePoseCallback cb)657     void registerHeadToSoundstagePoseCallback(in ISpatializerHeadToSoundStagePoseCallback cb);
658 
659     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
unregisterHeadToSoundstagePoseCallback(in ISpatializerHeadToSoundStagePoseCallback cb)660     void unregisterHeadToSoundstagePoseCallback(in ISpatializerHeadToSoundStagePoseCallback cb);
661 
662     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
getSpatializerCompatibleAudioDevices()663     List<AudioDeviceAttributes> getSpatializerCompatibleAudioDevices();
664 
665     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
addSpatializerCompatibleAudioDevice(in AudioDeviceAttributes ada)666     void addSpatializerCompatibleAudioDevice(in AudioDeviceAttributes ada);
667 
668     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
removeSpatializerCompatibleAudioDevice(in AudioDeviceAttributes ada)669     void removeSpatializerCompatibleAudioDevice(in AudioDeviceAttributes ada);
670 
671     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
setDesiredHeadTrackingMode(int mode)672     void setDesiredHeadTrackingMode(int mode);
673 
674     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
getDesiredHeadTrackingMode()675     int getDesiredHeadTrackingMode();
676 
677     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
getSupportedHeadTrackingModes()678     int[] getSupportedHeadTrackingModes();
679 
680     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
getActualHeadTrackingMode()681     int getActualHeadTrackingMode();
682 
683     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
setSpatializerGlobalTransform(in float[] transform)684     oneway void setSpatializerGlobalTransform(in float[] transform);
685 
686     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
recenterHeadTracker()687     oneway void recenterHeadTracker();
688 
689     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
setSpatializerParameter(int key, in byte[] value)690     void setSpatializerParameter(int key, in byte[] value);
691 
692     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
getSpatializerParameter(int key, inout byte[] value)693     void getSpatializerParameter(int key, inout byte[] value);
694 
695     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
getSpatializerOutput()696     int getSpatializerOutput();
697 
698     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
registerSpatializerOutputCallback(in ISpatializerOutputCallback cb)699     void registerSpatializerOutputCallback(in ISpatializerOutputCallback cb);
700 
701     @EnforcePermission("MODIFY_DEFAULT_AUDIO_EFFECTS")
unregisterSpatializerOutputCallback(in ISpatializerOutputCallback cb)702     void unregisterSpatializerOutputCallback(in ISpatializerOutputCallback cb);
703 
isVolumeFixed()704     boolean isVolumeFixed();
705 
getDefaultVolumeInfo()706     VolumeInfo getDefaultVolumeInfo();
707 
708     @EnforcePermission("CALL_AUDIO_INTERCEPTION")
isPstnCallAudioInterceptable()709     boolean isPstnCallAudioInterceptable();
710 
muteAwaitConnection(in int[] usagesToMute, in AudioDeviceAttributes dev, long timeOutMs)711     oneway void muteAwaitConnection(in int[] usagesToMute, in AudioDeviceAttributes dev,
712             long timeOutMs);
713 
cancelMuteAwaitConnection(in AudioDeviceAttributes dev)714     oneway void cancelMuteAwaitConnection(in AudioDeviceAttributes dev);
715 
716     @EnforcePermission("MODIFY_AUDIO_ROUTING")
getMutingExpectedDevice()717     AudioDeviceAttributes getMutingExpectedDevice();
718 
719     @EnforcePermission("MODIFY_AUDIO_ROUTING")
registerMuteAwaitConnectionDispatcher(in IMuteAwaitConnectionCallback cb, boolean register)720     void registerMuteAwaitConnectionDispatcher(in IMuteAwaitConnectionCallback cb,
721             boolean register);
722 
setTestDeviceConnectionState(in AudioDeviceAttributes device, boolean connected)723     void setTestDeviceConnectionState(in AudioDeviceAttributes device, boolean connected);
724 
725     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(anyOf={android.Manifest.permission.MODIFY_AUDIO_ROUTING,android.Manifest.permission.QUERY_AUDIO_STATE})")
registerDeviceVolumeBehaviorDispatcher(boolean register, in IDeviceVolumeBehaviorDispatcher dispatcher)726     void registerDeviceVolumeBehaviorDispatcher(boolean register,
727             in IDeviceVolumeBehaviorDispatcher dispatcher);
728 
729     @EnforcePermission("MODIFY_AUDIO_ROUTING")
getFocusStack()730     List<AudioFocusInfo> getFocusStack();
731 
732     @EnforcePermission("MODIFY_AUDIO_ROUTING")
sendFocusLossAndUpdate(in AudioFocusInfo focusLoser, in IAudioPolicyCallback apcb)733     oneway void sendFocusLossAndUpdate(in AudioFocusInfo focusLoser, in IAudioPolicyCallback apcb);
734 
735     @EnforcePermission("MODIFY_AUDIO_ROUTING")
sendFocusLoss(in AudioFocusInfo focusLoser, in IAudioPolicyCallback apcb)736     boolean sendFocusLoss(in AudioFocusInfo focusLoser, in IAudioPolicyCallback apcb);
737 
738     @EnforcePermission("MODIFY_AUDIO_ROUTING")
739     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)")
addAssistantServicesUids(in int[] assistantUID)740     void addAssistantServicesUids(in int[] assistantUID);
741 
742     @EnforcePermission("MODIFY_AUDIO_ROUTING")
743     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)")
removeAssistantServicesUids(in int[] assistantUID)744     void removeAssistantServicesUids(in int[] assistantUID);
745 
746     @EnforcePermission("MODIFY_AUDIO_ROUTING")
747     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)")
setActiveAssistantServiceUids(in int[] activeUids)748     void setActiveAssistantServiceUids(in int[] activeUids);
749 
750     @EnforcePermission("MODIFY_AUDIO_ROUTING")
751     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)")
getAssistantServicesUids()752     int[] getAssistantServicesUids();
753 
754     @EnforcePermission("MODIFY_AUDIO_ROUTING")
755     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)")
getActiveAssistantServiceUids()756     int[] getActiveAssistantServiceUids();
757 
758     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(anyOf={android.Manifest.permission.MODIFY_AUDIO_ROUTING,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
registerDeviceVolumeDispatcherForAbsoluteVolume(boolean register, in IAudioDeviceVolumeDispatcher cb, in String packageName, in AudioDeviceAttributes device, in List<VolumeInfo> volumes, boolean handlesvolumeAdjustment, int volumeBehavior)759     void registerDeviceVolumeDispatcherForAbsoluteVolume(boolean register,
760             in IAudioDeviceVolumeDispatcher cb,
761             in String packageName,
762             in AudioDeviceAttributes device, in List<VolumeInfo> volumes,
763             boolean handlesvolumeAdjustment,
764             int volumeBehavior);
765 
getHalVersion()766     AudioHalVersionInfo getHalVersion();
767 
768     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_SETTINGS)")
setPreferredMixerAttributes( in AudioAttributes aa, int portId, in AudioMixerAttributes mixerAttributes)769     int setPreferredMixerAttributes(
770             in AudioAttributes aa, int portId, in AudioMixerAttributes mixerAttributes);
771     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_SETTINGS)")
clearPreferredMixerAttributes(in AudioAttributes aa, int portId)772     int clearPreferredMixerAttributes(in AudioAttributes aa, int portId);
registerPreferredMixerAttributesDispatcher( IPreferredMixerAttributesDispatcher dispatcher)773     void registerPreferredMixerAttributesDispatcher(
774             IPreferredMixerAttributesDispatcher dispatcher);
unregisterPreferredMixerAttributesDispatcher( IPreferredMixerAttributesDispatcher dispatcher)775     oneway void unregisterPreferredMixerAttributesDispatcher(
776             IPreferredMixerAttributesDispatcher dispatcher);
777 
778     @EnforcePermission("MODIFY_AUDIO_ROUTING")
779     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)")
supportsBluetoothVariableLatency()780     boolean supportsBluetoothVariableLatency();
781 
782     @EnforcePermission("MODIFY_AUDIO_ROUTING")
783     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)")
setBluetoothVariableLatencyEnabled(boolean enabled)784     void setBluetoothVariableLatencyEnabled(boolean enabled);
785 
786     @EnforcePermission("MODIFY_AUDIO_ROUTING")
787     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)")
isBluetoothVariableLatencyEnabled()788     boolean isBluetoothVariableLatencyEnabled();
789 
registerLoudnessCodecUpdatesDispatcher(in ILoudnessCodecUpdatesDispatcher dispatcher)790     void registerLoudnessCodecUpdatesDispatcher(in ILoudnessCodecUpdatesDispatcher dispatcher);
791 
unregisterLoudnessCodecUpdatesDispatcher(in ILoudnessCodecUpdatesDispatcher dispatcher)792     void unregisterLoudnessCodecUpdatesDispatcher(in ILoudnessCodecUpdatesDispatcher dispatcher);
793 
startLoudnessCodecUpdates(int sessionId)794     void startLoudnessCodecUpdates(int sessionId);
795 
stopLoudnessCodecUpdates(int sessionId)796     void stopLoudnessCodecUpdates(int sessionId);
797 
addLoudnessCodecInfo(int sessionId, int mediaCodecHash, in LoudnessCodecInfo codecInfo)798     void addLoudnessCodecInfo(int sessionId, int mediaCodecHash,
799             in LoudnessCodecInfo codecInfo);
800 
removeLoudnessCodecInfo(int sessionId, in LoudnessCodecInfo codecInfo)801     void removeLoudnessCodecInfo(int sessionId, in LoudnessCodecInfo codecInfo);
802 
getLoudnessParams(in LoudnessCodecInfo codecInfo)803     PersistableBundle getLoudnessParams(in LoudnessCodecInfo codecInfo);
804 
805     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
806     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED)")
setFadeManagerConfigurationForFocusLoss(in FadeManagerConfiguration fmcForFocusLoss)807     int setFadeManagerConfigurationForFocusLoss(in FadeManagerConfiguration fmcForFocusLoss);
808 
809     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
810     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED)")
clearFadeManagerConfigurationForFocusLoss()811     int clearFadeManagerConfigurationForFocusLoss();
812 
813     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
814     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED)")
getFadeManagerConfigurationForFocusLoss()815     FadeManagerConfiguration getFadeManagerConfigurationForFocusLoss();
816 
817     @EnforcePermission("QUERY_AUDIO_STATE")
818     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.QUERY_AUDIO_STATE)")
shouldNotificationSoundPlay(in AudioAttributes aa)819     boolean shouldNotificationSoundPlay(in AudioAttributes aa);
820 
821     @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED")
822     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED)")
setEnableHardening(in boolean shouldEnable)823     void setEnableHardening(in boolean shouldEnable);
824 }
825