12110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie/* 22110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie * Copyright (C) 2015 The Android Open Source Project 32110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie * 42110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie * Licensed under the Apache License, Version 2.0 (the "License"); 52110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie * you may not use this file except in compliance with the License. 62110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie * You may obtain a copy of the License at 72110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie * 82110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie * http://www.apache.org/licenses/LICENSE-2.0 92110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie * 102110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie * Unless required by applicable law or agreed to in writing, software 112110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie * distributed under the License is distributed on an "AS IS" BASIS, 122110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie * See the License for the specific language governing permissions and 142110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie * limitations under the License. 152110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie */ 162110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie 172110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie#pragma once 182110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie 19d1ab2bd4f1ea166a7e9e81cfd7f3e5dd47135d4dFrançois Gaffie#include <IVolumeCurvesCollection.h> 202110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie#include <AudioGain.h> 212110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie#include <AudioPort.h> 222110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie#include <AudioPatch.h> 232110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie#include <IOProfile.h> 242110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie#include <DeviceDescriptor.h> 252110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie#include <AudioInputDescriptor.h> 262110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie#include <AudioOutputDescriptor.h> 272110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie#include <AudioPolicyMix.h> 282110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie#include <SoundTriggerSession.h> 292110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie 302110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffienamespace android { 312110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie 322110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie/** 332110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie * This interface is an observer that the manager shall implement to allows e.g. the engine 342110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie * to access to policy pillars elements (like output / input descritors collections, 352110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie * HwModule collections, AudioMix, ... 362110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie */ 372110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffieclass AudioPolicyManagerObserver 382110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie{ 392110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffiepublic: 402110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie virtual const AudioPatchCollection &getAudioPatches() const = 0; 412110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie 422110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie virtual const SoundTriggerSessionCollection &getSoundTriggerSessionCollection() const = 0; 432110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie 442110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie virtual const AudioPolicyMixCollection &getAudioPolicyMixCollection() const = 0; 452110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie 46c75307b73d324d590d0dbc05b44bce9aa89b7145Eric Laurent virtual const SwAudioOutputCollection &getOutputs() const = 0; 472110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie 482110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie virtual const AudioInputCollection &getInputs() const = 0; 492110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie 502110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie virtual const DeviceVector &getAvailableOutputDevices() const = 0; 512110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie 522110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie virtual const DeviceVector &getAvailableInputDevices() const = 0; 532110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie 54d1ab2bd4f1ea166a7e9e81cfd7f3e5dd47135d4dFrançois Gaffie virtual IVolumeCurvesCollection &getVolumeCurves() = 0; 552110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie 562110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie virtual const sp<DeviceDescriptor> &getDefaultOutputDevice() const = 0; 572110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie 582110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffieprotected: 592110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie virtual ~AudioPolicyManagerObserver() {} 602110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie}; 612110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie 622110e04cdfbf9ad85ce154ce5f778ee5ccfc95ebFrançois Gaffie}; // namespace android 63