欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android源码分析:AudioPolicyManagerObserver类分析

程序员文章站 2022-04-02 10:22:19
为什么要单独写个文章讲到这个类,因为这个类在之前我们获取可用的输入输出设备的时候调用过其中的方法,但是没有深入分析,而且这个类是AudioPolicyManager的接口,同时这个...

为什么要单独写个文章讲到这个类,因为这个类在之前我们获取可用的输入输出设备的时候调用过其中的方法,但是没有深入分析,而且这个类是AudioPolicyManager的接口,同时这个类可以引申出其它的Audio抽象类,最后要讲解Vector和Collection容器的使用,所以说要写的内容仍然很多。

/frameworks/av/services/audiopolicy/engine/interface/AudioPolicyManagerObserver.h

#pragma once

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
namespace android {
/**
 * This interface is an observer that the manager shall implement to allows e.g. the engine
 * to access to policy pillars elements (like output / input descritors collections,
 * HwModule collections, AudioMix, ...
 */
class AudioPolicyManagerObserver
{
public:
    virtual const AudioPatchCollection &getAudioPatches() const = 0;

    virtual const SoundTriggerSessionCollection &getSoundTriggerSessionCollection() const = 0;

    virtual const AudioPolicyMixCollection &getAudioPolicyMixCollection() const = 0;

    virtual const SwAudioOutputCollection &getOutputs() const = 0;

    virtual const AudioInputCollection &getInputs() const = 0;

    virtual const DeviceVector &getAvailableOutputDevices() const = 0;

    virtual const DeviceVector &getAvailableInputDevices() const = 0;

    virtual IVolumeCurvesCollection &getVolumeCurves() = 0;

    virtual const sp &getDefaultOutputDevice() const = 0;

protected:
    virtual ~AudioPolicyManagerObserver() {}
};

};
这个类全是获取方法,来看DeviceVector类的作用和实现。目前还不能理解这个,所以接下来学习C++容器。