1/* 2 * Copyright (C) 2011 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#define LOG_TAG "AudioPolicyCompatClient" 18//#define LOG_NDEBUG 0 19 20#include <stdint.h> 21 22#include <hardware/hardware.h> 23#include <system/audio.h> 24#include <system/audio_policy.h> 25#include <hardware/audio_policy.h> 26 27#include <hardware_legacy/AudioSystemLegacy.h> 28 29#include "AudioPolicyCompatClient.h" 30 31namespace android_audio_legacy { 32 33audio_module_handle_t AudioPolicyCompatClient::loadHwModule(const char *moduleName) 34{ 35 return mServiceOps->load_hw_module(mService, moduleName); 36} 37 38audio_io_handle_t AudioPolicyCompatClient::openOutput(audio_module_handle_t module, 39 audio_devices_t *pDevices, 40 uint32_t *pSamplingRate, 41 audio_format_t *pFormat, 42 audio_channel_mask_t *pChannelMask, 43 uint32_t *pLatencyMs, 44 audio_output_flags_t flags) 45{ 46 return mServiceOps->open_output_on_module(mService, module, pDevices, pSamplingRate, 47 pFormat, pChannelMask, pLatencyMs, 48 flags); 49} 50 51audio_io_handle_t AudioPolicyCompatClient::openDuplicateOutput(audio_io_handle_t output1, 52 audio_io_handle_t output2) 53{ 54 return mServiceOps->open_duplicate_output(mService, output1, output2); 55} 56 57status_t AudioPolicyCompatClient::closeOutput(audio_io_handle_t output) 58{ 59 return mServiceOps->close_output(mService, output); 60} 61 62status_t AudioPolicyCompatClient::suspendOutput(audio_io_handle_t output) 63{ 64 return mServiceOps->suspend_output(mService, output); 65} 66 67status_t AudioPolicyCompatClient::restoreOutput(audio_io_handle_t output) 68{ 69 return mServiceOps->restore_output(mService, output); 70} 71 72audio_io_handle_t AudioPolicyCompatClient::openInput(audio_module_handle_t module, 73 audio_devices_t *pDevices, 74 uint32_t *pSamplingRate, 75 audio_format_t *pFormat, 76 audio_channel_mask_t *pChannelMask) 77{ 78 return mServiceOps->open_input_on_module(mService, module, pDevices, 79 pSamplingRate, pFormat, pChannelMask); 80} 81 82status_t AudioPolicyCompatClient::closeInput(audio_io_handle_t input) 83{ 84 return mServiceOps->close_input(mService, input); 85} 86 87status_t AudioPolicyCompatClient::setStreamOutput(AudioSystem::stream_type stream, 88 audio_io_handle_t output) 89{ 90 return mServiceOps->set_stream_output(mService, (audio_stream_type_t)stream, 91 output); 92} 93 94status_t AudioPolicyCompatClient::moveEffects(int session, audio_io_handle_t srcOutput, 95 audio_io_handle_t dstOutput) 96{ 97 return mServiceOps->move_effects(mService, session, srcOutput, dstOutput); 98} 99 100String8 AudioPolicyCompatClient::getParameters(audio_io_handle_t ioHandle, const String8& keys) 101{ 102 char *str; 103 String8 out_str8; 104 105 str = mServiceOps->get_parameters(mService, ioHandle, keys.string()); 106 out_str8 = String8(str); 107 free(str); 108 109 return out_str8; 110} 111 112void AudioPolicyCompatClient::setParameters(audio_io_handle_t ioHandle, 113 const String8& keyValuePairs, 114 int delayMs) 115{ 116 mServiceOps->set_parameters(mService, ioHandle, keyValuePairs.string(), 117 delayMs); 118} 119 120status_t AudioPolicyCompatClient::setStreamVolume( 121 AudioSystem::stream_type stream, 122 float volume, 123 audio_io_handle_t output, 124 int delayMs) 125{ 126 return mServiceOps->set_stream_volume(mService, (audio_stream_type_t)stream, 127 volume, output, delayMs); 128} 129 130status_t AudioPolicyCompatClient::startTone(ToneGenerator::tone_type tone, 131 AudioSystem::stream_type stream) 132{ 133 return mServiceOps->start_tone(mService, 134 AUDIO_POLICY_TONE_IN_CALL_NOTIFICATION, 135 (audio_stream_type_t)stream); 136} 137 138status_t AudioPolicyCompatClient::stopTone() 139{ 140 return mServiceOps->stop_tone(mService); 141} 142 143status_t AudioPolicyCompatClient::setVoiceVolume(float volume, int delayMs) 144{ 145 return mServiceOps->set_voice_volume(mService, volume, delayMs); 146} 147 148}; // namespace android_audio_legacy 149