• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16package OHOS.AudioStandard;
17
18import AudioServiceTypes;
19sequenceable OHOS.IRemoteObject;
20sequenceable audio_info..OHOS.AudioStandard.AudioPlaybackCaptureConfig;
21sequenceable audio_info..OHOS.AudioStandard.AudioProcessConfig;
22sequenceable audio_info..OHOS.AudioStandard.RestoreInfoIpc;
23sequenceable audio_info..OHOS.AudioStandard.SinkInput;
24sequenceable audio_effect..OHOS.AudioStandard.Library;
25sequenceable audio_effect..OHOS.AudioStandard.Effect;
26sequenceable audio_effect..OHOS.AudioStandard.EffectChain;
27sequenceable audio_effect..OHOS.AudioStandard.EffectChainManagerParam;
28sequenceable audio_effect..OHOS.AudioStandard.AudioSpatializationState;
29sequenceable audio_effect..OHOS.AudioStandard.AudioEffectPropertyArrayV3;
30sequenceable audio_effect..OHOS.AudioStandard.AudioEffectPropertyArray;
31sequenceable audio_effect..OHOS.AudioStandard.AudioEnhancePropertyArray;
32sequenceable hdi_adapter_type..OHOS.AudioStandard.IAudioSinkAttr;
33sequenceable hdi_adapter_type..OHOS.AudioStandard.IAudioSourceAttr;
34sequenceable audio_stutter..OHOS.AudioStandard.DataTransferMonitorParam;
35
36interface IStandardAudioService {
37    [ipccode 0] void GetAudioParameter([in] String key, [out] String value);
38    void SetAudioParameter([in] String key, [in] String value);
39    void GetExtraParameters([in] String mainKey, [in] List<String> subKyes, [out] List<StringPair> parameters);
40    void SetExtraParameters([in] String key, [in] List<StringPair> kvpairs);
41    void SetMicrophoneMute([in] boolean isMute);
42    void SetAudioScene([in] int audioScene, [in] int a2dpOffloadFlag, [in] boolean scoExcludeFlag);
43    void UpdateActiveDeviceRoute([in] int type, [in] int flag, [in] int a2dpOffloadFlag);
44    void UpdateActiveDevicesRoute([in] List<IntPair> activeDevices, [in] int a2dpOffloadFlag, [in] String deviceName);
45    void UpdateDualToneState([in] boolean enable, [in] int sessionId);
46    void GetTransactionId([in] int deviceType, [in] int deviceRole, [out] unsigned long transactionId);
47    void SetParameterCallback([in] IRemoteObject object);
48    void GetAudioParameter([in] String networkId, [in] int key, [in] String condition, [out] String value);
49    void SetAudioParameter([in] String networkId, [in] int key, [in] String condition, [in] String value);
50    void NotifyDeviceInfo([in] String networkId, [in] boolean connected);
51    void CheckRemoteDeviceState([in] String networkId, [in] int deviceRole, [in] boolean isStartDevice);
52    void SetVoiceVolume([in] float volume);
53    void SetAudioMonoState([in] boolean audioMono);
54    void SetAudioBalanceValue([in] float audioBalance);
55    void CreateAudioProcess([in] AudioProcessConfig config, [out] int errorCode, [in] AudioPlaybackCaptureConfig filterConfig, [out] IRemoteObject client);
56    void LoadAudioEffectLibraries([in] List<Library> libraries, [in] List<Effect> effects, [out] List<Effect> successEffects, [out] boolean hasEffectsLoaded);
57    void CreateEffectChainManager([in] List<EffectChain> effectChains, [in] EffectChainManagerParam effectParam, [in] EffectChainManagerParam enhanceParam);
58    void SetOutputDeviceSink([in] int device, [in] String sinkName);
59    void SetActiveOutputDevice([in] int deviceType);
60    void CreatePlaybackCapturerManager([out] boolean isSuccess);
61    [oneway] void RegiestPolicyProvider([in] IRemoteObject object);
62    [oneway] void RegistCoreServiceProvider([in] IRemoteObject object);
63    void SetWakeupSourceCallback([in] IRemoteObject object);
64    void UpdateSpatializationState([in] AudioSpatializationState spatializationState);
65    void UpdateSpatialDeviceType([in] int spatialDeviceType);
66    void OffloadSetVolume([in] float volume, [in] String deviceClass, [in] String networkId);
67    void NotifyStreamVolumeChanged([in] int streamType, [in] float volume);
68    void SetSpatializationSceneType([in] int spatializationSceneType);
69    void GetMaxAmplitude([in] boolean isOutputDevice, [in] String deviceClass, [in] int sourceType, [out] float maxAmplitude);
70    void ResetAudioEndpoint();
71    void ResetRouteForDisconnect([in] int type);
72    void GetEffectLatency([in] String sessionId, [out] unsigned int latency);
73    void UpdateLatencyTimestamp([in] String timestamp, [in] boolean isRenderer);
74    void SetAsrAecMode([in] int asrAecMode); // AsrAecMode asrAecMode
75    void GetAsrAecMode([out] int asrAecMode); // AsrAecMode asrAecMode
76    void SetAsrNoiseSuppressionMode([in] int asrNoiseSuppressionMode); // AsrNoiseSuppressionMode asrNoiseSuppressionMode
77    void SetOffloadMode([in] unsigned int sessionId, [in] int state, [in] boolean isAppBack);
78    void UnsetOffloadMode([in] unsigned int sessionId);
79    void CheckHibernateState([in] boolean onHibernate);
80    void GetAsrNoiseSuppressionMode([out] int asrNoiseSuppressionMode); // AsrNoiseSuppressionMode asrNoiseSuppressionMode
81    void SetAsrWhisperDetectionMode([in] int asrWhisperDetectionMode); // AsrWhisperDetectionMode asrWhisperDetectionMode
82    void GetAsrWhisperDetectionMode([out] int asrWhisperDetectionMode);
83    void SetAsrVoiceControlMode([in] int asrVoiceControlMode, [in] boolean on);
84    void SetAsrVoiceMuteMode([in] int asrVoiceMuteMode, [in] boolean on); // AsrVoiceMuteMode asrVoiceMuteMode
85    void IsWhispering([out] int whisperRes);
86    void GetEffectOffloadEnabled([out] boolean isEffectOffloadEnabled);
87    void GetAudioEffectProperty([out] AudioEffectPropertyArrayV3 propertyArray, [in] int deviceType);
88    void SetAudioEffectProperty([in] AudioEffectPropertyArrayV3 propertyArray, [in] int deviceType);
89    void GetAudioEnhanceProperty([out] AudioEnhancePropertyArray propertyArray, [in] int deviceType);
90    void GetAudioEffectProperty([out] AudioEffectPropertyArray propertyArray);
91    void SetAudioEnhanceProperty([in] AudioEnhancePropertyArray propertyArray, [in] int deviceType);
92    void SetAudioEffectProperty([in] AudioEffectPropertyArray propertyArray);
93    void SuspendRenderSink([in] String sinkName);
94    void RestoreRenderSink([in] String sinkName);
95    void LoadHdiEffectModel();
96    void UpdateEffectBtOffloadSupported([in] boolean isSupported);
97    void SetSinkMuteForSwitchDevice([in] String devceClass, [in] int durationUs, [in] boolean mute);
98    void SetRotationToEffect([in] unsigned int rotate);
99    void UpdateSessionConnectionState([in] int sessionID, [in] int state);
100    void SetNonInterruptMute([in] unsigned int sessionId, [in] boolean muteFlag);
101    void RestoreSession([in] unsigned int sessionID, [in] RestoreInfoIpc restoreInfoIpc);
102    void CreateIpcOfflineStream([out] int errorCode, [out] IRemoteObject client);
103    void GetOfflineAudioEffectChains([out] List<String> effectChains);
104    void GetStandbyStatus([in] unsigned int sessionId, [out] boolean isStandby, [out] long enterStandbyTime);
105    void GenerateSessionId([out] unsigned int sessionId);
106    void GetAllSinkInputs([out] List<SinkInput> sinkInputs);
107    void SetDefaultAdapterEnable([in] boolean isEnable);
108    void NotifyAccountsChanged();
109    void NotifyAudioPolicyReady();
110    void SetInnerCapLimit([in] unsigned int innerCapLimit);void LoadHdiAdapter([in] unsigned int devMgrType, [in] String adapterName);
111    void UnloadHdiAdapter([in] unsigned int devMgrType, [in] String adapterName, [in] boolean force);
112    void CheckCaptureLimit([in] AudioPlaybackCaptureConfig config, [out] int innerCapId);
113    void ReleaseCaptureLimit([in] int innerCapId);
114    void CreateHdiSinkPort([in] String deviceClass, [in] String idInfo, [in] IAudioSinkAttr attr, [out] unsigned int renderId);
115    void CreateSinkPort([in] unsigned int idBase, [in] unsigned int idType, [in] String idInfo, [in] IAudioSinkAttr attr, [out] unsigned int renderId);
116    void CreateHdiSourcePort([in] String deviceClass, [in] String idInfo, [in] IAudioSourceAttr attr, [out] unsigned int captureId);
117    void CreateSourcePort([in] unsigned int idBase, [in] unsigned int idType, [in] String idInfo, [in] IAudioSourceAttr attr, [out] unsigned int captureId);
118    void DestroyHdiPort([in] unsigned int id);
119    void SetDeviceConnectedFlag([in] boolean flag);
120    void SetDmDeviceType([in] unsigned short dmDeviceType, [in] int deviceType);
121    void RegisterDataTransferMonitorParam([in] int callbackId, [in] DataTransferMonitorParam param);
122    void UnregisterDataTransferMonitorParam([in] int callbackId);
123    void RegisterDataTransferCallback([in] IRemoteObject object);
124    void NotifySettingsDataReady();
125    void IsAcousticEchoCancelerSupported([in] int sourceType, [out] boolean isSupported);
126    void SetSessionMuteState([in] unsigned int sessionId, [in] boolean insert, [in] boolean muteFlag);
127    void SetLatestMuteState([in] unsigned int sessionId, [in] boolean muteFlag);
128    void ForceStopAudioStream([in] int audioType);
129    void CreateAudioWorkgroup([in] int pid, [in] IRemoteObject object, [out] int workgroupId);
130    void ReleaseAudioWorkgroup([in] int pid, [in] int workgroupId);
131    void AddThreadToGroup([in] int pid, [in] int workgroupId, [in] int tokenId);
132    void RemoveThreadFromGroup([in] int pid, [in] int workgroupId, [in] int tokenId);
133    void StartGroup([in] int pid, [in] int workgroupId, [in] unsigned long startTime, [in] unsigned long deadlineTime);
134    void StopGroup([in] int pid, [in] int workgroupId);
135    void SetBtHdiInvalidState();
136    void SetKaraokeParameters([in] String parameters, [out] boolean ret);
137    void IsAudioLoopbackSupported([in] int mode ,[out] boolean ret);
138    [oneway] void ImproveAudioWorkgroupPrio([in] int pid, [in] Map<int, boolean> threads);
139    void RestoreAudioWorkgroupPrio([in] int pid, [in] Map<int, int> threads);
140    void SetRenderWhitelist([in] List<String> list);
141    // WARNING: above functions correspond with AudioServerInterfaceCode
142
143    // undefined in AudioServerInterfaceCode
144    [ipccode 1000] void SetForegroundList([in] List<String> list);
145    void GetVolumeDataCount([in] String sinkName, [out] long ret);
146}
147