• 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.media.AudioAttributes;
21 import android.media.AudioFocusInfo;
22 import android.media.AudioPlaybackConfiguration;
23 import android.media.AudioRecordingConfiguration;
24 import android.media.AudioRoutesInfo;
25 import android.media.IAudioFocusDispatcher;
26 import android.media.IAudioRoutesObserver;
27 import android.media.IAudioServerStateDispatcher;
28 import android.media.IPlaybackConfigDispatcher;
29 import android.media.IRecordingConfigDispatcher;
30 import android.media.IRingtonePlayer;
31 import android.media.IVolumeController;
32 import android.media.IVolumeController;
33 import android.media.PlayerBase;
34 import android.media.VolumePolicy;
35 import android.media.audiopolicy.AudioPolicyConfig;
36 import android.media.audiopolicy.AudioProductStrategy;
37 import android.media.audiopolicy.AudioVolumeGroup;
38 import android.media.audiopolicy.IAudioPolicyCallback;
39 import android.media.projection.IMediaProjection;
40 import android.net.Uri;
41 
42 /**
43  * {@hide}
44  */
45 interface IAudioService {
46     // C++ and Java methods below.
47 
48     // WARNING: When methods are inserted or deleted in this section, the transaction IDs in
49     // frameworks/native/include/audiomanager/IAudioManager.h must be updated to match the order
50     // in this file.
51     //
52     // When a method's argument list is changed, BpAudioManager's corresponding serialization code
53     // (if any) in frameworks/native/services/audiomanager/IAudioManager.cpp must be updated.
54 
trackPlayer(in PlayerBase.PlayerIdCard pic)55     int trackPlayer(in PlayerBase.PlayerIdCard pic);
56 
playerAttributes(in int piid, in AudioAttributes attr)57     oneway void playerAttributes(in int piid, in AudioAttributes attr);
58 
playerEvent(in int piid, in int event)59     oneway void playerEvent(in int piid, in int event);
60 
releasePlayer(in int piid)61     oneway void releasePlayer(in int piid);
62 
trackRecorder(in IBinder recorder)63     int trackRecorder(in IBinder recorder);
64 
recorderEvent(in int riid, in int event)65     oneway void recorderEvent(in int riid, in int event);
66 
releaseRecorder(in int riid)67     oneway void releaseRecorder(in int riid);
68 
69     // Java-only methods below.
70 
adjustSuggestedStreamVolume(int direction, int suggestedStreamType, int flags, String callingPackage, String caller)71     oneway void adjustSuggestedStreamVolume(int direction, int suggestedStreamType, int flags,
72             String callingPackage, String caller);
73 
adjustStreamVolume(int streamType, int direction, int flags, String callingPackage)74     void adjustStreamVolume(int streamType, int direction, int flags, String callingPackage);
75 
76     @UnsupportedAppUsage
setStreamVolume(int streamType, int index, int flags, String callingPackage)77     void setStreamVolume(int streamType, int index, int flags, String callingPackage);
78 
isStreamMute(int streamType)79     boolean isStreamMute(int streamType);
80 
forceRemoteSubmixFullVolume(boolean startForcing, IBinder cb)81     void forceRemoteSubmixFullVolume(boolean startForcing, IBinder cb);
82 
isMasterMute()83     boolean isMasterMute();
84 
setMasterMute(boolean mute, int flags, String callingPackage, int userId)85     void setMasterMute(boolean mute, int flags, String callingPackage, int userId);
86 
87     @UnsupportedAppUsage
getStreamVolume(int streamType)88     int getStreamVolume(int streamType);
89 
getStreamMinVolume(int streamType)90     int getStreamMinVolume(int streamType);
91 
92     @UnsupportedAppUsage
getStreamMaxVolume(int streamType)93     int getStreamMaxVolume(int streamType);
94 
getAudioVolumeGroups()95     List<AudioVolumeGroup> getAudioVolumeGroups();
96 
setVolumeIndexForAttributes(in AudioAttributes aa, int index, int flags, String callingPackage)97     void setVolumeIndexForAttributes(in AudioAttributes aa, int index, int flags, String callingPackage);
98 
getVolumeIndexForAttributes(in AudioAttributes aa)99     int getVolumeIndexForAttributes(in AudioAttributes aa);
100 
getMaxVolumeIndexForAttributes(in AudioAttributes aa)101     int getMaxVolumeIndexForAttributes(in AudioAttributes aa);
102 
getMinVolumeIndexForAttributes(in AudioAttributes aa)103     int getMinVolumeIndexForAttributes(in AudioAttributes aa);
104 
getLastAudibleStreamVolume(int streamType)105     int getLastAudibleStreamVolume(int streamType);
106 
getAudioProductStrategies()107     List<AudioProductStrategy> getAudioProductStrategies();
108 
setMicrophoneMute(boolean on, String callingPackage, int userId)109     void setMicrophoneMute(boolean on, String callingPackage, int userId);
110 
setRingerModeExternal(int ringerMode, String caller)111     void setRingerModeExternal(int ringerMode, String caller);
112 
setRingerModeInternal(int ringerMode, String caller)113     void setRingerModeInternal(int ringerMode, String caller);
114 
getRingerModeExternal()115     int getRingerModeExternal();
116 
getRingerModeInternal()117     int getRingerModeInternal();
118 
isValidRingerMode(int ringerMode)119     boolean isValidRingerMode(int ringerMode);
120 
setVibrateSetting(int vibrateType, int vibrateSetting)121     void setVibrateSetting(int vibrateType, int vibrateSetting);
122 
getVibrateSetting(int vibrateType)123     int getVibrateSetting(int vibrateType);
124 
shouldVibrate(int vibrateType)125     boolean shouldVibrate(int vibrateType);
126 
setMode(int mode, IBinder cb, String callingPackage)127     void setMode(int mode, IBinder cb, String callingPackage);
128 
getMode()129     int getMode();
130 
playSoundEffect(int effectType)131     oneway void playSoundEffect(int effectType);
132 
playSoundEffectVolume(int effectType, float volume)133     oneway void playSoundEffectVolume(int effectType, float volume);
134 
loadSoundEffects()135     boolean loadSoundEffects();
136 
unloadSoundEffects()137     oneway void unloadSoundEffects();
138 
reloadAudioSettings()139     oneway void reloadAudioSettings();
140 
avrcpSupportsAbsoluteVolume(String address, boolean support)141     oneway void avrcpSupportsAbsoluteVolume(String address, boolean support);
142 
setSpeakerphoneOn(boolean on)143     void setSpeakerphoneOn(boolean on);
144 
isSpeakerphoneOn()145     boolean isSpeakerphoneOn();
146 
setBluetoothScoOn(boolean on)147     void setBluetoothScoOn(boolean on);
148 
isBluetoothScoOn()149     boolean isBluetoothScoOn();
150 
setBluetoothA2dpOn(boolean on)151     void setBluetoothA2dpOn(boolean on);
152 
isBluetoothA2dpOn()153     boolean isBluetoothA2dpOn();
154 
requestAudioFocus(in AudioAttributes aa, int durationHint, IBinder cb, IAudioFocusDispatcher fd, String clientId, String callingPackageName, int flags, IAudioPolicyCallback pcb, int sdk)155     int requestAudioFocus(in AudioAttributes aa, int durationHint, IBinder cb,
156             IAudioFocusDispatcher fd, String clientId, String callingPackageName, int flags,
157             IAudioPolicyCallback pcb, int sdk);
158 
abandonAudioFocus(IAudioFocusDispatcher fd, String clientId, in AudioAttributes aa, in String callingPackageName)159     int abandonAudioFocus(IAudioFocusDispatcher fd, String clientId, in AudioAttributes aa,
160             in String callingPackageName);
161 
unregisterAudioFocusClient(String clientId)162     void unregisterAudioFocusClient(String clientId);
163 
getCurrentAudioFocus()164     int getCurrentAudioFocus();
165 
startBluetoothSco(IBinder cb, int targetSdkVersion)166     void startBluetoothSco(IBinder cb, int targetSdkVersion);
startBluetoothScoVirtualCall(IBinder cb)167     void startBluetoothScoVirtualCall(IBinder cb);
stopBluetoothSco(IBinder cb)168     void stopBluetoothSco(IBinder cb);
169 
forceVolumeControlStream(int streamType, IBinder cb)170     void forceVolumeControlStream(int streamType, IBinder cb);
171 
setRingtonePlayer(IRingtonePlayer player)172     void setRingtonePlayer(IRingtonePlayer player);
getRingtonePlayer()173     IRingtonePlayer getRingtonePlayer();
getUiSoundsStreamType()174     int getUiSoundsStreamType();
175 
setWiredDeviceConnectionState(int type, int state, String address, String name, String caller)176     void setWiredDeviceConnectionState(int type, int state, String address, String name,
177             String caller);
178 
handleBluetoothA2dpDeviceConfigChange(in BluetoothDevice device)179     void handleBluetoothA2dpDeviceConfigChange(in BluetoothDevice device);
180 
181     @UnsupportedAppUsage
startWatchingRoutes(in IAudioRoutesObserver observer)182     AudioRoutesInfo startWatchingRoutes(in IAudioRoutesObserver observer);
183 
isCameraSoundForced()184     boolean isCameraSoundForced();
185 
setVolumeController(in IVolumeController controller)186     void setVolumeController(in IVolumeController controller);
187 
notifyVolumeControllerVisible(in IVolumeController controller, boolean visible)188     void notifyVolumeControllerVisible(in IVolumeController controller, boolean visible);
189 
isStreamAffectedByRingerMode(int streamType)190     boolean isStreamAffectedByRingerMode(int streamType);
191 
isStreamAffectedByMute(int streamType)192     boolean isStreamAffectedByMute(int streamType);
193 
disableSafeMediaVolume(String callingPackage)194     void disableSafeMediaVolume(String callingPackage);
195 
setHdmiSystemAudioSupported(boolean on)196     int setHdmiSystemAudioSupported(boolean on);
197 
isHdmiSystemAudioSupported()198     boolean isHdmiSystemAudioSupported();
199 
registerAudioPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb, boolean hasFocusListener, boolean isFocusPolicy, boolean isTestFocusPolicy, boolean isVolumeController, in IMediaProjection projection)200     String registerAudioPolicy(in AudioPolicyConfig policyConfig,
201             in IAudioPolicyCallback pcb, boolean hasFocusListener, boolean isFocusPolicy,
202             boolean isTestFocusPolicy,
203             boolean isVolumeController, in IMediaProjection projection);
204 
unregisterAudioPolicyAsync(in IAudioPolicyCallback pcb)205     oneway void unregisterAudioPolicyAsync(in IAudioPolicyCallback pcb);
206 
unregisterAudioPolicy(in IAudioPolicyCallback pcb)207     void unregisterAudioPolicy(in IAudioPolicyCallback pcb);
208 
addMixForPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb)209     int addMixForPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb);
210 
removeMixForPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb)211     int removeMixForPolicy(in AudioPolicyConfig policyConfig, in IAudioPolicyCallback pcb);
212 
setFocusPropertiesForPolicy(int duckingBehavior, in IAudioPolicyCallback pcb)213     int setFocusPropertiesForPolicy(int duckingBehavior, in IAudioPolicyCallback pcb);
214 
setVolumePolicy(in VolumePolicy policy)215     void setVolumePolicy(in VolumePolicy policy);
216 
hasRegisteredDynamicPolicy()217     boolean hasRegisteredDynamicPolicy();
218 
registerRecordingCallback(in IRecordingConfigDispatcher rcdb)219     void registerRecordingCallback(in IRecordingConfigDispatcher rcdb);
220 
unregisterRecordingCallback(in IRecordingConfigDispatcher rcdb)221     oneway void unregisterRecordingCallback(in IRecordingConfigDispatcher rcdb);
222 
getActiveRecordingConfigurations()223     List<AudioRecordingConfiguration> getActiveRecordingConfigurations();
224 
registerPlaybackCallback(in IPlaybackConfigDispatcher pcdb)225     void registerPlaybackCallback(in IPlaybackConfigDispatcher pcdb);
226 
unregisterPlaybackCallback(in IPlaybackConfigDispatcher pcdb)227     oneway void unregisterPlaybackCallback(in IPlaybackConfigDispatcher pcdb);
228 
getActivePlaybackConfigurations()229     List<AudioPlaybackConfiguration> getActivePlaybackConfigurations();
230 
disableRingtoneSync(in int userId)231     void disableRingtoneSync(in int userId);
232 
getFocusRampTimeMs(in int focusGain, in AudioAttributes attr)233     int getFocusRampTimeMs(in int focusGain, in AudioAttributes attr);
234 
dispatchFocusChange(in AudioFocusInfo afi, in int focusChange, in IAudioPolicyCallback pcb)235     int dispatchFocusChange(in AudioFocusInfo afi, in int focusChange,
236             in IAudioPolicyCallback pcb);
237 
playerHasOpPlayAudio(in int piid, in boolean hasOpPlayAudio)238     oneway void playerHasOpPlayAudio(in int piid, in boolean hasOpPlayAudio);
239 
setBluetoothHearingAidDeviceConnectionState(in BluetoothDevice device, int state, boolean suppressNoisyIntent, int musicDevice)240     void setBluetoothHearingAidDeviceConnectionState(in BluetoothDevice device,
241             int state, boolean suppressNoisyIntent, int musicDevice);
242 
setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(in BluetoothDevice device, int state, int profile, boolean suppressNoisyIntent, int a2dpVolume)243     void setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(in BluetoothDevice device,
244             int state, int profile, boolean suppressNoisyIntent, int a2dpVolume);
245 
setFocusRequestResultFromExtPolicy(in AudioFocusInfo afi, int requestResult, in IAudioPolicyCallback pcb)246     oneway void setFocusRequestResultFromExtPolicy(in AudioFocusInfo afi, int requestResult,
247             in IAudioPolicyCallback pcb);
248 
registerAudioServerStateDispatcher(IAudioServerStateDispatcher asd)249     void registerAudioServerStateDispatcher(IAudioServerStateDispatcher asd);
250 
unregisterAudioServerStateDispatcher(IAudioServerStateDispatcher asd)251     oneway void unregisterAudioServerStateDispatcher(IAudioServerStateDispatcher asd);
252 
isAudioServerRunning()253     boolean isAudioServerRunning();
254 
setUidDeviceAffinity(in IAudioPolicyCallback pcb, in int uid, in int[] deviceTypes, in String[] deviceAddresses)255     int setUidDeviceAffinity(in IAudioPolicyCallback pcb, in int uid, in int[] deviceTypes,
256              in String[] deviceAddresses);
257 
removeUidDeviceAffinity(in IAudioPolicyCallback pcb, in int uid)258     int removeUidDeviceAffinity(in IAudioPolicyCallback pcb, in int uid);
259 
hasHapticChannels(in Uri uri)260     boolean hasHapticChannels(in Uri uri);
261 
262     // WARNING: read warning at top of file, new methods that need to be used by native
263     // code via IAudioManager.h need to be added to the top section.
264 }
265