KaiOS-FM

FM一条线下来的流程,以turnOn FM为例:
上层
fm.js,

var mozFMRadio = navigator.mozFM || navigator.mozFMRadio;
enableFMRadio(){
    mozFMRadio.enable(frequency);
}

上层通过webidl的方式调用FMRadio的东西, 通过navigator的指针:
Navigator.webidl

readonly attribut FMRadio mozFMRadio;

FMRadio.cpp->实际的文件,从enable函数看

FMRadio::Enable(){
    IFMRadioService::Singleton()->Enable();  -->这是一个单例
}

FMRadioService.cpp

Enable(){
  self->EnableFMRadio();
}

EnableFMRadio(){
  hal::EnableFMRadio(info);
}

下到Hal:
gecko/hal/gonk/GonkFMRadio.cpp

EnableFMRadio(){
    //这里操作驱动设备
    open("dev/radio0");
}

-------------------------------------MTK +Android----------------------------

KaiOS-FM_第1张图片
image.png

KaiOS-FM_第2张图片
image002.png

你可能感兴趣的:(KaiOS-FM)