158 lines
12 KiB
C++
158 lines
12 KiB
C++
/*
|
|
* Copyright (C) 2019 MediaTek Inc.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "managerdefault/AudioPolicyManager.h"
|
|
|
|
namespace android {
|
|
|
|
class AudioPolicyManager;
|
|
|
|
typedef enum {
|
|
AAUDIO_COND_GET_OUTPUT_FOR_DEVICE = 0,
|
|
AAUDIO_COND_GET_INPUT_FOR_ATTR,
|
|
AAUDIO_COND_GET_INPUT_FOR_DEVICE,
|
|
AAUDIO_COND_MAX,
|
|
} aaudio_cond_t;
|
|
|
|
typedef enum {
|
|
SWBRIDGE_PHONE_CALL_DISABLE = 0,
|
|
SWBRIDGE_PHONE_CALL_ENABLE,
|
|
SWBRIDGE_PHONE_CALL_MAX,
|
|
} swbridgephonecall_cmd_t;
|
|
|
|
class AudioPolicyManagerCustomInterface
|
|
{
|
|
public:
|
|
virtual ~AudioPolicyManagerCustomInterface() {}
|
|
virtual status_t common_set(AudioPolicyManager *audioPolicyManger) = 0;
|
|
virtual audio_stream_type_t gainTable_getVolumeStream() = 0;
|
|
virtual int gainTable_getVolumeIndex() = 0;
|
|
virtual DeviceTypeSet gainTable_getVolumeDevice() = 0;
|
|
virtual status_t gainTable_setVolumeStream(audio_stream_type_t stream) = 0;
|
|
virtual status_t gainTable_setVolumeIndex(int index) = 0;
|
|
virtual status_t gainTable_setVolumeDevice(DeviceTypeSet device) = 0;
|
|
virtual status_t gainTable_getCustomAudioVolume(void) = 0;
|
|
virtual float gainTable_getVolumeDbFromComputeVolume(VolumeSource volsrc, int index, DeviceTypeSet device, float volumeDB) = 0;
|
|
virtual DeviceTypeSet gainTable_getDeviceFromComputeVolume(VolumeSource volumeSource, int index, audio_devices_t device) = 0;
|
|
virtual float gainTable_getCorrectVolumeDbFromComputeVolume(VolumeSource volumeSource, float volumeDB, DeviceTypeSet device) = 0;
|
|
virtual DeviceTypeSet gainTable_checkInvalidDeviceFromCheckAndSetVolume(const sp<AudioOutputDescriptor>& outputDesc, DeviceTypeSet device) = 0;
|
|
virtual status_t gainTable_applyAnalogGainFromCheckAndSetVolume(VolumeSource volumeSource, int index,
|
|
const sp<AudioOutputDescriptor>& outputDesc,
|
|
DeviceTypeSet device,
|
|
int delayMs, bool force) = 0;
|
|
virtual status_t gainTable_setVolumeFromCheckAndSetVolume(VolumeSource volsrc, int index,
|
|
const sp<AudioOutputDescriptor>& outputDesc,
|
|
DeviceTypeSet device,
|
|
int delayMs, bool force, float volumeDb) = 0;
|
|
virtual status_t gainTable_routeAndApplyVolumeFromStopSource(const sp<SwAudioOutputDescriptor>& outputDesc, DeviceVector device,
|
|
audio_stream_type_t stream, bool force) = 0;
|
|
virtual bool gainTable_skipAdjustGainFromSetStreamVolumeIndex(audio_devices_t curDevice, audio_devices_t wantDevice) = 0;
|
|
virtual audio_devices_t gainTable_replaceApplyDeviceFromSetStreamVolumeIndex(audio_devices_t outputDevice, audio_devices_t curDevice) = 0;
|
|
virtual void gainTable_initXML();
|
|
virtual status_t common_setPolicyManagerCustomParameters(int par1, int par2, int par3, int par4) = 0;
|
|
virtual audio_output_flags_t common_getFlagsForClientDescFromCheckOutputForAttributes(sp<TrackClientDescriptor> clientDesc);
|
|
virtual status_t fm_initOutputIdForApp(void) = 0;
|
|
virtual DeviceVector fm_correctDeviceFromSetDeviceConnectionStateInt(const sp<AudioOutputDescriptor>& outputDesc, DeviceVector device, bool force) = 0;
|
|
virtual status_t fm_addAudioPatch(audio_patch_handle_t handle, const sp<AudioPatch>& patch) = 0;
|
|
virtual status_t fm_removeAudioPatch(audio_patch_handle_t handle) = 0;
|
|
virtual status_t fm_applyGainFromCheckAndSetVolume(VolumeSource volumeSource, int index, const sp<AudioOutputDescriptor>& outputDesc,DeviceTypeSet device,
|
|
int delayMs, bool force) = 0;
|
|
virtual status_t fm_muteStrategyFromCheckOutputForStrategy(const audio_attributes_t &attr, DeviceVector oldDevice, DeviceVector newDevice) = 0;
|
|
virtual status_t fm_checkSkipVolumeFromCheckOutputForStrategy(const audio_attributes_t &attr, DeviceVector oldDevice, DeviceVector newDevice) = 0;
|
|
virtual status_t fm_releaseSkipVolumeFromCheckOutputForStrategy(void) = 0;
|
|
virtual bool fm_checkFirstMusicFromStartSource(const sp<AudioOutputDescriptor>& outputDesc, audio_stream_type_t stream) = 0;
|
|
virtual uint32_t fm_extendMuteFromCheckDeviceMuteStrategies(const sp<AudioOutputDescriptor>& outputDesc, VolumeSource volumeSource, uint32_t muteDurationMs, uint32_t extendDurationMs) = 0;
|
|
virtual status_t fm_signalAPProutingFromSetOutputDevice(const sp<SwAudioOutputDescriptor>& outputDesc, bool force) = 0;
|
|
virtual uint32_t fm_extendSleepFromCheckDeviceMuteStrategies(const sp<AudioOutputDescriptor>& outputDesc, uint32_t muteWaitMs) = 0;
|
|
virtual status_t usbPhoneCall_closeAllInputsFromSetPhoneState(void) = 0;
|
|
virtual status_t setCurModeFromSetPhoneState(audio_mode_t state) = 0;
|
|
virtual status_t gainNvram_remapIndexRangeFromInitStreamVolume(audio_stream_type_t stream,
|
|
int *indexMin,
|
|
int *indexMax) = 0;
|
|
virtual status_t gainNvram_remapIndexFromSetStreamVolumeIndex(audio_stream_type_t stream,
|
|
int *index,
|
|
audio_devices_t device) = 0;
|
|
virtual status_t gainNvram_remapIndexFromGetStreamVolumeIndex(audio_stream_type_t stream,
|
|
int *index,
|
|
audio_devices_t device) = 0;
|
|
virtual status_t lowLatency_updatePrimaryModuleDeviceFromSetPhoneState(audio_mode_t state, DeviceTypeSet rxDevice) = 0;
|
|
virtual status_t lowLatency_CheckSpeakerProtectionDevice(const sp<IOProfile>& outProfile) = 0;
|
|
virtual bool lowLatency_skipSelectedDeviceFormSetOutputDevice(const sp<AudioOutputDescriptor>& outputDesc, const DeviceVector &devices) = 0;
|
|
virtual bool lowLatency_skipOutputCheckFromGetOutputsForDevice(audio_devices_t device, const SwAudioOutputCollection& openOutputs, size_t i) = 0;
|
|
virtual bool lowLatency_stopToRouteFromStopSource(audio_devices_t newDevice, const sp<AudioOutputDescriptor>& outputDesc) = 0;
|
|
virtual bool lowLatency_startToRouteFromStartSource(const sp<AudioOutputDescriptor>& outputDesc, bool beFirstActive) = 0;
|
|
virtual bool lowLatency_isOutputActiveFromStartSource(const sp<AudioOutputDescriptor>& outputDesc) = 0;
|
|
virtual bool lowLatency_setOutputFirstActiveFromStartSource(const sp<SwAudioOutputDescriptor>& outputDesc, bool beFirstActive, DeviceVector device) = 0;
|
|
virtual bool lowLatency_checkOutputFirstActiveFromSetOutputDevice(const sp<AudioOutputDescriptor>& outputDesc) = 0;
|
|
virtual status_t besLoudness_signalDupOutputFromSetOutputDevice(const sp<SwAudioOutputDescriptor>& outputDesc,
|
|
const DeviceVector &device,
|
|
int delayMs) = 0;
|
|
virtual status_t offload_invalidateMusicForInCallFromSetPhoneState(audio_mode_t state, int oldState) = 0;
|
|
virtual bool offload_isInCallFromIsOffloadSupported(void) = 0;
|
|
virtual bool debug_skipShowLog() = 0;
|
|
virtual bool debug_showGetOutputForAttr(audio_devices_t device, const audio_config_t *config, audio_output_flags_t flags, audio_stream_type_t stream, audio_io_handle_t output) = 0;
|
|
virtual bool debug_showGetInputForAttr(AudioPolicyInterface::input_type_t inputType, audio_devices_t device, audio_io_handle_t input) = 0;
|
|
virtual bool debug_showSetOutputDevice(const sp<SwAudioOutputDescriptor>& outputDesc, const DeviceVector & device, bool force, int delayMs) = 0;
|
|
virtual status_t hifiAudio_startOutputSamplerate(audio_port_handle_t portId, int samplerate) = 0;
|
|
virtual status_t hifiAudio_stopOutputSamplerate(audio_port_handle_t portId, int samplerate) = 0;
|
|
virtual status_t hifiAudio_initSetting(void) = 0;
|
|
virtual status_t hifiAudio_addOutput(audio_io_handle_t output,
|
|
const sp<SwAudioOutputDescriptor>& outputDesc) = 0;
|
|
virtual status_t hifiAudio_removeOutput(audio_io_handle_t outputHandle) = 0;
|
|
virtual bool hifiAudio_needCheckMuteForPhoneCall(DeviceVector newDevices, DeviceVector oldDevices) = 0;
|
|
virtual bool hifiAudio_needCheckInvalidateFromCheckOutputForAttributes(DeviceVector newDevices, DeviceVector oldDevices) = 0;
|
|
virtual bool hifiAudio_invalidateStream(audio_io_handle_t ioHandle, uint32_t samplingRate, DeviceVector newDevices, DeviceVector oldDevices) = 0;
|
|
virtual bool aaudio_conidtionCheck(aaudio_cond_t cond, audio_input_flags_t inflags, audio_output_flags_t outflags, audio_mode_t state) = 0;
|
|
virtual int hifiAudio_getCachedHIFIState(void) = 0;
|
|
virtual status_t aaudio_invalidateMMAPStream(void) = 0;
|
|
virtual status_t aaudio_policyForceReplaceSampleRate(sp<SwAudioOutputDescriptor> desc) = 0;
|
|
virtual status_t common_muteStrategyFromCheckOutputForStrategy(SortedVector<audio_io_handle_t> dstOutput, const audio_attributes_t &attr, DeviceTypeSet oldDevice, DeviceTypeSet newDevice) = 0;
|
|
virtual status_t common_extendMuteTimeForUSBFromCheckOutputForStrategy(uint32_t& maxLatency, DeviceVector oldDevice) = 0;
|
|
virtual status_t common_extendMuteTimeForBLEFromCheckOutputForStrategy(uint32_t& maxLatency, DeviceVector newDevice) = 0;
|
|
virtual audio_io_handle_t multipleRecord_policySelectInput(sp<IOProfile>& profile,
|
|
bool isSoundTrigger,
|
|
audio_session_t session,
|
|
const audio_config_base_t *config,
|
|
audio_input_flags_t flags,
|
|
bool forceOpen = false) = 0;
|
|
virtual status_t swBridgPhoneCall_Control(swbridgephonecall_cmd_t cmd, audio_devices_t type = AUDIO_DEVICE_NONE, uint32_t delayMs = 0) = 0;
|
|
virtual bool isFMActive(void) = 0;
|
|
virtual bool usbAudio_IsDeepBufferSupportUSBDevice() = 0;
|
|
virtual status_t BLEPhoneCall_addCurrentVolumeIndexFromsetVolumeIndexForAttributes( int index, audio_devices_t device, IVolumeCurves &volumeCurves) = 0;
|
|
virtual void hifiAudio_updateSampleRate(uint32_t samplingRate) = 0;
|
|
virtual bool isMbrainSupport() = 0;
|
|
virtual bool MBrain_conditionCheck(const audio_stream_type_t stream) = 0;
|
|
virtual status_t MBrain_LogHook(const int level,
|
|
const char* event,
|
|
const audio_mode_t mode,
|
|
const audio_output_flags_t outflags,
|
|
const audio_input_flags_t inflags,
|
|
const DeviceTypeSet SinkDevice,
|
|
const DeviceTypeSet SourceDevice,
|
|
const audio_port_handle_t TrackId,
|
|
const audio_stream_type_t stream,
|
|
const audio_session_t session,
|
|
const uid_t uid) = 0;
|
|
virtual bool spatializer_checkVirtualizerClient();
|
|
virtual bool spatialAudio_getSupportStatus(void) = 0;
|
|
virtual void spatialAudio_muteStrategyForReleaseOutput(void) = 0;
|
|
};
|
|
|
|
};
|
|
|