Mstar 6M48部分软件流程之一

1、  MApp_Main.c里有个while(1)循环;

2、  通过 while(1)循环MApp_MultiTasks 里面的 MApp_ProcessUserInput 可以 得到 当前的 u8KeyCode

3、  while(1)循环 里面的MApp_TopStateMachine的作用:

3.1、在刚开机时,首先 enTopState = STATE_TOP_DIGITALINPUTS 等待用户输入;

3.2、再次调用:MApp_TopStateMachine时,switch ( enTopState ) 之后调用 switch MApp_TV ;

3.3、当用户在IR中输入Menu按键;

3.4、通过MApp_TV调用MApp_TV_ProcessUserInput 之后

switch ( u8KeyCode )

case KEY_MENU:

      enTVState = STATE_TV_INIT;

      enTVRetVal = EXIT_GOTO_MENU;

      u8KeyCode = KEY_NULL;

               break;

 

switch(MApp_TV())

case EXIT_GOTO_MENU:

     enTopState = STATE_TOP_MENU;

         break;

3.5、再次调用:MApp_TopStateMachine时,witch ( enTopState ) 之后调用 switch(MApp_Menu_Main()) ;

3.6、通过MApp_Menu_Main调用MApp_ZUI_ACT_StartupOSD(E_OSD_MAIN_MENU);再调用MApp_ZUI_ACT_AppShowMainMenu();就可以Show出我们想要Show出的主界面了。

enMainMenuState = STATE_MENU_WAIT;

 _eZUIState = E_ZUI_STATE_RUNNING;

3.7、再次调用MApp_Menu_Main时,switch(enMainMenuState)时,就要执行:

       MApp_ZUI_ProcessKey(u8KeyCode);

   u8KeyCode = KEY_NULL;

   MApp_ZUI_ACT_ExecuteWndAction(EN_EXE_UPDATE_SIGNAL_INFORMAT);

了;

3.8MApp_ZUI_ProcessKey调用MApp_ZUI_API_PostMessage(HWND_MAINFRAME, MSG_KEYDOWN, vk_code)Post Message

3.9、再次调用MApp_TopStateMachine 时执行到 MApp_ZUI_MainTask  

switch (_eZUIState) eZUIState等于了E_ZUI_STATE_RUNNING,就会调用MApp_ZUI_API_GetMessage(&msg)收到刚才MApp_ZUI_ProcessKey发过来的Message,再通过MApp_ZUI_API_DispatchMessage (&msg);因为我们刚才发的是keyMessage所以,执行的以下代码:

if (pMsg->message == MSG_KEYDOWN)

       {

                //printf("[dispmsg1]\n");

                if (_eZUIState == E_ZUI_STATE_RUNNING /*||

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值