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

DVD

开发平台:

C/C++

  1. //*****************************************************************************
  2. //File Name: kb_machblue_tv_mix.c
  3. //
  4. //Description: event function
  5. //
  6. // used by Machblue to initialize or delete the tv porting layer
  7. // and other funs
  8. //
  9. //Author: steven
  10. //
  11. //Date:  2007.01.20
  12. //
  13. //Version:  v1.0
  14. //*****************************************************************************
  15. #include "stdlib.h"
  16. #include "machblue_defines.h"
  17. #include "machblue_porting_core.h"
  18. #include "machblue_tv_defines.h"
  19. #include "machblue_tv_customer.h"
  20. #include "kb_machblue_client_data.h"
  21. #include "kb_machblue_client_define.h"
  22. /**
  23.  * Invoked by Machblue to initialize the tv porting layer. This
  24.  * will be called before any calls to the tv porting layer. After 
  25.  * this call Machblue expects that any asynchronous query will be perfomed
  26.  * by the system with the shortest response time possible. On most systems
  27.  * responding to these queries in a short time implies a heavy caching 
  28.  * of network signalization tables. This caching mechnism is supposed to be
  29.  * enabled by the middleware at the latest before the completion of 
  30.  * mb_tv_porting_layer_init.
  31.  * tv_notify_f < machblue tv notification function that will be called for all asynchronous notifications >
  32.  * nf_client_data  < notification function client data to pass as-is to the notification function >
  33.  
  34.  * @return MB_SUCCESS on success, MB_FAILURE on failure.
  35.  */
  36. mb_error_t mb_tv_porting_layer_init(mb_tv_notify_f *tv_notify_f,void *nf_client_data)
  37. {
  38. if(tv_notify_f==NULL||nf_client_data==NULL)
  39. {
  40. mb_printf("n[Machblue]:TV porting layer init NULL.");
  41. return MB_FAILURE;
  42. }
  43. //set notification data
  44. kb_mb_notification_set(tv_notify_f,nf_client_data);
  45. //init data
  46. kb_mb_service_list_init();
  47. kb_mb_service_context_init();
  48. kb_mb_editinfo_init();
  49. return MB_SUCCESS;
  50. }
  51. /**
  52.  * Invoked by Machblue to delete the tv porting layer. Machblue will 
  53.  * not make any calls to the tv porting layer after this call
  54.  * @return MB_SUCCESS on success, MB_FAILURE on failure.
  55.  */
  56. mb_error_t mb_tv_porting_layer_delete(void)
  57. {
  58. //delete data
  59. return MB_SUCCESS;
  60. }
  61. /**
  62.  * This function returns the currently selected screen 
  63.  * language, as an ISO 639 language code string. The platform 
  64.  * can also provides live notification of screen language changes 
  65.  * through the MB_TV_NR_LANGUAGE_CHANGED notification event. 
  66.  * @see MB_TV_NR_LANGUAGE_CHANGED
  67.  
  68.  * language   < user provided string pointer to update, the string is at least MB_TV_LANGUAGE_STRING_LENGTH long >
  69.  
  70.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  71.  */
  72. mb_error_t mb_tv_screen_language_get(mb_char_t *language)
  73. {
  74. if(language==NULL)
  75. {
  76. mb_printf("n[Machblue]:TV get screen language NULL.");
  77. return MB_FAILURE;
  78. }
  79. mb_memcpy(language,"chi", MB_TV_LANGUAGE_LENGTH);
  80. return MB_SUCCESS;
  81. }
  82. /**
  83.  * This function returns the default screen language, as an ISO 639 language
  84.  * code string. The default language is a system-wide fall-back language
  85.  * value. 
  86.  * language  < user provided string pointer to update, 
  87.      the string is at least MB_TV_LANGUAGE_STRING_LENGTH long >
  88.  
  89.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  90.  */
  91. mb_error_t mb_tv_default_screen_language_get(mb_char_t *language)
  92. {
  93. if(language==NULL)
  94. {
  95. mb_printf("n[Machblue]:TV get default screen language NULL.");
  96. return MB_FAILURE;
  97. }
  98. mb_memcpy(language,"chi", MB_TV_LANGUAGE_LENGTH);
  99. return MB_SUCCESS;
  100. }
  101. /**
  102.  * This function returns the current rating block, as a string, formatted 
  103.  * for display purposes using the local standards for displaying program ratings.
  104.  * ratings  < user provided string pointer to update, the string is at least MB_TV_RATING_STRING_LENGTH long >
  105.  
  106.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  107.  */
  108. mb_error_t mb_tv_rating_block_get(mb_char_t *ratings)
  109. {
  110. mb_char_t ratStr[MB_TV_RATING_LENGTH];
  111. if(ratings==NULL)
  112. {
  113. mb_printf("n[Machblue]:TV get rating block NULL.");
  114. return MB_FAILURE;
  115. }
  116. //itoa(1,ratStr,10); 
  117. mb_memcpy(ratings,ratStr,MB_TV_RATING_LENGTH);
  118. return MB_SUCCESS;
  119. }
  120. /**
  121.  * This function retrieves a given asset authorization flags.
  122.  * Note that services and program events have their own 
  123.  * authorization methods.  This method is useful if an application 
  124.  * is using the conditional access system for something other than a 
  125.  * service or a program event, such as an interactive service.
  126.  * The list of authorization flags is enumerated in 
  127.  * mb_tv_authorization_flag_t.
  128.  * @see mb_tv_authorization_flag_t
  129.  * asset_id < id of the assets to check >
  130.  * auth_flags   < pointer to asset authorization flags to update @see mb_tv_authorization_flag_t >
  131.  
  132.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  133.  */
  134. mb_error_t mb_tv_asset_auth_flags_get(const mb_char_t *asset_id,unsigned int *auth_flags)
  135. {
  136. if(auth_flags==NULL||asset_id==NULL)
  137. {
  138. mb_printf("n[Machblue]:TV get asset auth flag NULL.");
  139. return MB_FAILURE;
  140. }
  141. *auth_flags=MB_TV_AF_AUTHORIZED;
  142. return MB_SUCCESS;
  143. }
  144. /**
  145.  * This function attempts to purchase the specified asset.
  146.  * This operation is ASYNCHRONOUS, and may imply a roundtrip 
  147.  * to the head-end for a credit check and actual processing.
  148.  * It is expected that any user intervention, in the form of 
  149.  * a confirmation, has been done prior to calling this method.
  150.  * @see MB_TV_NR_ASSET_PURCHASE_STATUS 
  151.  * asset_id  < id of the assets to purchase >
  152.  
  153.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  154.  */
  155. mb_error_t mb_tv_asset_purchase(const mb_char_t *asset_id)
  156. {
  157. return MB_SUCCESS;
  158. }
  159. /**
  160.  * This function validates the specified PIN. This method will 
  161.  * cause the system to display a standard PIN entry form, and 
  162.  * ask the subscriber to enter the appropriate PIN.
  163.  * 
  164.  * This method is ASYNCHRONOUS. The system should send an 
  165.  * MB_TV_NR_PIN_VALIDATION_STATUS notification on completion of the 
  166.  * request.The MB_TV_NR_PIN_VALIDATION_STATUS event contains a 
  167.  * field indicating the success of the operation.
  168.  * @see MB_TV_NR_PIN_VALIDATION_STATUS
  169.  * pin_type  < pin type to validate >
  170.  
  171.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  172.  */
  173. mb_error_t mb_tv_pin_validate(mb_tv_pin_type_t pin_type)
  174. {
  175. mb_error_t retval = MB_FAILURE;
  176. mb_args_t args;
  177. mb_printf("%s::mb_tv_pin_validate(): Invoke ...");
  178. //UpdateDeviceTime();
  179. // Display a form screen for PIN
  180. // Validation of pin
  181. retval = MB_SUCCESS;
  182. MB_TV_PIN_VALIDATION_TYPE_ARG(&args) = pin_type;
  183. MB_TV_STATUS_ARG(&args) = retval;
  184. //MBTV_InvokeTVCallbackFunction(reason, &args);
  185. mb_printf("");
  186. return(retval);
  187. }
  188. /**
  189.  * This function retrieves device info from the system.
  190.  * device_info  < device info structure to update >
  191.  
  192.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  193.  */
  194. mb_error_t mb_tv_device_info_get(mb_tv_device_info_t *device_info)
  195. {
  196. if(device_info==NULL)
  197. {
  198. mb_printf("n[Machblue]:TV get device information NULL.");
  199. return MB_FAILURE;
  200. }
  201. mb_memcpy(device_info->manufacturer,"keybridge",9);
  202. mb_memcpy(device_info->model,"vlink1000",9);
  203. mb_memcpy(device_info->os_name,"OS20",4);
  204. mb_memcpy(device_info->os_version,"R2.2.1",6);
  205. mb_memcpy(device_info->resident_app,"Ver1.0",6);
  206. mb_memcpy(device_info->unique_id,"1",1);
  207. mb_memcpy(device_info->mac_address,"FFFFFFFF",8);
  208. mb_memcpy(device_info->ip_address,"127.0.0.1",9);
  209. mb_memcpy(device_info->extra_info," ",1);
  210. device_info->capabilities=MB_TV_SCALED_VIDEO_CAP;
  211.    return MB_SUCCESS;
  212. }
  213. /**
  214.  * This function retrieves the current device state 
  215.  * from the system.
  216.  * device_state   < device state enum to update >
  217.  
  218.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  219.  */
  220. mb_error_t mb_tv_device_state_get(mb_tv_device_state_t *device_state)
  221. {
  222. if(device_state==NULL)
  223. {
  224. mb_printf("n[Machblue]:TV get device state NULL.");
  225. return MB_FAILURE;
  226. }
  227. *device_state=MB_TV_POWER_ON_STATE;
  228. return MB_SUCCESS;
  229. }
  230. /**
  231.  * @brief Returns a string representing the value of a device component parameter.
  232.  *
  233.  * Returns a string representing the value of a device component parameter.
  234.  * @return @li MB_SUCCESS on success. @li MB_FAILURE on failure.
  235.  */
  236. mb_error_t mb_tv_device_param_get
  237. (
  238.     const mb_char_t       *component_name,/**< - The string representing the name of
  239.                                                  the device component to query.
  240.                                                  The string is at most #MB_TV_DEVICE_PARAM_COMP_LENGTH long, including the NULL terminating character. */
  241.     const mb_char_t        *param_name,    /**< - The string representing the name of the component parameter to query.
  242.                                                  The string is at most #MB_TV_DEVICE_PARAM_NAME_LENGTH long, including the NULL terminating character. */
  243.     mb_char_t              *param_value,    /**< - The user-provided address of a string buffer to update. The buffer must be at least #MB_TV_DEVICE_PARAM_VALUE_LENGTH long. The string written into it will be NULL terminated.*/
  244.     int                    *platform_error_code /**< - The platform-specific error code. */
  245.  )
  246.  {
  247. return MB_SUCCESS;
  248. }
  249. /**
  250.  * @brief Sets a device component parameter value.
  251.  *
  252.  * Sets a device component parameter value.
  253.  * @return @li MB_SUCCESS on success. @li MB_FAILURE on failure.
  254.  */
  255. mb_error_t mb_tv_device_param_set
  256. (
  257.     const mb_char_t       *component_name,/**< - The string representing the name of
  258.                                                  the device component to configure.
  259.                                                  The string is at most #MB_TV_DEVICE_PARAM_COMP_LENGTH long. */
  260.     const mb_char_t       *param_name,    /**< - The string representing the name of the component parameter to set.
  261.                                                  The string is at most #MB_TV_DEVICE_PARAM_NAME_LENGTH long. */
  262.     const mb_char_t       *param_value,    /**< - The string representing the value of the component parameter to set.
  263.                                                  The string is at most #MB_TV_DEVICE_PARAM_VALUE_LENGTH long. */
  264.     int                    *platform_error_code /**< - The platform-specific error code. */
  265.  )
  266.  {
  267. return MB_SUCCESS;
  268. }
  269. #if MB_PLAYER_1_2
  270. /**
  271.  * @brief This function specifies a list of conflicting objects to delete in order to resolve the specified conflict.
  272.  *
  273.  * This function specifies a list of conflicting objects to delete in order
  274.  * to resolve the specified conflict.
  275.  * The deleted objects are not released to the porting layer.
  276.  * After a call to this function, the conflict descriptor is no longer valid,
  277.  * even if the list is empty or NULL (and @e item_count is zero).
  278.  * @return @li MB_SUCCESS on success. @li MB_FAILURE on failure.
  279.  */
  280. mb_error_t mb_tv_conflict_resolve
  281. (
  282.     mb_tv_conflict_t       conflict,           /**< - The conflict to resolve. */
  283.     mb_tv_conflict_item_t *conflict_item_list, /**< - The list of conflicting items to delete
  284.                                                     to solve the conflict. */
  285.     int item_count                             /**< - The number of conflict items in the list. */
  286. )
  287. {
  288. return MB_SUCCESS;
  289. }
  290. /**
  291.  * @brief This function asynchronously retrieves conflict items.
  292.  *
  293.  * This function asynchronously retrieves conflict items from the system.
  294.  * The system should send an
  295.  * #MB_TV_NR_CONFLICT_ITEMS_GET notification once the request has been completed.
  296.  * @see MB_TV_NR_CONFLICT_ITEMS_GET
  297.  * @return @li MB_SUCCESS on success. @li MB_FAILURE on failure.
  298.  */
  299. mb_error_t mb_tv_conflict_items_get
  300. (
  301.     mb_tv_conflict_t       conflict,           /**< - The conflict to query. */
  302.     int                    *item_count,        /**< - The pointer to number of conflict items to retrieve. This
  303.                                                     pointer should be updated with number of items
  304.                                                     actually retrieved. */
  305.     mb_tv_conflict_item_t *conflict_item_list  /**< - The list of conflicting items. */
  306. )
  307. {
  308. return MB_SUCCESS;
  309. }
  310. /**
  311.  * @brief This function returns the number of items that are contributing to the conflict.
  312.  *
  313.  * This function returns the number of items that are contributing to the conflict.
  314.  * @return @li MB_SUCCESS on success. @li MB_FAILURE on failure.
  315.  */
  316. mb_error_t mb_tv_conflict_items_count_get
  317. (
  318.    mb_tv_conflict_t       conflict,             /**< - The conflict to query. */
  319.    int                    *conflict_items_count /**< - The user-provided integer to store the conflict items count. */
  320. )
  321. {
  322. return MB_SUCCESS;
  323. }
  324. /**
  325.  * @brief This function gets the system's purchase credit information.
  326.  *
  327.  * This function gets the system's purchase credit information.
  328.  * @return @li MB_SUCCESS on success. @li MB_FAILURE on failure.
  329.  */
  330. mb_error_t mb_tv_purchase_credit_get
  331. (
  332.     int *credit /**< - The pointer to integer to store remaining purchase credit. */
  333. )
  334. {
  335. return MB_SUCCESS;
  336. }
  337. /**
  338.  * @brief This function retrieves the number of purchased items available in the system purchase list.
  339.  *
  340.  * This function retrieves the number of purchased items available
  341.  * in the system purchase list.
  342.  * @return @li MB_SUCCESS on success. @li MB_FAILURE on failure.
  343.  */
  344. mb_error_t mb_tv_purchased_item_count_get
  345. (
  346.     int *item_count /**< - The pointer to the integer to store purchase item count. */
  347. )
  348. {
  349. return MB_SUCCESS;
  350. }
  351. /**
  352.  * @brief This function asynchronously retrieves purchase items from the system.
  353.  *
  354.  * This function asynchronously retrieves purchase items from the system.
  355.  * The system should send an
  356.  * #MB_TV_NR_PURCHASED_ITEMS_GET notification once the request has been completed.
  357.  * @see #MB_TV_NR_PURCHASED_ITEMS_GET
  358.  * @return @li MB_SUCCESS on success. @li MB_FAILURE on failure.
  359.  */
  360. mb_error_t mb_tv_purchased_items_get
  361. (
  362.     int                     first_item_pos, /**< - The position of the first purchase item to get (0 based). */
  363.     int                    *item_count,     /**< - The pointer to the number of purchase items to retrieve. This
  364.                                                  pointer should be updated with the number of items
  365.                                                  actually retrieved. */
  366.     mb_tv_purchased_item_t *item_list       /**< - The pointer to the list of items to update. */
  367. )
  368. {
  369. return MB_SUCCESS;
  370. }
  371. /**
  372.  * @brief This function gets a service context volume level.
  373.  *
  374.  * This function gets a service context volume level.
  375.  * @return @li MB_SUCCESS on success. @li MB_FAILURE on failure.
  376.  */
  377. mb_error_t mb_tv_svc_volume_get
  378. (
  379.     mb_tv_service_context_t  svc,       /**< - The service context to query. */
  380.     int                     *volume     /**< - The pointer to the volume level to update. The volume level
  381.                                              values should be between 0 and 100. */
  382. )
  383. {
  384. return MB_SUCCESS;
  385. }
  386. /**
  387.  * @brief This function sets a service context volume level.
  388.  * 
  389.  * This function sets a service context volume level.
  390.  * @return @li MB_SUCCESS on success. @li MB_FAILURE on failure.
  391.  */
  392. mb_error_t mb_tv_svc_volume_set
  393. (
  394.     mb_tv_service_context_t svc,   /**< - The service context to modify. */
  395.     int                     volume /**< - The volume level to set. The volume level
  396.                                         values should be between 0 and 100. */
  397. )
  398. {
  399. return MB_SUCCESS;
  400. }
  401. #endif