请问一个代码上的问题:
supernova传消息给上层应用app,好像使用了PostEvent的方法,如下:
BOOL MSrv_Control_common::SendTvosUtilityEvent(U32 nEvt, U32 wParam)
{
BOOL bRet = FALSE;
bRet = PostEvent(NULL, EV_TVOS_UTIITY_EVENT, nEvt, wParam);
return bRet;
}
以监听自动搜台状态的例子说明下: 1) MSrv 层通过mapi_event 泛型类,在相应Player 类中定义一个mapi_event 对象, 然后调用成员方法send(),即在Msrv_DTV_Player_DVB.cpp 中调用 pDvbtPlayer->PostEvent(0, EV_DTV_AUTO_TUNING_SCAN_INFO, (U32)pcScanRetInfo)。 2) 因main.cpp 启动时,会在AndroidServiceInitThread()中调用RegisterService,将 PlayerImplService 对象注册到MSrv 层各个Player 中去。因此MSrv 中各个Player 的postEvent()里面会最终调用到PlayerImplService 的postEvent()。 3) PlayerImplService 接收到event 后,调用了 BpPlayerImplClient::PostEvent_ |