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

DVD

开发平台:

C/C++

  1. /******************************************************************************
  2. *   
  3. *    FileName   :kb_porting.c
  4. *    FileDesc   :                    
  5. *
  6. ******************************************************************************/
  7. //-----------------------------------------------------------------------------
  8. // Standard include files:
  9. //-----------------------------------------------------------------------------
  10. //
  11. #include <stdio.h>
  12. #include <stdarg.h>
  13. #include <string.h>
  14. //-----------------------------------------------------------------------------
  15. // Project include files:
  16. //-----------------------------------------------------------------------------
  17. //
  18. #include <stdlib.h>
  19. #include <stdio.h>
  20. #include "Gendef.h"
  21. #include "appltype.h"
  22. #include "osp.h"
  23. #include "sti5105.h"
  24. #include "Dmd.h"
  25. #include "Dmx.h"
  26. #include "Timer.h"
  27. #include "Avplay.h"
  28. #include "db.h"
  29. #include "Timer.h"
  30. #include "Pub_st.h"
  31. #include "Cas21.h"
  32. #include "kb_ota.h"
  33. #include "Osd.h"
  34. #include "kb_machblue_client.h"
  35. #include "kb_machblue_client_task.h"
  36. #include "kb_porting.h"
  37.   
  38. /***************************************************
  39.     函数名:unsigned int BCDtoINT(unsigned char BCD)
  40.     功  能:转换一个字节BCD码到int
  41.     入  口:BCD码 
  42.     出  口:
  43. ***************************************************/
  44. unsigned int BCDtoINT(unsigned char BCD)
  45. {
  46.    //旧代码:return ((BCD>>4)&0x0f*10+BCD&0x0f);
  47.    //修改后代码:---HsuJijun 1999/7/9
  48.    return (((int)((BCD>>4)&0x0f))*10)+(int)(BCD&0x0f);
  49. }
  50. /******************************************************************************
  51. Function name: SetReceive
  52. Description: 关闭/打开遥控器接收功能
  53. Input: flag: 0,close ir;
  54.          1,open ir
  55. Output: None
  56. Return: None
  57. ******************************************************************************/
  58. void KB_KEY_SetReceive (int flag)
  59. {
  60. if(flag == 0 )
  61.      KB_IR_SetKeyLock(True);
  62.        else if(flag == 1 )
  63.     KB_IR_SetKeyLock(False);
  64. }
  65. /******************************************************************************
  66. Function name: KB_AV_PlayStart
  67. Description: 打开当前AV
  68. Input:  None
  69. Output: None
  70. Return: None
  71. ******************************************************************************/
  72. void KB_AV_PlayStart (void)
  73. {
  74. KB_DTVRun();
  75. }
  76. /******************************************************************************
  77. Function name: KB_AV_PlayStop
  78. Description: 关闭当前AV
  79. Input:  None
  80. Output: None
  81. Return: None
  82. ******************************************************************************/
  83. void KB_AV_PlayStop (void)
  84. {
  85.      KB_DTVStop();
  86. }
  87. /******************************************************************************
  88. Function name: DTV_EPG_SetToLastProg
  89. Description: 切到当前正在播出的节目中 
  90. Input:  None
  91. Output: None
  92. Return: 0: error
  93.       1: ok
  94. ******************************************************************************/
  95. int DTV_EPG_SetToLastProg (void)
  96. {
  97.     KB_DTVPlayCurPrg();
  98. return 1;
  99. }
  100. /******************************************************************************
  101. Function name: DTV_EPG_StopLastProg
  102. Description: 停止当前节目播放
  103. Input:  None
  104. Output: None
  105. Return: None
  106. ******************************************************************************/
  107. void DTV_EPG_StopLastProg (void)
  108. {
  109.       KB_DTVStopAV();
  110. }
  111. /******************************************************************************
  112. Function name: KB_Timer_Start
  113. Description: 启动定时器
  114. Input:  timerId
  115.     ms
  116. Output: None
  117. Return: 0: error
  118.       1: ok
  119. ******************************************************************************/
  120. INT32 KB_Timer_Start(UINT32 timerId, UINT32 ms)
  121. {
  122. return KB_TimerEnable( timerId,  ms);
  123. }
  124. /******************************************************************************
  125. Function name: KB_Timer_Stop
  126. Description: 停止定时器
  127. Input:  timerId
  128.     ms
  129. Output: None
  130. Return: 0: error
  131.       1: ok
  132. ******************************************************************************/
  133. INT32 KB_Timer_Stop(UINT32 timerId)
  134. {
  135. return KB_TimerDisable( timerId);
  136. }
  137. /******************************************************************************
  138. Function name: KB_OSA_Free
  139. Description: free memeory
  140. Input:  pFree: memory to free
  141. Output: None
  142. Return: Ret_Fail: error
  143.             Ret_OK: ok
  144. ******************************************************************************/
  145. KB_OSPRet KB_OSA_Free(void *pFree)
  146. {
  147. return KB_OSPFree(pFree);
  148. }
  149. /******************************************************************************
  150. Function name: KB_CHN_SetQam
  151. Description: 通过频道参数锁定频道
  152. Input:   lfrequency
  153. i_lsymbol_rate
  154. i_nModulateMode
  155. Output: None
  156. Return: 成功--SOD_OK;失败--SOD_ERROR
  157. ******************************************************************************/
  158. int  KB_CHN_SetQam(unsigned long i_lfrequency, unsigned long i_lsymbol_rate, unsigned char  i_nModulateMode)
  159. {
  160. KB_DMDTunerParameters tTs;
  161. tTs.type      = DMD_TYPE_QAM;
  162. tTs.inversion = INVERSION_AUTO;
  163. tTs.frequency = i_lfrequency / 1000;
  164. tTs.details.qam.symbolRatekSs = i_lsymbol_rate / 1000;
  165. tTs.details.qam.modulation    = i_nModulateMode;
  166. KB_DMDDropSignal();
  167. KB_DMDConnectSignal(&tTs);
  168. KB_OSPTaskDelay(1000);
  169. if(KB_DMDQuerySignalStatus())
  170. return 0;
  171. else
  172. return -1;
  173. }
  174. /******************************************************************************
  175. Function name: KB_QAM_Stop()
  176. Description: stop current Qam
  177. Input:  None
  178. Output: None
  179. Return: None
  180. ******************************************************************************/
  181. void KB_QAM_Stop (void)
  182. {
  183. KB_DMDDropSignal();
  184. }
  185. /******************************************************************************
  186. Function name: GetCurCHNTsID
  187. Description: 取得当前TSID
  188. Input: flag: 0,close ir;
  189.          1,open ir
  190. Output: None
  191. Return: 当前tsid
  192. ******************************************************************************/
  193. UINT16  KB_GetCurCHNTsID(void)
  194. {
  195. UINT16 pTsID,pServID;
  196. if(KB_DTVGetCurPrgInfo(&pTsID, &pServID)==TRUE)
  197. {
  198. printf("n KB_GetCurCHNTsID=%x", pTsID);
  199. return (UINT16)pTsID;
  200. }
  201. return 0xffff;
  202. }
  203. /******************************************************************************
  204. Function name: KB_GetDTVCHN_Freq
  205. Description: 返回当前频点
  206. Input: tsid -输入ts_id
  207.      Basefre -基本频道分组
  208. Output: None
  209. Return: 当前频点
  210. ******************************************************************************/
  211. unsigned long  KB_GetDTVCHN_Freq (unsigned short tsid)
  212. {
  213. unsigned short pFreq;
  214. unsigned short pSymbl;
  215. unsigned char  pQam;
  216. if(KB_DBGetChnlInfoByTsID( tsid, &pFreq, &pSymbl, &pQam)==RET_OK)
  217. {
  218. printf("rn  KB_GetDTVCHN_Info:tsid = %x,  pFreq=%x ,pSymbl=%x , pQam =%x ", tsid, pFreq, pSymbl, pQam);
  219. return (unsigned long)pFreq;
  220. }
  221. return 0;
  222. }
  223. /******************************************************************************
  224. Function name: KB_OSD_ClearAll
  225. Description: 清除整个屏幕
  226. Input:  None
  227. Output: None
  228. Return: None
  229. ******************************************************************************/
  230. int KB_OSD_ClearAll(UINT nColor)
  231. {
  232. return 0;
  233. }
  234. /******************************************************************************
  235. Function name: KB_PF_Clear
  236. Description: 清除当前后续界面
  237. Input:  None
  238. Output: None
  239. Return: None
  240. ******************************************************************************/
  241. int KB_PF_DispClear(void)
  242. {
  243.      return 0;
  244. }
  245. /******************************************************************************
  246. Function name: KB_PgList_DispClear
  247. Description: 清除频道列表界面
  248. Input:  None
  249. Output: None
  250. Return: None
  251. ******************************************************************************/
  252. int KB_PgList_DispClear(void)
  253. {
  254.      return 0;
  255. }
  256. /******************************************************************************
  257. Function name: KB_CurMovie_DispClear
  258. Description: 清除当前界面
  259. Input:  None
  260. Output: None
  261. Return: None
  262. ******************************************************************************/
  263. void KB_CurMovie_DispClear(void)
  264. {
  265.      kb_machblue_movie_close(TRUE);
  266. }
  267. /******************************************************************************
  268. Function name: KB_GetRegion_Code
  269. Description: 取得智能卡中的区域号
  270. Input:  None
  271. Output: None
  272. Return: None
  273. ******************************************************************************/
  274. unsigned long KB_GetRegion_Code(void)
  275. {
  276. WORD wTVSID;
  277. int index,i,j;
  278. WORD status;
  279. WORD g_tvsid[TFCA_MAXLEN_OPERATOR] = {1};
  280. ULONG pACArray[TFCA_MAXLEN_ACLIST];
  281. OSA_wait(3000);
  282.  //得到运营商id列表
  283. status = TFCASTB_GetOperatorIds(g_tvsid);
  284.  for(index=0; index<4; index++)
  285.  {
  286.  
  287. wTVSID = g_tvsid[0];
  288. status = TFCASTB_GetACList(wTVSID, pACArray);
  289. printf("rn 1BQ_CA_SetACInfo(): status =  %ld,      pACArray: %ld     %ld     %ld  rn", status, pACArray[0], pACArray[1], pACArray[2]);
  290. if(pACArray[0]!=0)
  291. break;
  292.  }
  293.  
  294.  return  pACArray[0];
  295. }
  296. /******************************************************************************
  297. Function name: KB_FakeIr_MSGBox
  298. Description: 
  299. Input:  None
  300. Output: None
  301. Return: None
  302. ******************************************************************************/
  303. int KB_FakeIr_MSGBox(char *str) 
  304. {
  305. rc_navKeyStroke_t key;
  306. int ret;
  307. printf("rn-KB_FakeIr_MSGBox show: %s", str);
  308. while(1)
  309. {
  310. key = KB_IR_GetCurKeyCode();
  311. if(key ==rc_KeyMute)
  312. {
  313. ret = IDOK;
  314. break;
  315. }
  316. else if(key ==rc_KeyReturn)
  317. {
  318. ret = IDNO;
  319. break;
  320. }
  321. }
  322. return ret;
  323. }
  324. /******************************************************************************
  325. Function name: KB_OTA_NewChannel
  326. Description: 
  327. Input:  None
  328. Output: None
  329. Return: None
  330. ******************************************************************************/
  331. void KB_OTA_NewChannel(void)
  332. {
  333.      KB_OSPMsgNode   MsgOTAClient;
  334.        
  335.        MsgOTAClient.Word1 = E_NEW_TS_ASSOCIATED;
  336.       
  337.        printf("rnnn -------------KB_OTA_NewChannel --------------nn");
  338.        OTA_CLIENT_Service (&MsgOTAClient);
  339. return;
  340. }
  341. /******************************************************************************
  342. Function name: KB_OTA_IsPermit
  343. Description: 
  344. Input:  None
  345. Output: None
  346. Return: None
  347. ******************************************************************************/
  348. BOOL KB_OTA_IsPermit(void)
  349. {
  350. if(KB_UpdatePreventGet())
  351. return FALSE;
  352. if(kb_movie_playStatusGet()==kb_movie_closed)
  353.             return TRUE;
  354. else
  355. return FALSE;
  356. }