1*ec779b8eSAndroid Build Coastguard Worker /* 2*ec779b8eSAndroid Build Coastguard Worker * Copyright (C) 2017 The Android Open Source Project 3*ec779b8eSAndroid Build Coastguard Worker * 4*ec779b8eSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*ec779b8eSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*ec779b8eSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*ec779b8eSAndroid Build Coastguard Worker * 8*ec779b8eSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*ec779b8eSAndroid Build Coastguard Worker * 10*ec779b8eSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*ec779b8eSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*ec779b8eSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*ec779b8eSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*ec779b8eSAndroid Build Coastguard Worker * limitations under the License. 15*ec779b8eSAndroid Build Coastguard Worker */ 16*ec779b8eSAndroid Build Coastguard Worker #pragma once 17*ec779b8eSAndroid Build Coastguard Worker 18*ec779b8eSAndroid Build Coastguard Worker #include "AudioPolicyInterface.h" 19*ec779b8eSAndroid Build Coastguard Worker 20*ec779b8eSAndroid Build Coastguard Worker namespace android { 21*ec779b8eSAndroid Build Coastguard Worker 22*ec779b8eSAndroid Build Coastguard Worker class AudioPolicyTestClient : public AudioPolicyClientInterface 23*ec779b8eSAndroid Build Coastguard Worker { 24*ec779b8eSAndroid Build Coastguard Worker public: 25*ec779b8eSAndroid Build Coastguard Worker virtual ~AudioPolicyTestClient() = default; 26*ec779b8eSAndroid Build Coastguard Worker 27*ec779b8eSAndroid Build Coastguard Worker // AudioPolicyClientInterface Implementation getAudioPolicyConfig(media::AudioPolicyConfig *)28*ec779b8eSAndroid Build Coastguard Worker status_t getAudioPolicyConfig(media::AudioPolicyConfig* /*config*/) override { 29*ec779b8eSAndroid Build Coastguard Worker return INVALID_OPERATION; 30*ec779b8eSAndroid Build Coastguard Worker } loadHwModule(const char *)31*ec779b8eSAndroid Build Coastguard Worker audio_module_handle_t loadHwModule(const char* /*name*/) override { 32*ec779b8eSAndroid Build Coastguard Worker return AUDIO_MODULE_HANDLE_NONE; 33*ec779b8eSAndroid Build Coastguard Worker } openOutput(audio_module_handle_t,audio_io_handle_t *,audio_config_t *,audio_config_base_t *,const sp<DeviceDescriptorBase> &,uint32_t *,audio_output_flags_t *,audio_attributes_t)34*ec779b8eSAndroid Build Coastguard Worker status_t openOutput(audio_module_handle_t /*module*/, 35*ec779b8eSAndroid Build Coastguard Worker audio_io_handle_t* /*output*/, 36*ec779b8eSAndroid Build Coastguard Worker audio_config_t* /*halConfig*/, 37*ec779b8eSAndroid Build Coastguard Worker audio_config_base_t* /*mixerConfig*/, 38*ec779b8eSAndroid Build Coastguard Worker const sp<DeviceDescriptorBase>& /*device*/, 39*ec779b8eSAndroid Build Coastguard Worker uint32_t* /*latencyMs*/, 40*ec779b8eSAndroid Build Coastguard Worker audio_output_flags_t* /*flags*/, 41*ec779b8eSAndroid Build Coastguard Worker audio_attributes_t /*attributes*/) override { return NO_INIT; } openDuplicateOutput(audio_io_handle_t,audio_io_handle_t)42*ec779b8eSAndroid Build Coastguard Worker audio_io_handle_t openDuplicateOutput(audio_io_handle_t /*output1*/, 43*ec779b8eSAndroid Build Coastguard Worker audio_io_handle_t /*output2*/) override { 44*ec779b8eSAndroid Build Coastguard Worker return AUDIO_IO_HANDLE_NONE; 45*ec779b8eSAndroid Build Coastguard Worker } closeOutput(audio_io_handle_t)46*ec779b8eSAndroid Build Coastguard Worker status_t closeOutput(audio_io_handle_t /*output*/) override { return NO_INIT; } suspendOutput(audio_io_handle_t)47*ec779b8eSAndroid Build Coastguard Worker status_t suspendOutput(audio_io_handle_t /*output*/) override { return NO_INIT; } restoreOutput(audio_io_handle_t)48*ec779b8eSAndroid Build Coastguard Worker status_t restoreOutput(audio_io_handle_t /*output*/) override { return NO_INIT; } openInput(audio_module_handle_t,audio_io_handle_t *,audio_config_t *,audio_devices_t *,const String8 &,audio_source_t,audio_input_flags_t)49*ec779b8eSAndroid Build Coastguard Worker status_t openInput(audio_module_handle_t /*module*/, 50*ec779b8eSAndroid Build Coastguard Worker audio_io_handle_t* /*input*/, 51*ec779b8eSAndroid Build Coastguard Worker audio_config_t* /*config*/, 52*ec779b8eSAndroid Build Coastguard Worker audio_devices_t* /*device*/, 53*ec779b8eSAndroid Build Coastguard Worker const String8& /*address*/, 54*ec779b8eSAndroid Build Coastguard Worker audio_source_t /*source*/, 55*ec779b8eSAndroid Build Coastguard Worker audio_input_flags_t /*flags*/) override { return NO_INIT; } closeInput(audio_io_handle_t)56*ec779b8eSAndroid Build Coastguard Worker status_t closeInput(audio_io_handle_t /*input*/) override { return NO_INIT; } setStreamVolume(audio_stream_type_t,float,bool,audio_io_handle_t,int)57*ec779b8eSAndroid Build Coastguard Worker status_t setStreamVolume(audio_stream_type_t /*stream*/, 58*ec779b8eSAndroid Build Coastguard Worker float /*volume*/, 59*ec779b8eSAndroid Build Coastguard Worker bool /*muted*/, 60*ec779b8eSAndroid Build Coastguard Worker audio_io_handle_t /*output*/, 61*ec779b8eSAndroid Build Coastguard Worker int /*delayMs*/) override { return NO_INIT; } 62*ec779b8eSAndroid Build Coastguard Worker setPortsVolume(const std::vector<audio_port_handle_t> &,float,bool,audio_io_handle_t,int)63*ec779b8eSAndroid Build Coastguard Worker status_t setPortsVolume(const std::vector<audio_port_handle_t> & /*ports*/, float /*volume*/, 64*ec779b8eSAndroid Build Coastguard Worker bool /*muted*/, audio_io_handle_t /*output*/, 65*ec779b8eSAndroid Build Coastguard Worker int /*delayMs*/) override { return NO_INIT; } 66*ec779b8eSAndroid Build Coastguard Worker setParameters(audio_io_handle_t,const String8 &,int)67*ec779b8eSAndroid Build Coastguard Worker void setParameters(audio_io_handle_t /*ioHandle*/, 68*ec779b8eSAndroid Build Coastguard Worker const String8& /*keyValuePairs*/, 69*ec779b8eSAndroid Build Coastguard Worker int /*delayMs*/) override { } getParameters(audio_io_handle_t,const String8 &)70*ec779b8eSAndroid Build Coastguard Worker String8 getParameters(audio_io_handle_t /*ioHandle*/, 71*ec779b8eSAndroid Build Coastguard Worker const String8& /*keys*/) override { return String8(); } setVoiceVolume(float,int)72*ec779b8eSAndroid Build Coastguard Worker status_t setVoiceVolume(float /*volume*/, int /*delayMs*/) override { return NO_INIT; } moveEffects(audio_session_t,audio_io_handle_t,audio_io_handle_t)73*ec779b8eSAndroid Build Coastguard Worker status_t moveEffects(audio_session_t /*session*/, 74*ec779b8eSAndroid Build Coastguard Worker audio_io_handle_t /*srcOutput*/, 75*ec779b8eSAndroid Build Coastguard Worker audio_io_handle_t /*dstOutput*/) override { return NO_INIT; } createAudioPatch(const struct audio_patch *,audio_patch_handle_t *,int)76*ec779b8eSAndroid Build Coastguard Worker status_t createAudioPatch(const struct audio_patch* /*patch*/, 77*ec779b8eSAndroid Build Coastguard Worker audio_patch_handle_t* /*handle*/, 78*ec779b8eSAndroid Build Coastguard Worker int /*delayMs*/) override { return NO_INIT; } releaseAudioPatch(audio_patch_handle_t,int)79*ec779b8eSAndroid Build Coastguard Worker status_t releaseAudioPatch(audio_patch_handle_t /*handle*/, 80*ec779b8eSAndroid Build Coastguard Worker int /*delayMs*/) override { return NO_INIT; } setAudioPortConfig(const struct audio_port_config *,int)81*ec779b8eSAndroid Build Coastguard Worker status_t setAudioPortConfig(const struct audio_port_config* /*config*/, 82*ec779b8eSAndroid Build Coastguard Worker int /*delayMs*/) override { return NO_INIT; } onAudioPortListUpdate()83*ec779b8eSAndroid Build Coastguard Worker void onAudioPortListUpdate() override { } onAudioPatchListUpdate()84*ec779b8eSAndroid Build Coastguard Worker void onAudioPatchListUpdate() override { } onAudioVolumeGroupChanged(volume_group_t,int)85*ec779b8eSAndroid Build Coastguard Worker void onAudioVolumeGroupChanged(volume_group_t /*group*/, int /*flags*/) override { } newAudioUniqueId(audio_unique_id_use_t)86*ec779b8eSAndroid Build Coastguard Worker audio_unique_id_t newAudioUniqueId(audio_unique_id_use_t /*use*/) override { return 0; } onDynamicPolicyMixStateUpdate(String8,int32_t)87*ec779b8eSAndroid Build Coastguard Worker void onDynamicPolicyMixStateUpdate(String8 /*regId*/, int32_t /*state*/) override { } onRecordingConfigurationUpdate(int event __unused,const record_client_info_t * clientInfo __unused,const audio_config_base_t * clientConfig __unused,std::vector<effect_descriptor_t> clientEffects __unused,const audio_config_base_t * deviceConfig __unused,std::vector<effect_descriptor_t> effects __unused,audio_patch_handle_t patchHandle __unused,audio_source_t source __unused)88*ec779b8eSAndroid Build Coastguard Worker void onRecordingConfigurationUpdate(int event __unused, 89*ec779b8eSAndroid Build Coastguard Worker const record_client_info_t *clientInfo __unused, 90*ec779b8eSAndroid Build Coastguard Worker const audio_config_base_t *clientConfig __unused, 91*ec779b8eSAndroid Build Coastguard Worker std::vector<effect_descriptor_t> clientEffects __unused, 92*ec779b8eSAndroid Build Coastguard Worker const audio_config_base_t *deviceConfig __unused, 93*ec779b8eSAndroid Build Coastguard Worker std::vector<effect_descriptor_t> effects __unused, 94*ec779b8eSAndroid Build Coastguard Worker audio_patch_handle_t patchHandle __unused, 95*ec779b8eSAndroid Build Coastguard Worker audio_source_t source __unused) override { } onRoutingUpdated()96*ec779b8eSAndroid Build Coastguard Worker void onRoutingUpdated() override { } onVolumeRangeInitRequest()97*ec779b8eSAndroid Build Coastguard Worker void onVolumeRangeInitRequest() override { } setEffectSuspended(int effectId __unused,audio_session_t sessionId __unused,bool suspended __unused)98*ec779b8eSAndroid Build Coastguard Worker void setEffectSuspended(int effectId __unused, 99*ec779b8eSAndroid Build Coastguard Worker audio_session_t sessionId __unused, 100*ec779b8eSAndroid Build Coastguard Worker bool suspended __unused) {} setSoundTriggerCaptureState(bool active __unused)101*ec779b8eSAndroid Build Coastguard Worker void setSoundTriggerCaptureState(bool active __unused) override {}; getAudioPort(struct audio_port_v7 * port __unused)102*ec779b8eSAndroid Build Coastguard Worker status_t getAudioPort(struct audio_port_v7 *port __unused) override { 103*ec779b8eSAndroid Build Coastguard Worker return INVALID_OPERATION; 104*ec779b8eSAndroid Build Coastguard Worker }; updateSecondaryOutputs(const TrackSecondaryOutputsMap & trackSecondaryOutputs __unused)105*ec779b8eSAndroid Build Coastguard Worker status_t updateSecondaryOutputs( 106*ec779b8eSAndroid Build Coastguard Worker const TrackSecondaryOutputsMap& trackSecondaryOutputs __unused) override { 107*ec779b8eSAndroid Build Coastguard Worker return NO_INIT; 108*ec779b8eSAndroid Build Coastguard Worker } setDeviceConnectedState(const struct audio_port_v7 * port __unused,media::DeviceConnectedState state __unused)109*ec779b8eSAndroid Build Coastguard Worker status_t setDeviceConnectedState(const struct audio_port_v7 *port __unused, 110*ec779b8eSAndroid Build Coastguard Worker media::DeviceConnectedState state __unused) override { 111*ec779b8eSAndroid Build Coastguard Worker return NO_INIT; 112*ec779b8eSAndroid Build Coastguard Worker } invalidateTracks(const std::vector<audio_port_handle_t> &)113*ec779b8eSAndroid Build Coastguard Worker status_t invalidateTracks(const std::vector<audio_port_handle_t>& /*portIds*/) override { 114*ec779b8eSAndroid Build Coastguard Worker return NO_INIT; 115*ec779b8eSAndroid Build Coastguard Worker } getAudioMixPort(const struct audio_port_v7 * devicePort __unused,struct audio_port_v7 * mixPort __unused)116*ec779b8eSAndroid Build Coastguard Worker status_t getAudioMixPort(const struct audio_port_v7 *devicePort __unused, 117*ec779b8eSAndroid Build Coastguard Worker struct audio_port_v7 *mixPort __unused) override { 118*ec779b8eSAndroid Build Coastguard Worker return INVALID_OPERATION; 119*ec779b8eSAndroid Build Coastguard Worker } 120*ec779b8eSAndroid Build Coastguard Worker setTracksInternalMute(const std::vector<media::TrackInternalMuteInfo> &)121*ec779b8eSAndroid Build Coastguard Worker status_t setTracksInternalMute( 122*ec779b8eSAndroid Build Coastguard Worker const std::vector<media::TrackInternalMuteInfo>& /*tracksInternalMute*/) override { 123*ec779b8eSAndroid Build Coastguard Worker return INVALID_OPERATION; 124*ec779b8eSAndroid Build Coastguard Worker } 125*ec779b8eSAndroid Build Coastguard Worker getMmapPolicyInfos(media::audio::common::AudioMMapPolicyType,std::vector<media::audio::common::AudioMMapPolicyInfo> *)126*ec779b8eSAndroid Build Coastguard Worker status_t getMmapPolicyInfos( 127*ec779b8eSAndroid Build Coastguard Worker media::audio::common::AudioMMapPolicyType /*policyType*/, 128*ec779b8eSAndroid Build Coastguard Worker std::vector<media::audio::common::AudioMMapPolicyInfo>* /*policyInfos*/) override { 129*ec779b8eSAndroid Build Coastguard Worker return INVALID_OPERATION; 130*ec779b8eSAndroid Build Coastguard Worker } checkPermissionForInput(const AttributionSourceState &,const PermissionReqs &)131*ec779b8eSAndroid Build Coastguard Worker error::BinderResult<bool> checkPermissionForInput(const AttributionSourceState& /* attr */, 132*ec779b8eSAndroid Build Coastguard Worker const PermissionReqs& /* req */) { 133*ec779b8eSAndroid Build Coastguard Worker return true; 134*ec779b8eSAndroid Build Coastguard Worker } 135*ec779b8eSAndroid Build Coastguard Worker }; 136*ec779b8eSAndroid Build Coastguard Worker 137*ec779b8eSAndroid Build Coastguard Worker } // namespace android 138