165e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland/* 265e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland * Copyright (C) 2009 The Android Open Source Project 365e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland * 465e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland * Licensed under the Apache License, Version 2.0 (the "License"); 565e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland * you may not use this file except in compliance with the License. 665e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland * You may obtain a copy of the License at 765e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland * 865e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland * http://www.apache.org/licenses/LICENSE-2.0 965e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland * 1065e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland * Unless required by applicable law or agreed to in writing, software 1165e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland * distributed under the License is distributed on an "AS IS" BASIS, 1265e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1365e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland * See the License for the specific language governing permissions and 1465e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland * limitations under the License. 1565e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland */ 1665e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland 1765e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland 1865e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland#include <stdint.h> 1965e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland#include <sys/types.h> 2065e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland#include <utils/Timers.h> 2165e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland#include <utils/Errors.h> 2265e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland#include <utils/KeyedVector.h> 2365e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland#include <hardware_legacy/AudioPolicyManagerBase.h> 2465e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland 2565e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland 2665e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetlandnamespace android { 2765e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland 2865e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland// ---------------------------------------------------------------------------- 2965e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland 3065e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetlandclass AudioPolicyManager: public AudioPolicyManagerBase 3165e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland{ 3265e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland 3365e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetlandpublic: 3465e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland AudioPolicyManager(AudioPolicyClientInterface *clientInterface) 3565e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland : AudioPolicyManagerBase(clientInterface) {} 3665e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland 3765e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland virtual ~AudioPolicyManager() {} 3865e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland 3965e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetlandprotected: 4065e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland 4165e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland // true is current platform implements a back microphone 4265e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland virtual bool hasBackMicrophone() const { return true; } 4365e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland 4465e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland#ifdef WITH_A2DP 4565e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland // true is current platform supports suplication of notifications and ringtones over A2DP output 4665e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland virtual bool a2dpUsedForSonification() const { return true; } 4765e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland#endif 4865e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland 4965e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland // return appropriate device for streams handled by the specified strategy according to current 5065e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland // phone state, connected devices... 5165e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland virtual uint32_t getDeviceForStrategy(routing_strategy strategy, bool fromCache = true); 5265e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland virtual float computeVolume(int stream, int index, audio_io_handle_t output, uint32_t device); 5365e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland}; 5465e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland 5565e6c49fb6a8872a5e36fa479c4ed9f9fceba43cBrian Swetland}; 56