120f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie/*
220f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie * Copyright (C) 2015 The Android Open Source Project
320f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie *
420f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie * Licensed under the Apache License, Version 2.0 (the "License");
520f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie * you may not use this file except in compliance with the License.
620f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie * You may obtain a copy of the License at
720f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie *
820f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie *      http://www.apache.org/licenses/LICENSE-2.0
920f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie *
1020f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie * Unless required by applicable law or agreed to in writing, software
1120f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie * distributed under the License is distributed on an "AS IS" BASIS,
1220f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1320f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie * See the License for the specific language governing permissions and
1420f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie * limitations under the License.
1520f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie */
1620f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
1720f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie#include <AudioPolicyManagerInterface.h>
1820f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie#include <AudioPolicyPluginInterface.h>
1920f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie#include "AudioPolicyEngineInstance.h"
2020f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie#include "Engine.h"
2120f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
2220f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffieusing std::string;
2320f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
2420f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffienamespace android
2520f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie{
2620f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffienamespace audio_policy
2720f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie{
2820f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
2920f06f996337c9bf79d0b112083f6427a122ebabFrançois GaffieEngineInstance::EngineInstance()
3020f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie{
3120f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie}
3220f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
3320f06f996337c9bf79d0b112083f6427a122ebabFrançois GaffieEngineInstance *EngineInstance::getInstance()
3420f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie{
3520f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie    static EngineInstance instance;
3620f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie    return &instance;
3720f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie}
3820f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
3920f06f996337c9bf79d0b112083f6427a122ebabFrançois GaffieEngineInstance::~EngineInstance()
4020f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie{
4120f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie}
4220f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
4320f06f996337c9bf79d0b112083f6427a122ebabFrançois GaffieEngine *EngineInstance::getEngine() const
4420f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie{
4520f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie    static Engine engine;
4620f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie    return &engine;
4720f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie}
4820f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
4920f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffietemplate <>
5020f06f996337c9bf79d0b112083f6427a122ebabFrançois GaffieAudioPolicyManagerInterface *EngineInstance::queryInterface() const
5120f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie{
5220f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie    return getEngine()->queryInterface<AudioPolicyManagerInterface>();
5320f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie}
5420f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
5520f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffietemplate <>
5620f06f996337c9bf79d0b112083f6427a122ebabFrançois GaffieAudioPolicyPluginInterface *EngineInstance::queryInterface() const
5720f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie{
5820f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie    return getEngine()->queryInterface<AudioPolicyPluginInterface>();
5920f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie}
6020f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
6120f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie} // namespace audio_policy
6220f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie} // namespace android
6320f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
64