Android Radio开发——电台列表(十四)

        在《Android Radio实战——调频/调幅(十二)》中,我们解析 hal1 和 hal2 的代码时,hal1 是通过 scan() 来实现调频/调幅功能的。而 hal2 直接获取列表中的频道数据,来实现调频/调幅的切换。那么 hal2 中的这个列表是从哪里来的呢?这里我们就来分析一下。

一、频道列表

1、列表初始化

TunerSession.cpp

源码位置:/hardware/interfaces/broadcastradio/2.0/default/TunerSession.cpp

Return<Result> TunerSession::scan(bool directionUp, bool /* skipSubChannel */) {
    ......
    // 获取频道列表
    auto list = virtualRadio().getProgramList();
    ......
    return Result::OK;
}

VirtualRadio.cpp 

源码位置:/hardware/interfaces/broadcastradio/2.0/default/VirtualRadio.cpp

VirtualRadio::VirtualRadio(const std::string& name, const vector<VirtualProgram>& initialList)
    :

猜你喜欢

转载自blog.csdn.net/c19344881x/article/details/130811636