mid_psimon.h 37 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102
  1. /*! \addtogroup Monitors
  2. * @{
  3. */
  4. /******************************************************************************/
  5. /**
  6. *
  7. * \file mid_psimon.h
  8. *
  9. * \brief middle-ware of digital TV PSI monitors.
  10. *
  11. * \note Copyright (c) 2008 Sunplus Technology Co., Ltd. \n
  12. * All rights reserved.
  13. *
  14. * \author EMI integrated
  15. *
  16. ******************************************************************************/
  17. #ifndef _MONITOR_H_2008_04_17
  18. #define _MONITOR_H_2008_04_17
  19. #include <types.h>
  20. #include "mid_common.h"
  21. #define MON_UNKNOWN (-1) // unknown
  22. #define MON_ID_IGNORE (-2) // none monitored, ignore!
  23. #define MON_ID_CUR (-3) // monitor current service
  24. #define MON_LISTENER_ID_CODE_D4 0 // default id_code for monitor listenser
  25. //definitions for PMT callback
  26. // update bit for integration of all changes of PMT.
  27. #define COMP_CHG_PCR (1<<0) /* pcr pid change */
  28. #define COMP_CHG_VID (1<<1) /* Video stream pid change */
  29. #define COMP_CHG_VID_CODEC (1<<2) /* video stream type change */
  30. #define COMP_CHG_VID_FOUND (1<<3) /* found video stream */
  31. #define COMP_CHG_AUD (1<<4) /* audio1 stream pid change */
  32. #define COMP_CHG_AUD2 (1<<5) /* audio2 stream pid change */
  33. #define COMP_CHG_AD (1<<6) /* */
  34. #define COMP_CHG_AUD_FOUND (1<<7) /* found audio stream */
  35. #define COMP_CHG_AUD_CODEC (1<<8) /* audio1 stream type change */
  36. #define COMP_CHG_AUD_CODEC2 (1<<9) /* audio2 stream type change */
  37. #define COMP_CHG_OAD (1<<10) /*OAD change*/
  38. #ifdef SUPPORT_CA_SYSTEM
  39. #define COMP_CHG_VID_ECM (1<<11) /* video ecm change */
  40. #define COMP_CHG_AUD_ECM (1<<12) /* audio ecm change */
  41. #endif
  42. #define COMP_CHG_CA (1<<15) /* CA change */
  43. #define COMP_CHG_SUB_FOUND (1<<16) /* found subtitle stream */
  44. #define COMP_CHG_TTX_FOUND (1<<17) /* found teletext stream */
  45. #define COMP_CHG_CC_FOUND (1<<18) /* found closecaption stream */
  46. #define COMP_CHG_AUDIOLR (1<<19)
  47. #define COMP_CHG_AUDIOLR2 (1<<20)
  48. typedef void (*iPsiMonPMTCallBack)(INT32 org_net_id, INT32 trans_id, UINT16 pmt_pid, void *data);
  49. typedef void (*iPsiMonCallBack)(void *data);
  50. #ifdef SUPPORT_INDEPENDENCE_DETECT_OTA
  51. typedef INT32 (*iOtaMonCallBack)(void *data);
  52. #endif
  53. typedef bool (*iOtaMonONIDCallBack)(UINT16 CheckedONID);
  54. typedef void (*iOtaMonExitCallBack)(void);
  55. typedef void (*iOtaMonStateCallBack)(bool);
  56. typedef struct t_otaComCallback
  57. {
  58. #ifdef SUPPORT_INDEPENDENCE_DETECT_OTA
  59. iOtaMonCallBack _pfMonDSICallbk;
  60. #endif
  61. iOtaMonONIDCallBack _pfMonONIDCallb;
  62. iOtaMonExitCallBack _pfMonEXITCallb;
  63. iOtaMonStateCallBack _pfMonStateCallbk;
  64. }OtaMonComCallback_t;
  65. /**
  66. * \brief Psi monitor callback structure
  67. */
  68. typedef struct _mid_psimon_callbacks
  69. {
  70. iPsiMonPMTCallBack pfMonPMTCallbk; ///> for PMT monitor callback
  71. iPsiMonCallBack pfMonSDTCallbk; ///> for SDT monitor callback
  72. iPsiMonCallBack pfMonNITCallbk; ///> for NIT monitor callback
  73. iPsiMonCallBack pfMonTDTCallbk; ///> for TDT monitor callback
  74. iPsiMonCallBack pfMonTOTCallbk; ///> for TOT monitor callback
  75. iPsiMonCallBack pfMonCATCallbk; ///> for CAT monitor callback
  76. iPsiMonCallBack pfMonPATCallbk; ///> for MHEG5 Deferred service searching
  77. iPsiMonCallBack pfMonSDTOtherCallbk; ///> for other SDT monitor callback
  78. #ifdef CONFIG_SUPPORT_KDG_CERTIFICATION
  79. iPsiMonCallBack pfMonBATCallbk; ///> for BAT monitor callback
  80. #endif
  81. #ifdef CONFIG_SUPPORT_INDONESIA_EWS
  82. iPsiMonCallBack pfMonTxDWCallbk; ///> for TRDW/TCDW/TMDW monitor callback
  83. #endif
  84. #ifdef CONFIG_SUPPORT_HBBTV
  85. iPsiMonPMTCallBack pfMonAITCallbk;
  86. #endif
  87. }Mid_PsiMonCallbks_t;
  88. /*
  89. * Fuction declared here
  90. */
  91. /** \addtogroup Add_monitor Add Monitors
  92. * \brief add monitors for tables
  93. * @{ */
  94. /******************************************************************************/
  95. /**
  96. * \fn INT32 AddNetworkMonitoringListener(INT32 original_network_id,
  97. * INT32 transport_stream_id,
  98. * INT32 id_code,
  99. * void (*callback)(void *))
  100. * \brief Add NIT monitoring.
  101. *
  102. * \param original_network_id : network identifier
  103. * \param transport_stream_id : transport identifier
  104. * \param id_code : identifier number
  105. * \param callback : registered callback
  106. *
  107. * \return 0 if success or fail if < 0
  108. *
  109. ******************************************************************************/
  110. INT32 AddNetworkMonitoringListener(INT32 original_network_id,
  111. INT32 transport_stream_id,
  112. INT32 id_code,
  113. void (*callback)(void *));
  114. /******************************************************************************/
  115. /**
  116. * \fn INT32 AddNetworkMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  117. * INT32 original_network_id,
  118. * INT32 transport_stream_id,
  119. * INT32 id_code,
  120. * void (*callback)(void *))
  121. * \brief Add NIT monitoring.
  122. *
  123. * \param InputUnit : Identify the demux unit
  124. * \param original_network_id : network identifier
  125. * \param transport_stream_id : transport identifier
  126. * \param id_code : identifier number
  127. * \param callback : registered callback
  128. *
  129. * \return 0 if success or fail if < 0
  130. *
  131. ******************************************************************************/
  132. INT32 AddNetworkMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  133. INT32 network_id,
  134. INT32 transport_stream_id,
  135. INT32 id_code, void (*callback) (void *));
  136. #ifdef CONFIG_SUPPORT_INDONESIA_EWS
  137. /******************************************************************************/
  138. /**
  139. * \fn INT32 AddTxDWMonitoringListener(INT32 id_code, void (*callback)(void *))
  140. *
  141. * \brief Add TxDW monitoring.
  142. *
  143. * \param id_code : identifier number
  144. * \param callback : registered callback
  145. *
  146. * \return 0 if success or fail if < 0
  147. *
  148. ******************************************************************************/
  149. INT32 AddTxDWMonitoringListener(INT32 id_code, void (*callback)(void *));
  150. /******************************************************************************/
  151. /**
  152. * \fn INT32 AddTxDWMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,, INT32 id_code, void (*callback)(void *))
  153. *
  154. * \brief Add TxDW monitoring.
  155. *
  156. * \param InputUnit : Identify the demux unit
  157. * \param id_code : identifier number
  158. * \param callback : registered callback
  159. *
  160. * \return 0 if success or fail if < 0
  161. *
  162. ******************************************************************************/
  163. INT32 AddTxDWMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  164. INT32 id_code,
  165. void (*callback) (void *));
  166. #endif
  167. #ifdef CONFIG_SUPPORT_HBBTV
  168. INT32 AddAITMonitoringListener(INT32 id_code, void (*callback) (INT32, INT32, UINT16, void *));
  169. INT32 AddAITMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  170. INT32 id_code,
  171. void (*callback) (INT32, INT32, UINT16, void *));
  172. #endif
  173. #ifdef CONFIG_SUPPORT_KDG_CERTIFICATION
  174. /******************************************************************************/
  175. /**
  176. * \fn INT32 AddBouquetMonitoringListener(INT32 bouquet_id,
  177. * INT32 transport_stream_id,
  178. * INT32 id_code,
  179. * void (*callback)(void *))
  180. * \brief Add BAT monitoring.
  181. *
  182. * \param bouquet_id : bouquet identifier
  183. * \param transport_stream_id : transport identifier
  184. * \param id_code : identifier number
  185. * \param callback : registered callback
  186. *
  187. * \return 0 if success or fail if < 0
  188. *
  189. ******************************************************************************/
  190. INT32 AddBouquetMonitoringListener(INT32 bouquet_id,
  191. INT32 transport_stream_id,
  192. INT32 id_code,
  193. void (*callback)(void *));
  194. /******************************************************************************/
  195. /**
  196. * \fn INT32 AddBouquetMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  197. * INT32 bouquet_id,
  198. * INT32 transport_stream_id,
  199. * INT32 id_code,
  200. * void (*callback)(void *))
  201. * \brief Add BAT monitoring.
  202. *
  203. * \param InputUnit : Identify the demux unit
  204. * \param bouquet_id : bouquet identifier
  205. * \param transport_stream_id : transport identifier
  206. * \param id_code : identifier number
  207. * \param callback : registered callback
  208. *
  209. * \return 0 if success or fail if < 0
  210. *
  211. ******************************************************************************/
  212. INT32 AddBouquetMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  213. INT32 bouquet_id,
  214. INT32 transport_stream_id,
  215. INT32 id_code, void (*callback) (void *));
  216. #endif
  217. /******************************************************************************/
  218. /**
  219. * \fn INT32 AddPMTServiceMonitoringListener(INT32 original_network_id,
  220. * INT32 transport_stream_id,
  221. * INT32 service_id,
  222. * INT32 id_code,
  223. * void (*callback)(INT32, INT32 , void *))
  224. * \brief Add PMT monitoring.
  225. *
  226. * \param original_network_id : network identifier
  227. * \param transport_stream_id : transport identifier
  228. * \param service_id : service number
  229. * \param id_code : identifier number
  230. * \param callback : registered callback
  231. *
  232. * \return 0 if success or fail if < 0
  233. *
  234. ******************************************************************************/
  235. INT32 AddPMTServiceMonitoringListener(INT32 original_network_id,
  236. INT32 transport_stream_id,
  237. INT32 service_id,
  238. INT32 id_code,
  239. void (*callback)(INT32, INT32 , UINT16, void *));
  240. /******************************************************************************/
  241. /**
  242. * \fn INT32 AddPMTServiceMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  243. * INT32 original_network_id,
  244. * INT32 transport_stream_id,
  245. * INT32 service_id,
  246. * INT32 id_code,
  247. * void (*callback) (INT32, INT32, void *))
  248. * \brief Add PMT monitoring.
  249. *
  250. * \param InputUnit : Identify the demux unit
  251. * \param original_network_id : network identifier
  252. * \param transport_stream_id : transport identifier
  253. * \param service_id : service number
  254. * \param id_code : identifier number
  255. * \param callback : registered callback
  256. *
  257. * \return 0 if success or fail if < 0
  258. *
  259. ******************************************************************************/
  260. INT32 AddPMTServiceMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 original_network_id,
  261. INT32 transport_stream_id,
  262. INT32 service_id,
  263. INT32 id_code,
  264. void (*callback) (INT32, INT32, UINT16, void *));
  265. /******************************************************************************/
  266. /**
  267. * \fn INT32 AddServiceMonitoringListener(INT32 original_network_id,
  268. * INT32 transport_stream_id,
  269. * INT32 service_id,
  270. * INT32 id_code,
  271. * void (*callback)(void *))
  272. * \brief Add SDT monitoring.
  273. *
  274. * \param original_network_id : network identifier
  275. * \param transport_stream_id : transport identifier
  276. * \param service_id : service number
  277. * \param id_code : identifier number
  278. * \param callback : registered callback
  279. *
  280. * \return 0 if success or fail if < 0
  281. *
  282. ******************************************************************************/
  283. INT32 AddServiceMonitoringListener(INT32 original_network_id,
  284. INT32 transport_stream_id,
  285. INT32 service_id,
  286. INT32 id_code,
  287. void (*callback)(void *));
  288. /******************************************************************************/
  289. /**
  290. * \fn INT32 AddServiceMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  291. * INT32 original_network_id,
  292. * INT32 transport_stream_id,
  293. * INT32 service_id,
  294. * INT32 id_code,
  295. * void (*callback)(void *))
  296. * \brief Add SDT monitoring.
  297. *
  298. * \param InputUnit : Identify the demux unit
  299. * \param original_network_id : network identifier
  300. * \param transport_stream_id : transport identifier
  301. * \param service_id : service number
  302. * \param id_code : identifier number
  303. * \param callback : registered callback
  304. *
  305. * \return 0 if success or fail if < 0
  306. *
  307. ******************************************************************************/
  308. INT32 AddServiceMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  309. INT32 original_network_id,
  310. INT32 transport_stream_id,
  311. INT32 service_id, INT32 id_code, void (*callback) (void *));
  312. /******************************************************************************/
  313. /**
  314. * \fn INT32 AddSDTOtherMonitoringListener(INT32 original_network_id,
  315. * INT32 transport_stream_id,
  316. * INT32 service_id,
  317. * INT32 id_code,
  318. * void (*callback)(void *))
  319. * \brief Add SDT monitoring.
  320. *
  321. * \param original_network_id : network identifier
  322. * \param transport_stream_id : transport identifier
  323. * \param service_id : service number
  324. * \param id_code : identifier number
  325. * \param callback : registered callback
  326. *
  327. * \return 0 if success or fail if < 0
  328. *
  329. ******************************************************************************/
  330. INT32 AddSDTOtherMonitoringListener(INT32 original_network_id,
  331. INT32 transport_stream_id,
  332. INT32 service_id,
  333. INT32 id_code,
  334. void (*callback) (void *));
  335. /******************************************************************************/
  336. /**
  337. * \fn INT32 AddSDTOtherMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  338. * INT32 original_network_id,
  339. * INT32 transport_stream_id,
  340. * INT32 service_id,
  341. * INT32 id_code,
  342. * void (*callback)(void *))
  343. * \brief Add SDT monitoring.
  344. *
  345. * \param InputUnit : Identify the demux unit
  346. * \param original_network_id : network identifier
  347. * \param transport_stream_id : transport identifier
  348. * \param service_id : service number
  349. * \param id_code : identifier number
  350. * \param callback : registered callback
  351. *
  352. * \return 0 if success or fail if < 0
  353. *
  354. ******************************************************************************/
  355. INT32 AddSDTOtherMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  356. INT32 original_network_id,
  357. INT32 transport_stream_id,
  358. INT32 service_id,
  359. INT32 id_code,
  360. void (*callback) (void *));
  361. /******************************************************************************/
  362. /**
  363. * \fn INT32 AddTDTMonitoringListener(INT32 id_code, void (*callback)(void *))
  364. *
  365. * \brief Add TDT monitoring.
  366. *
  367. * \param id_code : identifier number
  368. * \param callback : registered callback
  369. *
  370. * \return 0 if success or fail if < 0
  371. *
  372. ******************************************************************************/
  373. INT32 AddTDTMonitoringListener(INT32 id_code, void (*callback)(void *));
  374. /******************************************************************************/
  375. /**
  376. * \fn INT32 AddTDTMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code, void (*callback)(void *))
  377. *
  378. * \brief Add TDT monitoring.
  379. *
  380. * \param InputUnit : Identify the demux unit
  381. * \param id_code : identifier number
  382. * \param callback : registered callback
  383. *
  384. * \return 0 if success or fail if < 0
  385. *
  386. ******************************************************************************/
  387. INT32 AddTDTMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  388. INT32 id_code,
  389. void (*callback) (void *));
  390. /******************************************************************************/
  391. /**
  392. * \fn INT32 AddTOTMonitoringListener(INT32 id_code, void (*callback)(void *))
  393. *
  394. * \brief Add TOT monitoring.
  395. *
  396. * \param id_code : identifier number
  397. * \param callback : registered callback
  398. *
  399. * \return 0 if success or fail if < 0
  400. *
  401. ******************************************************************************/
  402. INT32 AddTOTMonitoringListener(INT32 id_code, void (*callback)(void *));
  403. /******************************************************************************/
  404. /**
  405. * \fn INT32 AddTOTMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code, void (*callback)(void *))
  406. *
  407. * \brief Add TOT monitoring.
  408. *
  409. * \param InputUnit : Identify the demux unit
  410. * \param id_code : identifier number
  411. * \param callback : registered callback
  412. *
  413. * \return 0 if success or fail if < 0
  414. *
  415. ******************************************************************************/
  416. INT32 AddTOTMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  417. INT32 id_code,
  418. void (*callback) (void *));
  419. /******************************************************************************/
  420. /**
  421. * \fn INT32 AddCATMonitoringListener(INT32 id_code, void (*callback)(void *))
  422. *
  423. * \brief Add CAT monitoring.
  424. *
  425. * \param id_code : identifier number
  426. * \param callback : registered callback
  427. *
  428. * \return 0 if success or fail if < 0
  429. *
  430. ******************************************************************************/
  431. INT32 AddCATMonitoringListener(INT32 id_code, void (*callback)(void *));
  432. /******************************************************************************/
  433. /**
  434. * \fn INT32 AddCATMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,, INT32 id_code, void (*callback)(void *))
  435. *
  436. * \brief Add CAT monitoring.
  437. *
  438. * \param InputUnit : Identify the demux unit
  439. * \param id_code : identifier number
  440. * \param callback : registered callback
  441. *
  442. * \return 0 if success or fail if < 0
  443. *
  444. ******************************************************************************/
  445. INT32 AddCATMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  446. INT32 id_code,
  447. void (*callback) (void *));
  448. /******************************************************************************/
  449. /**
  450. * \fn INT32 AddPATMonitoringListener(INT32 id_code, void (*callback)(void *))
  451. *
  452. * \brief Add PAT monitoring.
  453. *
  454. * \param id_code : identifier number
  455. * \param callback : registered callback
  456. *
  457. * \return 0 if success or fail if < 0
  458. *
  459. ******************************************************************************/
  460. INT32 AddPATMonitoringListener(INT32 id_code, void (*callback)(void *));
  461. /******************************************************************************/
  462. /**
  463. * \fn INT32 AddPATMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code, void (*callback)(void *))
  464. *
  465. * \brief Add PAT monitoring.
  466. *
  467. * \param InputUnit : Identify the demux unit
  468. * \param id_code : identifier number
  469. * \param callback : registered callback
  470. *
  471. * \return 0 if success or fail if < 0
  472. *
  473. ******************************************************************************/
  474. INT32 AddPATMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  475. INT32 id_code,
  476. void (*callback)(void *));
  477. #ifdef DVB_OTA_AUTO_DETECT//yc.guan 2010-04-15 add for SSU
  478. /******************************************************************************/
  479. /**
  480. * \fn INT32 AddOtaPMTMonitoringListener(INT32 id_code, void (*callback)(void *))
  481. *
  482. * \brief Add OtaPMT monitoring.
  483. *
  484. * \param id_code : identifier number
  485. * \param callback : registered callback
  486. *
  487. * \return 0 if success or fail if < 0
  488. *
  489. ******************************************************************************/
  490. INT32 AddOtaPMTMonitoringListener(INT32 original_network_id,
  491. INT32 transport_stream_id, INT32 service_id, INT32 id_code, void (*callback) (INT32, INT32, void *));
  492. /******************************************************************************/
  493. /**
  494. * \fn INT32 AddDSIMonitoringListener(INT32 id_code, void (*callback)(void *))
  495. *
  496. * \brief Add DSI monitoring.
  497. *
  498. * \param id_code : identifier number
  499. * \param callback : registered callback
  500. *
  501. * \return 0 if success or fail if < 0
  502. *
  503. ******************************************************************************/
  504. INT32 AddDSIMonitoringListener(INT32 id_code, void (*callback)(void *));
  505. #endif
  506. /* @} end of addtogroup Add Monitors */
  507. /** \addtogroup Remove_monitor Remove Monitors
  508. * \brief remove monitors for tables
  509. * @{ */
  510. /******************************************************************************/
  511. /**
  512. * \fn INT32 RemoveNetworkMonitoringListener(INT32 original_network_id,
  513. * INT32 transport_stream_id,
  514. * INT32 id_code)
  515. * \brief Remove NIT monitoring.
  516. *
  517. * \param original_network_id : network identifier
  518. * \param transport_stream_id : transport identifier
  519. * \param id_code : identifier number
  520. *
  521. * \return 0 if success or fail if < 0
  522. *
  523. ******************************************************************************/
  524. INT32 RemoveNetworkMonitoringListener(INT32 original_network_id,
  525. INT32 transport_stream_id,
  526. INT32 id_code);
  527. /******************************************************************************/
  528. /**
  529. * \fn INT32 RemoveNetworkMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  530. * INT32 original_network_id,
  531. * INT32 transport_stream_id,
  532. * INT32 id_code)
  533. * \brief Remove NIT monitoring.
  534. *
  535. * \param InputUnit : Identify the demux unit
  536. * \param original_network_id : network identifier
  537. * \param transport_stream_id : transport identifier
  538. * \param id_code : identifier number
  539. *
  540. * \return 0 if success or fail if < 0
  541. *
  542. ******************************************************************************/
  543. INT32 RemoveNetworkMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  544. INT32 network_id,
  545. INT32 transport_stream_id,
  546. INT32 id_code);
  547. #ifdef CONFIG_SUPPORT_INDONESIA_EWS
  548. /******************************************************************************/
  549. /**
  550. * \fn INT32 RemoveTxDWMonitoringListener(INT32 id_code)
  551. *
  552. * \brief Remove TxDW monitoring.
  553. *
  554. * \param id_code : identifier number
  555. *
  556. * \return 0 if success or fail if < 0
  557. *
  558. ******************************************************************************/
  559. INT32 RemoveTxDWMonitoringListener(INT32 id_code);
  560. /******************************************************************************/
  561. /**
  562. * \fn INT32 RemoveTxDWMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code)
  563. *
  564. * \brief Remove TxDW monitoring.
  565. *
  566. * \param InputUnit : Identify the demux unit
  567. * \param id_code : identifier number
  568. *
  569. * \return 0 if success or fail if < 0
  570. *
  571. ******************************************************************************/
  572. INT32 RemoveTxDWMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  573. INT32 id_code);
  574. #endif
  575. #ifdef CONFIG_SUPPORT_HBBTV
  576. INT32 RemoveAITMonitoringListener(INT32 id_code);
  577. INT32 RemoveAITMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  578. INT32 id_code);
  579. #endif
  580. #ifdef CONFIG_SUPPORT_KDG_CERTIFICATION
  581. /******************************************************************************/
  582. /**
  583. * \fn INT32 RemoveBouquetMonitoringListener(INT32 bouquet_id,
  584. * INT32 transport_stream_id,
  585. * INT32 id_code)
  586. * \brief Remove BAT monitoring.
  587. *
  588. * \param bouquet_id : network identifier
  589. * \param transport_stream_id : transport identifier
  590. * \param id_code : identifier number
  591. *
  592. * \return 0 if success or fail if < 0
  593. *
  594. ******************************************************************************/
  595. INT32 RemoveBouquetMonitoringListener(INT32 bouquet_id,
  596. INT32 transport_stream_id,
  597. INT32 id_code);
  598. /******************************************************************************/
  599. /**
  600. * \fn INT32 RemoveBouquetMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  601. * INT32 bouquet_id,
  602. * INT32 transport_stream_id,
  603. * INT32 id_code)
  604. * \brief Remove BAT monitoring.
  605. *
  606. * \param InputUnit : Identify the demux unit
  607. * \param bouquet_id : network identifier
  608. * \param transport_stream_id : transport identifier
  609. * \param id_code : identifier number
  610. *
  611. * \return 0 if success or fail if < 0
  612. *
  613. ******************************************************************************/
  614. INT32 RemoveBouquetMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  615. INT32 bouquet_id,
  616. INT32 transport_stream_id,
  617. INT32 id_code);
  618. #endif
  619. /******************************************************************************/
  620. /**
  621. * \fn INT32 RemovePMTServiceMonitoringListener(INT32 original_network_id,
  622. * INT32 transport_stream_id,
  623. * INT32 service_id,
  624. * INT32 id_code)
  625. * \brief Remove PMT monitoring.
  626. *
  627. * \param original_network_id : network identifier
  628. * \param transport_stream_id : transport identifier
  629. * \param service_id : service number
  630. * \param id_code : identifier number
  631. *
  632. * \return 0 if success or fail if < 0
  633. *
  634. ******************************************************************************/
  635. INT32 RemovePMTServiceMonitoringListener(INT32 original_network_id,
  636. INT32 transport_stream_id,
  637. INT32 service_id,
  638. INT32 id_code);
  639. /******************************************************************************/
  640. /**
  641. * \fn INT32 RemovePMTServiceMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  642. * INT32 original_network_id,
  643. * INT32 transport_stream_id,
  644. * INT32 service_id,
  645. * INT32 id_code)
  646. * \brief Remove PMT monitoring.
  647. *
  648. * \param InputUnit : Identify the demux unit
  649. * \param original_network_id : network identifier
  650. * \param transport_stream_id : transport identifier
  651. * \param service_id : service number
  652. * \param id_code : identifier number
  653. *
  654. * \return 0 if success or fail if < 0
  655. *
  656. ******************************************************************************/
  657. INT32 RemovePMTServiceMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  658. INT32 original_network_id,
  659. INT32 transport_stream_id,
  660. INT32 service_id,
  661. INT32 id_code);
  662. /******************************************************************************/
  663. /**
  664. * \fn INT32 RemoveServiceMonitoringListener(INT32 original_network_id,
  665. * INT32 transport_stream_id,
  666. * INT32 service_id,
  667. * INT32 id_code)
  668. * \brief Remove SDT monitoring.
  669. *
  670. * \param original_network_id : network identifier
  671. * \param transport_stream_id : transport identifier
  672. * \param service_id : service number
  673. * \param id_code : identifier number
  674. *
  675. * \return 0 if success or fail if < 0
  676. *
  677. ******************************************************************************/
  678. INT32 RemoveServiceMonitoringListener(INT32 original_network_id,
  679. INT32 transport_stream_id,
  680. INT32 service_id,
  681. INT32 id_code);
  682. /******************************************************************************/
  683. /**
  684. * \fn INT32 RemoveServiceMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  685. * INT32 original_network_id,
  686. * INT32 transport_stream_id,
  687. * INT32 service_id,
  688. * INT32 id_code)
  689. * \brief Remove SDT monitoring.
  690. *
  691. * \param InputUnit : Identify the demux unit
  692. * \param original_network_id : network identifier
  693. * \param transport_stream_id : transport identifier
  694. * \param service_id : service number
  695. * \param id_code : identifier number
  696. *
  697. * \return 0 if success or fail if < 0
  698. *
  699. ******************************************************************************/
  700. INT32 RemoveServiceMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  701. INT32 original_network_id,
  702. INT32 transport_stream_id,
  703. INT32 service_id,
  704. INT32 id_code);
  705. /******************************************************************************/
  706. /**
  707. * \fn INT32 RemoveTDTMonitoringListener(INT32 id_code)
  708. *
  709. * \brief Remove TDT monitoring.
  710. *
  711. * \param id_code : identifier number
  712. *
  713. * \return 0 if success or fail if < 0
  714. *
  715. ******************************************************************************/
  716. INT32 RemoveTDTMonitoringListener(INT32 id_code);
  717. /******************************************************************************/
  718. /**
  719. * \fn INT32 RemoveTDTMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  720. * INT32 id_code)
  721. *
  722. * \brief Remove TDT monitoring.
  723. *
  724. * \param InputUnit : Identify the demux unit
  725. * \param id_code : identifier number
  726. *
  727. * \return 0 if success or fail if < 0
  728. *
  729. ******************************************************************************/
  730. INT32 RemoveTDTMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  731. INT32 id_code);
  732. /******************************************************************************/
  733. /**
  734. * \fn INT32 RemoveTOTMonitoringListener(INT32 id_code)
  735. *
  736. * \brief Remove TOT monitoring.
  737. *
  738. * \param id_code : identifier number
  739. *
  740. * \return 0 if success or fail if < 0
  741. *
  742. ******************************************************************************/
  743. INT32 RemoveTOTMonitoringListener(INT32 id_code);
  744. /******************************************************************************/
  745. /**
  746. * \fn INT32 RemoveTOTMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code)
  747. *
  748. * \brief Remove TOT monitoring.
  749. *
  750. * \param InputUnit : Identify the demux unit
  751. * \param id_code : identifier number
  752. *
  753. * \return 0 if success or fail if < 0
  754. *
  755. ******************************************************************************/
  756. INT32 RemoveTOTMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  757. INT32 id_code);
  758. /******************************************************************************/
  759. /**
  760. * \fn INT32 RemoveCATMonitoringListener(INT32 id_code)
  761. *
  762. * \brief Remove CAT monitoring.
  763. *
  764. * \param id_code : identifier number
  765. *
  766. * \return 0 if success or fail if < 0
  767. *
  768. ******************************************************************************/
  769. INT32 RemoveCATMonitoringListener(INT32 id_code);
  770. /******************************************************************************/
  771. /**
  772. * \fn INT32 RemoveCATMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code)
  773. *
  774. * \brief Remove CAT monitoring.
  775. *
  776. * \param InputUnit : Identify the demux unit
  777. * \param id_code : identifier number
  778. *
  779. * \return 0 if success or fail if < 0
  780. *
  781. ******************************************************************************/
  782. INT32 RemoveCATMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  783. INT32 id_code);
  784. /******************************************************************************/
  785. /**
  786. * \fn INT32 RemovePATMonitoringListener(INT32 id_code)
  787. *
  788. * \brief Remove PAT monitoring.
  789. *
  790. * \param id_code : identifier number
  791. *
  792. * \return 0 if success or fail if < 0
  793. *
  794. ******************************************************************************/
  795. INT32 RemovePATMonitoringListener(INT32 id_code);
  796. /******************************************************************************/
  797. /**
  798. * \fn INT32 RemovePATMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit, INT32 id_code)
  799. *
  800. * \brief Remove PAT monitoring.
  801. *
  802. * \param InputUnit : Identify the demux unit
  803. * \param id_code : identifier number
  804. *
  805. * \return 0 if success or fail if < 0
  806. *
  807. ******************************************************************************/
  808. INT32 RemovePATMonitoringListenerEx(LIVE_INPUT_UNIT InputUnit,
  809. INT32 id_code);
  810. #ifdef DVB_OTA_AUTO_DETECT//yc.guan 2010-04-15 add for SSU
  811. /******************************************************************************/
  812. /**
  813. * \fn INT32 RemoveOtaPMTMonitoringListener(INT32 id_code)
  814. *
  815. * \brief Remove OtaPMT monitoring.
  816. *
  817. * \param id_code : identifier number
  818. *
  819. * \return 0 if success or fail if < 0
  820. *
  821. ******************************************************************************/
  822. INT32 RemoveOtaPMTMonitoringListener(INT32 id_code);
  823. /******************************************************************************/
  824. /**
  825. * \fn INT32 RemoveDSIMonitoringListener(INT32 id_code)
  826. *
  827. * \brief Remove DSI monitoring.
  828. *
  829. * \param id_code : identifier number
  830. *
  831. * \return 0 if success or fail if < 0
  832. *
  833. ******************************************************************************/
  834. INT32 RemoveDSIMonitoringListener(INT32 id_code);
  835. #endif
  836. /* @} end of addtogroup Remove Monitors */
  837. /** \addtogroup Initialize_monitors Initialize Monitors
  838. * \brief initialize and uninitialize
  839. * @{ */
  840. /******************************************************************************/
  841. /**
  842. * \fn DRV_Status_t MID_PsiMonInit(Mid_PsiMonCallbks_t *pstPsiMonCallbks)
  843. *
  844. * \brief psi monitor initialization
  845. *
  846. * \param pstPsiMonCallbks : Psi monitor callback structure
  847. *
  848. * \return enum status
  849. *
  850. ******************************************************************************/
  851. MID_Status_t MID_PsiMonInit(Mid_PsiMonCallbks_t *pstPsiMonCallbks);
  852. /******************************************************************************/
  853. /**
  854. * \fn DRV_Status_t MID_PsiMonInitEx(LIVE_INPUT_UNIT InputUnit, Mid_PsiMonCallbks_t * pstPsiMonCallbks)
  855. *
  856. * \brief psi monitor initialization
  857. *
  858. * \param InputUnit : Identify the demux unit
  859. *
  860. * \param pstPsiMonCallbks : Psi monitor callback structure
  861. *
  862. * \return enum status
  863. *
  864. ******************************************************************************/
  865. MID_Status_t MID_PsiMonInitEx(LIVE_INPUT_UNIT InputUnit, Mid_PsiMonCallbks_t * pstPsiMonCallbks);
  866. /******************************************************************************/
  867. /**
  868. * \fn void MID_PsiMonUninit(void)
  869. *
  870. * \brief psi monitor un-initialization
  871. *
  872. *
  873. * \return none
  874. *
  875. ******************************************************************************/
  876. void MID_PsiMonUninit(void);
  877. /******************************************************************************/
  878. /**
  879. * \fn void MID_PsiMonUninitEx(LIVE_INPUT_UNIT InputUnit)
  880. *
  881. * \param InputUnit : Identify the demux unit
  882. *
  883. * \brief psi monitor un-initialization
  884. *
  885. *
  886. * \return none
  887. *
  888. ******************************************************************************/
  889. void MID_PsiMonUninitEx(LIVE_INPUT_UNIT InputUnit);
  890. /* @} end of addtogroup Initialize Monitors */
  891. /** \addtogroup Monitor_operations Monitor Operations
  892. * \brief Operations for monitors
  893. * @{ */
  894. /******************************************************************************/
  895. /**
  896. * \fn DRV_Status_t MID_PsiMonStart(void)
  897. *
  898. * \brief psi monitor start
  899. *
  900. *
  901. * \return enum status
  902. *
  903. ******************************************************************************/
  904. MID_Status_t MID_PsiMonStart(void);
  905. /******************************************************************************/
  906. /**
  907. * \fn DRV_Status_t MID_PsiMonStartEx(LIVE_INPUT_UNIT InputUnit)
  908. *
  909. * \param InputUnit : Identify the demux unit
  910. *
  911. * \brief psi monitor start
  912. *
  913. *
  914. * \return enum status
  915. *
  916. ******************************************************************************/
  917. MID_Status_t MID_PsiMonStartEx(LIVE_INPUT_UNIT InputUnit);
  918. /******************************************************************************/
  919. /**
  920. * \fn DRV_Status_t MID_PsiMonStop(Boolean bExit)
  921. *
  922. * \brief psi monitor stop
  923. *
  924. * \param bExit: to idle or to exit mode
  925. *
  926. * \return enum status
  927. *
  928. ******************************************************************************/
  929. MID_Status_t MID_PsiMonStop(bool bExit);
  930. /******************************************************************************/
  931. /**
  932. * \fn DRV_Status_t MID_PsiMonStopEx(LIVE_INPUT_UNIT InputUnit, Boolean bExit)
  933. *
  934. * \brief psi monitor stop
  935. *
  936. * \param InputUnit : Identify the demux unit
  937. *
  938. * \param bExit: to idle or to exit mode
  939. *
  940. * \return enum status
  941. *
  942. ******************************************************************************/
  943. MID_Status_t MID_PsiMonStopEx(LIVE_INPUT_UNIT InputUnit, bool bExit);
  944. /******************************************************************************/
  945. /**
  946. * \fn Boolean MID_PsiMonIsRunning(void)
  947. *
  948. * \brief psi monitor stop
  949. *
  950. *
  951. * \return TRUE for yes, FALSE for no
  952. *
  953. ******************************************************************************/
  954. bool MID_PsiMonIsRunning(void);
  955. /******************************************************************************/
  956. /**
  957. * \fn Boolean MID_PsiMonIsRunningEx(LIVE_INPUT_UNIT InputUnit)
  958. *
  959. * \param InputUnit : Identify the demux unit
  960. *
  961. * \brief psi monitor stop
  962. *
  963. *
  964. * \return TRUE for yes, FALSE for no
  965. *
  966. ******************************************************************************/
  967. bool MID_PsiMonIsRunningEx(LIVE_INPUT_UNIT InputUnit);
  968. /******************************************************************************/
  969. /**
  970. * \fn DRV_Status_t MID_PsiMonNotifyProgChanged(UINT32 hProg)
  971. *
  972. * \brief psi monitor signal program change
  973. *
  974. * \param hProg : the new program handle
  975. *
  976. * \return enum status
  977. *
  978. ******************************************************************************/
  979. MID_Status_t MID_PsiMonNotifyProgChanged(UINT32 hProg);
  980. /******************************************************************************/
  981. /**
  982. * \fn DRV_Status_t MID_PsiMonNotifyProgChangedEx(LIVE_INPUT_UNIT InputUnit, UINT32 u32Prog)
  983. *
  984. * \brief psi monitor signal program change
  985. *
  986. * \param InputUnit : Identify the demux unit
  987. *
  988. * \param u32Prog: the new program handle
  989. *
  990. * \return enum status
  991. *
  992. ******************************************************************************/
  993. MID_Status_t MID_PsiMonNotifyProgChangedEx(LIVE_INPUT_UNIT InputUnit, UINT32 u32Prog);
  994. /******************************************************************************/
  995. /**
  996. * \fn UINT32 MID_PsiMonQueryCurrentProgHdl(void)
  997. *
  998. * \brief to query current psi listening program handle
  999. *
  1000. *
  1001. * \return current listening program handle
  1002. *
  1003. ******************************************************************************/
  1004. UINT32 MID_PsiMonQueryCurrentProgHdl(void) ;
  1005. /******************************************************************************/
  1006. /**
  1007. * \fn UINT32 MID_PsiMonQueryCurrentProgHdlEx(LIVE_INPUT_UNIT InputUnit)
  1008. *
  1009. * \brief to query current psi listening program handle
  1010. *
  1011. *
  1012. * \return current listening program handle
  1013. *
  1014. ******************************************************************************/
  1015. UINT32 MID_PsiMonQueryCurrentProgHdlEx(LIVE_INPUT_UNIT InputUnit);
  1016. /* @} end of addtogroup Monitor Operations */
  1017. #ifdef CONFIG_SUPPORT_INDONESIA_EWS
  1018. void MID_PsiMonSetEwsPid(UINT16 pid);
  1019. #endif
  1020. /* @} end of addtogroup Monitors */
  1021. #ifdef SUPPORT_INDEPENDENCE_DETECT_OTA
  1022. void MID_PsiMonSetPmtFlag(Boolean bFlag);
  1023. bool MID_PsiMonGetPmtFlag(void);
  1024. #endif
  1025. #endif // #ifndef _MONITOR_H_2008_04_17