main.c
上传用户:fy98168
上传日期:2015-06-26
资源大小:13771k
文件大小:5k
源码类别:

DVD

开发平台:

C/C++

  1. #include <gendef.h>
  2. #include <system.h>
  3. #include <ir.h>
  4. #include <flash.h>
  5. #include <keydef.h>
  6. #include <osp.h>
  7. #include <timer.h>
  8. #include <osd.h>
  9. #include <av.h>
  10. #include <string.h>
  11. #include "dmd.h"
  12. #include "dmx.h"
  13. #include "sipsi.h"
  14. #include "search.h"
  15. #include "epg.h"
  16. #include "appltype.h" 
  17. #include "avplay.h"
  18. #include "eprom.h"
  19. #include "db.h"
  20. #include "kb_machblue_client.h"
  21. #include "kb_machblue_client_task.h"
  22. #include "kb_dc_task.h"
  23. static STB_State gStbState = State_AV;
  24. static UINT32 gAppQueID = 0;
  25. //static void IR_CallBack(UINT32 pressed, UINT32 keyID);
  26. static void STB_SendMsg(KB_OSPMsgNode *pInMsg);
  27. static void SI_CallBack(KB_OSPMsgNode *pInMsg);
  28. void DMD_CallBack(KB_DMDCallbackEvents event);
  29. static void APPTIMER_CallBack(KB_OSPMsgNode *pInMsg);
  30. extern void E2P_Test(void);
  31. extern BOOL RcKeyboardProcessSetup ( void );
  32. extern void LED_Init(void);
  33. extern void KB_SysPowerInit(void);
  34. //swf模块测试
  35. extern void KB_SWF_INIT(void);
  36. extern void kb_dc_ServCfgGetActivate(void);
  37. int main()
  38. {
  39. KB_SysInit();
  40.      KB_OSPInit();
  41. KB_E2PInit();
  42.      KB_FLASHInit();
  43.      KB_TimerInit();
  44.    
  45. KB_DMDInit();
  46. KB_DMDCallBack(DMD_CallBack);
  47.     
  48.      KB_OSDInit();
  49.      KB_DBInit();    
  50.      KB_SIInit();
  51.      KB_SICallback(SI_CallBack);
  52.        SRTIM_Init();
  53.      KB_TimeInit();
  54.      KB_TimerCallBack(APPTIMER_CallBack);
  55. RcKeyboardProcessSetup();
  56.      KB_EPGInit();
  57.      KB_NVODInit();
  58.      KB_SEARCHInit();
  59. KB_CAInit();
  60.      KB_DTVInit();
  61. LED_Init();
  62.      KB_SysPowerInit();
  63. //OTA_CLIENT_Init();
  64. KB_NETInit(); 
  65. KB_TimeSetCurTime((time_t)10000);
  66. //swf模块测试接口
  67. KB_SWF_INIT();
  68. //Machblue  模块初始化
  69. kb_machblue_task_init();
  70. kb_machblue_client_init();
  71. kb_dc_init();
  72. //KB_WatchTaskInit();
  73. KB_DcTaskInit();
  74. KB_OSPTaskDelay(1000);
  75. kb_dc_ServCfgGetActivate();
  76. KB_OSPTaskSetPri(NULL, 0);
  77. KB_OSPTaskSus(NULL);
  78.      return (0);
  79. }
  80.  void DMD_CallBack(KB_DMDCallbackEvents event)
  81. {
  82.     KB_OSPMsgNode msgNode;
  83.     
  84.     msgNode.Word1 = MOD_TUNER;
  85.     msgNode.Word2 = event;
  86.     STB_SendMsg(&msgNode);
  87. }
  88. STB_State KB_GetCurState(void)
  89. {
  90.     return gStbState;
  91. }
  92. UINT32 KB_RegQueID(UINT32 nQueueId)
  93. {
  94.     UINT32 nCurQueID;
  95.     nCurQueID = gAppQueID;
  96.     gAppQueID  = nQueueId;
  97.     return nCurQueID;
  98. }
  99. INT32 STB_StateSwitch(INT32 nApplet)
  100. {
  101.     INT32 nPreviousApplet;
  102.     
  103.     if(nApplet < State_MAX)
  104.     {
  105.         nPreviousApplet = gStbState;
  106.         switch (nPreviousApplet)
  107.         {
  108.         case State_AV:
  109.             if (nApplet != State_EPG)
  110.             {
  111.                 KB_DTVDestroy();
  112.             }
  113.             break;
  114.             
  115.         case State_EPG:
  116.             KB_EPGDestroy();
  117.            break;
  118.             
  119.         case State_MENU:            
  120.             break;
  121.         case State_NVOD:
  122.             KB_NVODDestroy();
  123.             break;
  124.         
  125.         case State_SRCH:
  126.      KB_SEARCHDestroy();
  127.      KB_DCStart_Service();
  128.             break;
  129.         default:
  130.             break;
  131.         }
  132.         
  133.         gStbState     = nApplet;
  134.         switch (nApplet)
  135.         {
  136.         case State_AV:
  137.             KB_DTVCreate();
  138.             break;
  139.             
  140.         case State_EPG:
  141.       KB_EPGCreate();
  142.            break;
  143.         case State_MENU:            
  144.             break;
  145.         case State_NVOD:
  146.             KB_NVODCreate();
  147.             break;
  148.         
  149.         case State_SRCH:
  150.      KB_DCStop_Service();
  151.      KB_OSPTaskDelay(500);
  152.             KB_SEARCHCreate();
  153.             break;
  154.         default:
  155.             break;
  156.         }        
  157.         
  158.     }
  159.     else
  160.     {
  161.         return RETFIAL1;
  162.     }
  163.     return RETOK;
  164. }
  165. static void STB_SendMsg(KB_OSPMsgNode *pInMsg)
  166. {
  167.     switch (gStbState)
  168.     {
  169.     case State_AV:
  170.         KB_DTVAVHandleMsg(pInMsg);
  171.         break;
  172.         
  173.     case State_EPG:
  174.  KB_EPGHandleMsg(pInMsg);
  175.         break;
  176.         
  177.     case State_MENU:
  178.             //printf("nSTB_SendMsg::Word1(%d), Word2(%d)", 
  179.             //        pInMsg->Word1, pInMsg->Word2);
  180.             //增加对当前时间获取设置的处理
  181.             if (MOD_SIPSI == pInMsg->Word1 && KB_SI_MSG_TDT_DONE == pInMsg->Word2)
  182.             {
  183.                 KB_TimeSetCurTime(*((time_t*)pInMsg->Word3));
  184.             }
  185.         break;
  186.     case State_NVOD:
  187.         NVOD_HandleMsg(pInMsg);
  188.         break;
  189.     
  190.     case State_SRCH:
  191.         KB_SEARCHHandleMsg(pInMsg);
  192.         break;
  193.     default:
  194.         break;
  195.     }
  196. }
  197. static void SI_CallBack(KB_OSPMsgNode *pInMsg)
  198. {
  199.    STB_SendMsg(pInMsg);
  200. }
  201. static void APPTIMER_CallBack(KB_OSPMsgNode *pInMsg)
  202. {
  203.     KB_OSPMsgNode msgNode;
  204.     if (gAppQueID)
  205.     {
  206.         KB_OSPMsgSend(gAppQueID, pInMsg);    
  207.     }
  208. }
  209. /* EOF */