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

DVD

开发平台:

C/C++

  1. /*-----------------------------------------------------------------------------
  2.  | @(#) machblue_tv_porting.h
  3.  |
  4.  |  JSWF: The Portable SWF Engine For Embedded Devices,
  5.  |  Copyright (c) 2002-2006, BlueStreak Technology Inc., All Rights Reserved.
  6.  |
  7.  +----------------------------------------------------------------------------*/
  8. #ifndef _MACHBLUE_TV_PORTING_H_
  9. #define _MACHBLUE_TV_PORTING_H_
  10. /*----------------------------------------------------------
  11.  | Include definition below this line
  12.  +----------------------------------------------------------*/
  13. #include "machblue_tv_defines.h"
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif /* __cplusplus */
  17. /*----------------------------------------------------------
  18.  | Macro definition below this line
  19.  +----------------------------------------------------------*/
  20. /*----------------------------------------------------------
  21.  | Type definition below this line
  22.  +----------------------------------------------------------*/
  23. /*----------------------------------------------------------
  24.  | Functions definition below this line
  25.  +----------------------------------------------------------*/
  26. /*
  27.  * ======================= TV Porting Layer Init API====================================
  28.  */
  29. /** @defgroup init_group TV Porting Layer Init API
  30.  *  @{
  31.  * This API is used by Machblue to initialize or delete the 
  32.  * tv porting layer.
  33.  */
  34. /**
  35.  * Invoked by Machblue to initialize the tv porting layer. This
  36.  * will be called before any calls to the tv porting layer. After 
  37.  * this call Machblue expects that any asynchronous query will be perfomed
  38.  * by the system with the shortest response time possible. On most systems
  39.  * responding to these queries in a short time implies a heavy caching 
  40.  * of network signalization tables. This caching mechnism is supposed to be
  41.  * enabled by the middleware at the latest before the completion of 
  42.  * mb_tv_porting_layer_init.
  43.  * @return MB_SUCCESS on success, MB_FAILURE on failure.
  44.  */
  45. extern mb_error_t mb_tv_porting_layer_init
  46.     mb_tv_notify_f *tv_notify_f,   /**< machblue tv notification function that will be called
  47.                                         for all asynchronous notifications */
  48.     void           *nf_client_data /**< notification function client data to pass as-is to the 
  49.                                         notification function */
  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. extern mb_error_t mb_tv_porting_layer_delete( void );
  57. /** @} */
  58. /*
  59.  * ======================= TV Service List API ===========================================
  60.  */
  61. /** @defgroup svl_group TV Service List API
  62.  *  @{
  63.  * This API is used by Machblue to retrieve the system's 
  64.  * service lists.
  65.  */
  66. /**
  67.  * This function returns the number of service lists available on the platform.
  68.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  69.  */
  70. extern mb_error_t mb_tv_service_list_count_get
  71.     int *svl_count /**< user provided int to store service list count */ 
  72. );
  73. /**
  74.  * This function retrieves a service list object from the system.
  75.  * This function is ASYNCHRONOUS. The system should send an 
  76.  * MB_TV_NR_SERVICE_LISTS_GET notification once the request is completed.
  77.  * The "All Channel" service list should always be at index 0 (MB_TV_SVL_ALL_ID).
  78.  * @see MB_TV_NR_SERVICE_LISTS_GET 
  79.  * @see MB_TV_SVL_ALL_ID
  80.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  81.  */
  82. extern mb_error_t mb_tv_service_lists_get
  83.     int                     first_svl_pos,   /**< position of the first service list to get (0 based) */
  84.     int                    *svl_count,       /**< pointer to number of service lists to retrieve. This
  85.                                                   pointer should be updated with number of service lists
  86.                                                   actually returned. */ 
  87.     mb_tv_service_list_t   *svl_list         /**< user provided list (array) of service list pointers to update */
  88. );
  89. /**
  90.  * This function releases a service list object. 
  91.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  92.  */
  93. extern mb_error_t mb_tv_svl_release
  94.     mb_tv_service_list_t   svl      /**< service list object to release */
  95. );
  96. /**
  97.  * This function retrieves a service list info from the system.
  98.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  99.  */
  100. extern mb_error_t mb_tv_svl_info_get
  101.     mb_tv_service_list_t   svl,      /**< service list to query */
  102.     mb_tv_svl_info_t      *svl_info  /**< service info structure to update */
  103. );
  104. /**
  105.  * This function returns the number of services available in a service list.
  106.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  107.  */
  108. extern mb_error_t mb_tv_svl_service_count_get
  109.     mb_tv_service_list_t   svl,          /**< service list to query */
  110.     int                   *service_count /**< pointer to int to store service count */ 
  111. );
  112. /**
  113.  * This function retrieves service objects from a service list.
  114.  * This function is ASYNCHRONOUS. The system should send an 
  115.  * MB_TV_NR_SERVICES_GET notification once the request is completed.
  116.  * @see MB_TV_NR_SERVICES_GET
  117.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  118.  */
  119. extern mb_error_t mb_tv_svl_services_get
  120.     mb_tv_service_list_t    svl,                /**< service list to retrieve service from */
  121.     int                     first_service_pos,  /**< position of the first service to retrieve (0 based) */
  122.     int                    *service_count,      /**< pointer to number of service to retrieve. This
  123.                                                      pointer should be updated with number of services
  124.                                                      actually retrieved */                                        
  125.     mb_tv_service_t        *service_list        /**< user provided list (array) of service pointers to update */
  126. );
  127. /** @} */
  128. /*
  129.  * ======================= TV Service API ===========================================
  130.  */
  131. /** @defgroup service_group TV Service API
  132.  *  @{ 
  133.  * This API is used by Machblue to retrieve a service object 
  134.  * attributes including its present event, following event 
  135.  * and event schedule list objects.
  136.  */
  137. /**
  138.  * This function releases a service object. 
  139.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  140.  */
  141. extern mb_error_t mb_tv_service_release
  142.     mb_tv_service_t   service      /**< service object to release */
  143. );
  144. /**
  145.  * This function retrieves a service object from a service url. 
  146.  * This function is ASYNCHRONOUS. The system should send an 
  147.  * MB_TV_NR_SERVICE_GET_FROM_URL notification once the request 
  148.  * is completed.
  149.  * @see MB_TV_NR_SERVICE_GET_FROM_URL
  150.  * @return MB_SUCCESS on success MB_FAILURE otherwise.
  151.  */
  152. extern mb_error_t mb_tv_service_get_from_url
  153.     const mb_char_t        *url,  /**< url of the service object to retrieve. The following
  154.                                    service url syntax should be used:
  155.                                    @li To get a service object from a DVB triplet: 
  156.                                    @c "dvb://network_id.transport_id.service_id"
  157.                                    @li To get a service object from an SDP url:
  158.                                    @c "sdp://hostname:port/path"
  159.                                    @li To get a service object from an RTSP url:
  160.                                    @c "rtsp://hostname:port/path" */
  161.     mb_tv_service_t *service  /**< pointer to service object to update */
  162. );
  163. /**
  164.  * This function retrieves a service info from the system.
  165.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  166.  */
  167. extern mb_error_t mb_tv_service_info_get
  168.     mb_tv_service_t        service,      /**< service to query */
  169.     mb_tv_service_info_t  *service_info  /**< service info structure to update */
  170. );
  171. /**
  172.  * This function retrieves a given service authorization flags.
  173.  * Note this does not indicate if the program event currently 
  174.  * running on the service is authorized. It only indicates the
  175.  * service' status.  The list of authorization flags is enumerated
  176.  * in mb_tv_authorization_flag_t.
  177.  * @see mb_tv_authorization_flag_t.
  178.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  179.  */
  180. extern mb_error_t mb_tv_service_auth_flags_get
  181.     mb_tv_service_t  service,    /**< service to query */
  182.     unsigned int    *auth_flags  /**< pointer to service authorization flags to update.
  183.                                       @see mb_tv_authorization_flag_t. */
  184. );
  185. /**
  186.  * This function retrieves the current event of a service. 
  187.  * This function is ASYNCHRONOUS. The system should send an 
  188.  * MB_TV_NR_SERVICE_CURRENT_EVENT_GET notification once the request 
  189.  * is completed.
  190.  * @see MB_TV_NR_SERVICE_CURRENT_EVENT_GET
  191.  * @return MB_SUCCESS on success MB_FAILURE otherwise.
  192.  */
  193. extern mb_error_t mb_tv_service_current_event_get
  194.     mb_tv_service_t  service, /**< service to query */
  195.     mb_tv_event_t   *event    /**< pointer to event to update */
  196. );
  197. /**
  198.  * This function retrieves the following event of a service. 
  199.  * This function is ASYNCHRONOUS. The system should send an 
  200.  * MB_TV_NR_SERVICE_FOLLOWING_EVENT_GET notification once the 
  201.  * request is completed.
  202.  * @see MB_TV_NR_SERVICE_FOLLOWING_EVENT_GET
  203.  * @return MB_SUCCESS on success MB_FAILURE otherwise.
  204.  */
  205. extern mb_error_t mb_tv_service_following_event_get
  206.     mb_tv_service_t  service,  /**< service to query */
  207.     mb_tv_event_t   *event     /**< pointer to event to update */
  208. );
  209. /**
  210.  * This function returns an event schedule object representing a
  211.  * section of the service complete event schedule. 
  212.  * This function is ASYNCHRONOUS. The system should send an 
  213.  * MB_TV_NR_SERVICE_EVENT_SCHEDULE_GET notification once the request 
  214.  * is completed.
  215.  * @see MB_TV_NR_SERVICE_EVENT_SCHEDULE_GET
  216.  * @return MB_SUCCESS on success MB_FAILURE otherwise.
  217.  */
  218. extern mb_error_t mb_tv_service_event_schedule_get
  219.     mb_tv_service_t          service,        /**< service to query */
  220.     mb_time_t                start_time,     /**< requested start time of the event schedule query 
  221.                                                   window in seconds since 01/01/1970 UTC. 
  222.                                                   If set to 0 or if the requested start time is smaller 
  223.                                                   than the start time of the first available event of the 
  224.                                                   event schedule cache then the first available event start 
  225.                                                   time should be used for the query. */
  226.     mb_time_t                end_time,       /**< requested end time of the event schedule query 
  227.                                                   window in seconds since 01/01/1970 UTC. 
  228.                                                   If set to 0 or if the requested end time is greater 
  229.                                                   than the end time of the last available event of the 
  230.                                                   event schedule cache then the last available event start 
  231.                                                   time should be used for the query.*/
  232.     mb_tv_event_schedule_t  *event_schedule  /**< pointer to event schedule object to update */
  233. );
  234. /**
  235.  * This function retrieves the service list object containing 
  236.  * the provided object if any. If the service is a recorded or 
  237.  * vod service that has no associated service list 
  238.  * MB_TV_INVALID_SERVICE_LIST should be returned. The function also 
  239.  * retrieve the index of the service object in the service list.
  240.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  241.  */
  242. extern mb_error_t mb_tv_service_svl_get
  243.     mb_tv_service_t         service,      /**< service to query */
  244.     mb_tv_service_list_t   *svl,          /**< pointer to service list object to update */
  245.     int                    *index         /**< pointer to the service index to update */
  246. );
  247. /** @} */
  248. /*
  249.  * ======================= TV Event Information API ===========================================
  250.  */
  251. /** @defgroup event_info_group TV Event Information API
  252.  *  @{
  253.  * This API is used by Machblue to retrieve event information 
  254.  * from an event objects.
  255.  */
  256. /**
  257.  * This function releases an event schedule object. 
  258.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  259.  */
  260. extern mb_error_t mb_tv_evs_release
  261.     mb_tv_event_schedule_t  evs      /**< event schedule object to release */
  262. );
  263. /**
  264.  * This function retrieves the number of events of an event schedule object. 
  265.  * @return MB_SUCCESS on success MB_FAILURE otherwise.
  266.  */
  267. extern mb_error_t mb_tv_evs_event_count_get
  268.     mb_tv_event_schedule_t  evs,        /**< event schedule to query */
  269.     int                    *event_count /**< pointer to int to store event count */ 
  270. );
  271. /**
  272.  * This function retrieves the index of the current event of an 
  273.  * event schedule object if available. Otherwise returns -1 as
  274.  * index if the query is not applicable (recording event 
  275.  * schedule for instance). 
  276.  * @return MB_SUCCESS on success MB_FAILURE otherwise.
  277.  */
  278. extern mb_error_t mb_tv_evs_current_event_index_get
  279.     mb_tv_event_schedule_t  evs,         /**< event schedule to query */
  280.     int                    *index        /**< pointer to the current event index to update */
  281. );
  282. /**
  283.  * This function retrieves events from an event schedule object. 
  284.  * This function is ASYNCHRONOUS. The system should send an 
  285.  * MB_TV_NR_EVS_EVENTS_GET notification once the request is completed.
  286.  * @see MB_TV_NR_EVS_EVENTS_GET
  287.  * @return MB_SUCCESS on success MB_FAILURE otherwise.
  288.  */
  289. extern mb_error_t mb_tv_evs_events_get
  290.     mb_tv_event_schedule_t  evs,             /**< event schedule to query */
  291.     int                     first_event_pos, /**< position of the first event to get (0 based) */
  292.     int                    *event_count,     /**< pointer to number of event to retrieve. This
  293.                                                   pointer should be updated with number of events
  294.                                                   actually retrieved */                                        
  295.     mb_tv_event_t          *event_list       /**< pointer to list (array) of events to update */ 
  296. );
  297. /**
  298.  * This function releases an event object. 
  299.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  300.  */
  301. extern mb_error_t mb_tv_event_release
  302.     mb_tv_event_t  event      /**< event to release */
  303. );
  304. /**
  305.  * This function retrieves an event's attributes.
  306.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  307.  */
  308. extern mb_error_t mb_tv_event_attributes_get
  309.     mb_tv_event_t              event,        /**< event object to query */
  310.     mb_tv_event_attributes_t  *event_attrib  /**< event attributes structure to update */
  311. );
  312. /**
  313.  * This function retrieves a given event authorization flags.
  314.  * The list of authorization flags is enumerated in 
  315.  * mb_tv_authorization_flag_t.
  316.  * @see mb_tv_authorization_flag_t
  317.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  318.  */
  319. extern mb_error_t mb_tv_event_auth_flags_get
  320.     mb_tv_event_t   event,       /**< event object to query */ 
  321.     unsigned int    *auth_flags  /**< pointer to event authorization flags to update.
  322.                                       @see mb_tv_authorization_flag_t. */
  323. );
  324. /**
  325.  * This function retrieves an event' service.
  326.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  327.  */
  328. extern mb_error_t mb_tv_event_service_get
  329.     mb_tv_event_t     event,   /**< event object to query */
  330.     mb_tv_service_t  *service  /**< pointer to event service to update */
  331. );
  332. /** @} */
  333. /*
  334.  * ======================= TV Service Context API ===========================================
  335.  */
  336. /** @defgroup service_context_group TV Service Context API
  337.  *  @{
  338.  * This API is used by Machblue to access and control 
  339.  * the system' service contexts.
  340.  */
  341. /**
  342.  * This function returns the number of service contexts
  343.  * available on the platform.
  344.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  345.  */
  346. extern mb_error_t mb_tv_service_context_count_get
  347.     int *svc_count /**< user provided int to store service context count */ 
  348. );
  349. /**
  350.  * This function retrieves service context objects from the system.
  351.  * This function is ASYNCHRONOUS. The system should send an 
  352.  * MB_TV_NR_SERVICE_CONTEXTS_GET notification once the request is 
  353.  * completed.
  354.  * @see MB_TV_NR_SERVICE_CONTEXTS_GET
  355.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  356.  */
  357. extern mb_error_t mb_tv_service_contexts_get
  358.     int                      first_sc_pos,   /**< position of the first service context to retrieve (0 based) */
  359.     int                     *sc_count,       /**< pointer to number of service contexts to retrieve. This
  360.                                                   pointer should be updated with number of service context
  361.                                                   actually retrieved */                                                                  
  362.     mb_tv_service_context_t *svc_list        /**< pointer to list (array) of service contexts update */
  363. );
  364. /**
  365.  * This function retrieves the service context object associated
  366.  * to a client if any.
  367.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  368.  */
  369. extern mb_error_t mb_tv_svc_get_from_client
  370.     mb_client_t               client,       /**< client handle to query */
  371.     mb_tv_service_context_t *client_svc     /**< pointer to service context to update with client's service 
  372.                                                  context if any, otherwise MB_TV_INVALID_SERVICE_CONTEXT should 
  373.                                                  be returned */
  374. );
  375. /**
  376.  * This function releases a service context object. 
  377.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  378.  */
  379. extern mb_error_t mb_tv_svc_release
  380.     mb_tv_service_context_t  svc      /**< service context object to release */
  381. );
  382. /**
  383.  * This function retrieves a service info from the system.
  384.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  385.  */
  386. extern mb_error_t mb_tv_svc_info_get
  387.     mb_tv_service_context_t        svc,      /**< service to query */
  388.     mb_tv_service_context_info_t  *svc_info  /**< service context info structure to update */
  389. );
  390. /**
  391.  * This function gets a service context viewport attributes
  392.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  393.  */ 
  394. extern mb_error_t mb_tv_svc_viewport_get
  395. (
  396.     mb_tv_service_context_t  svc,       /**< service context to query */
  397.     mb_tv_viewport_t        *viewport   /**< pointer to viewport coordinates to update */ 
  398. );
  399. /**
  400.  * This function sets a service context viewport attributes.
  401.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  402.  */ 
  403. extern mb_error_t mb_tv_svc_viewport_set
  404. (
  405.     mb_tv_service_context_t  svc,       /**< service context to modify */
  406.     mb_tv_viewport_t        *viewport   /**< pointer to viewport coordinates to set */ 
  407. );
  408. /**
  409.  * This function retrieves a service object representing 
  410.  * the service that is currently active in a service context. 
  411.  * If the context is idle, null is returned.
  412.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  413.  */ 
  414. extern mb_error_t mb_tv_svc_service_get
  415. (
  416.     mb_tv_service_context_t svc,       /**< service context to query */
  417.     mb_tv_service_t        *service   /**< pointer to service context service to update */
  418. );
  419. /**
  420.  * This function selects a service (tune in the case of a 
  421.  * braodcast service). The currently running service if any 
  422.  * is replaced with the selected service.
  423.  * This function is ASYNCHRONOUS. The system should send an 
  424.  * MB_TV_NR_SERVICE_SELECTED or an MB_TV_NR_SERVICE_ERROR 
  425.  * notification once the request is completed.
  426.  * @see MB_TV_NR_SERVICE_SELECTED
  427.  * @see MB_TV_NR_SERVICE_ERROR
  428.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  429.  */ 
  430. extern mb_error_t mb_tv_svc_service_select
  431. (
  432.     mb_tv_service_context_t  svc,           /**< service context to modify */
  433.     mb_tv_service_t          service,       /**< service to select */
  434.     int                      enable_streams /**< 1 if default streams should be enabled after service 
  435.                                                  selection, 0 otherwise. */ 
  436. );
  437. /**
  438.  * This function retrieves the stream controller associated 
  439.  * to a service context.
  440.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  441.  */ 
  442. extern mb_error_t mb_tv_svc_stream_controller_get
  443. (
  444.     mb_tv_service_context_t    svc,              /**< service context to query */
  445.     mb_tv_stream_controller_t *stream_controller /**< pointer to service context stream controller 
  446.                                                       to update */
  447. );
  448. /** @} */
  449. /*
  450.  * ======================= TV Stream Controller API ===========================================
  451.  */
  452. /** @defgroup stream_controller_group TV Stream Controller API
  453.  *  @{
  454.  * This API is used by Machblue DVB Player to control the 
  455.  * streams running in a service context.
  456.  */
  457. /**
  458.  * This function releases a stream controller object. 
  459.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  460.  */
  461. extern mb_error_t mb_tv_stc_release
  462.     mb_tv_stream_controller_t  stream_controller     /**< stream controller object to release */
  463. );
  464. /**
  465.  * This function retrieves the number of streams of a stream 
  466.  * controller object. 
  467.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  468.  */
  469. extern mb_error_t mb_tv_stc_stream_count_get
  470.     mb_tv_stream_controller_t  stream_controller,  /**< stream_controller managing the streams */
  471.     int                       *stream_count        /**< pointer to int to store stream count */ 
  472. );
  473. /**
  474.  * This function retrieves streams' descriptions from a stream 
  475.  * controller object.
  476.  * This function is ASYNCHRONOUS. The system should send an 
  477.  * MB_TV_NR_STREAMS_INFO_GET notification once the request is completed.
  478.  * @see MB_TV_NR_STREAMS_INFO_GET
  479.  * @return MB_SUCCESS on success MB_FAILURE 
  480.  * otherwise.
  481.  */
  482. extern mb_error_t mb_tv_stc_streams_info_get
  483.     mb_tv_stream_controller_t stream_controller,  /**< stream controller to query */
  484.     int                       start_stream_pos,   /**< position of the first stream info to get (0 based) */
  485.     int                      *stream_count,       /**< pointer to number of stream info to retrieve. This
  486.                                                        pointer should be updated with number of stream info
  487.                                                        actually retrieved */                                        
  488.     mb_tv_stream_info_t      *stream_info_list    /**< pointer to stream info list to update with streams */ 
  489. );
  490. /**
  491.  * This function retrieves the state of a given stream type.
  492.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  493.  */
  494. extern mb_error_t mb_tv_stc_stream_state_get
  495.     mb_tv_stream_controller_t  stream_controller, /**< stream controller to query */
  496.     mb_tv_stream_type_t        stream_type,       /**< stream type */
  497.     mb_tv_stream_state_t      *state              /**< pointer to state enum to update */
  498. );
  499. /**
  500.  * This function enables a given stream type.
  501.  * This function is ASYNCHRONOUS. The system should send an 
  502.  * MB_TV_NR_STREAM_ENABLED or an MB_TV_NR_STREAM_ERROR 
  503.  * notification once the request is completed.
  504.  * @see MB_TV_NR_STREAM_ENABLED
  505.  * @see MB_TV_NR_STREAM_ERROR
  506.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  507.  */
  508. extern mb_error_t mb_tv_stc_stream_enable
  509.     mb_tv_stream_controller_t stream_controller, /**< stream controller to use */
  510.     mb_tv_stream_type_t       stream_type,       /**< type of stream to enable */
  511.     mb_char_t                *stream_tag         /**< tag of stream to enable */        
  512. );
  513. /**
  514.  * This function disables a given stream type.
  515.  * This function is ASYNCHRONOUS. The system should send an 
  516.  * MB_TV_NR_STREAM_DISABLED or an MB_TV_NR_STREAM_ERROR notification 
  517.  * once the request is completed.
  518.  * @see MB_TV_NR_STREAM_DISABLED
  519.  * @see MB_TV_NR_STREAM_ERROR
  520.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  521.  */
  522. extern mb_error_t mb_tv_stc_stream_disable
  523.     mb_tv_stream_controller_t stream_controller,  /**< stream controller to use */
  524.     mb_tv_stream_type_t       stream_type         /**< type of stream to disable */
  525. );
  526. /**
  527.  * This function sends a trick play command to a stream controller.
  528.  * This function is ASYNCHRONOUS. The system should send an 
  529.  * MB_TV_NR_TRICK_PLAY notification once the request is completed.
  530.  * @see MB_TV_NR_TRICK_PLAY
  531.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  532.  */
  533. extern mb_error_t mb_tv_stc_trick_play
  534.     mb_tv_stream_controller_t  stream_controller, /**< stream controller to use */
  535.     mb_tv_trick_play_cmd_t     command,           /**< trick play command to execute */
  536.     long                       param              /**< trick play command parameter */            
  537. );
  538. /**
  539.  * This function retrieves the current trick play state of a stream 
  540.  * controller.
  541.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  542.  */
  543. extern mb_error_t mb_tv_stc_playback_speed_get
  544. (
  545.     mb_tv_stream_controller_t  stream_controller, /**< stream controller to use */ 
  546.     int                       *pb_speed           /**< pointer to the playback speed integer to update
  547.                                                        hundredths of normal speed */            
  548. );
  549. /**
  550.  * This function returns the current playback position in the 
  551.  * currently running video stream.
  552.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  553.  */
  554. extern mb_error_t mb_tv_stc_playback_position_get
  555. (
  556.     mb_tv_stream_controller_t  stream_controller,    /**< stream controller to query */
  557.     mb_system_time_t          *pb_buffer_start,      /**< pointer to start of the playback buffer to update in nano-seconds.
  558.                                                           @li For a VOD or Recording playback the playback buffer start time
  559.                                                           should be set to 0.
  560.                                                           @li For a live stream on a PVR system, this correspond to the start
  561.                                                           time of the review buffer in nano-seconds since 01/01/1970 UTC.
  562.                                                           @li For a live stream on a non PVR system, this corresponds to the 
  563.                                                           current time in nano-seconds since 01/01/1970 UTC. */
  564.     mb_system_time_t          *pb_buffer_end,        /**< pointer to end of the playback buffer to update in nano-seconds.
  565.                                                           @li For a VOD or Recording playback the playback buffer end time
  566.                                                           should be set to the VOD playback or recording duration in 
  567.                                                           nano-seconds.
  568.                                                           @li For a live stream on a PVR system, this correspond to the end time
  569.                                                           time of the review buffer ("live" position) in nano-seconds since 
  570.                                                           01/01/1970 UTC.
  571.                                                           @li For a live stream on a non PVR system, this corresponds to the 
  572.                                                           current time in nano-seconds since 01/01/1970. */
  573.     mb_system_time_t          *pb_current_pos        /**< pointer to the current playback position in the playback buffer to 
  574.                                                           update in nano-seconds.
  575.                                                           @li For a VOD or Recording playback this corresponds to the distance 
  576.                                                           in nano-seconds between the playback head and the playback buffer start.
  577.                                                           @li For a live stream on a PVR system this corresponds to the recorded 
  578.                                                           timestamp in nano-seconds since 01/01/1970 UTC at the current location
  579.                                                           of the playback head.
  580.                                                           @li For a live stream on a non PVR system, the current time in 
  581.                                                           nano-seconds since 01/01/1970 should be returned. */
  582. );
  583. /**
  584.  * This function sets a video playback position notification request. 
  585.  * The system should send an MB_TV_NR_PLAYBACK_POSITION_NOTIFY 
  586.  * notification to the player as soon as the requested video
  587.  * playback position value is reached.
  588.  * @see MB_TV_NR_PLAYBACK_POSITION_NOTIFY
  589.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  590.  */
  591. extern mb_error_t mb_tv_stc_playback_position_notify
  592. (
  593.     mb_tv_stream_controller_t   stream_controller, /**< stream controller to use */
  594.     mb_system_time_t           *pb_pos_value       /**< video playback position value to watch for in nano-seconds.
  595.                                                         @li For a VOD or Recording playback this corresponds to the distance 
  596.                                                         in nano-seconds between the trigger and the playback buffer start.
  597.                                                         @li For a live stream on a PVR system this corresponds to the recorded 
  598.                                                         timestamp in nano-seconds since 01/01/1970 UTC at the location of the 
  599.                                                         trigger.
  600.                                                         @li For a live stream on a non PVR system, this corresponds to the time 
  601.                                                         in nano-seconds since 01/01/1970 of the trigger. */
  602. );
  603. /** @}*/
  604. /*
  605.  * ======================= TV Recorder API ===========================================
  606.  */
  607. /** @defgroup recorder_group TV Recorder API
  608.  *  @{
  609.  * This API is used by Machblue DVB Player to access the 
  610.  * system's Recorder engine.
  611.  */
  612. /**
  613.  * This function gets the system's recording space information.
  614.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  615.  */
  616. extern mb_error_t mb_tv_recording_space_get
  617. (
  618.     unsigned long *used,       /**< pointer to long to store total recording space used in KB */
  619.     unsigned long *remaining   /**< pointer to long to store total recording space remaining in KB */
  620. );
  621. /**
  622.  * This function retrieves the number of recordings available 
  623.  * in the system. 
  624.  * @return MB_SUCCESS on success MB_FAILURE otherwise.
  625.  */
  626. extern mb_error_t mb_tv_recording_count_get
  627.     int *recording_count /**< pointer to int to store event count */ 
  628. );
  629. /**
  630.  * This function retrieves recordings from the system.
  631.  * This function is ASYNCHRONOUS. The system should send an 
  632.  * MB_TV_NR_RECORDINGS_GET notification once the request is completed.
  633.  * @see MB_TV_NR_RECORDINGS_GET
  634.  * @return MB_SUCCESS on success MB_FAILURE otherwise.
  635.  */
  636. extern mb_error_t mb_tv_recordings_get
  637.     int                first_recording_pos, /**< position of the first recording to get (0 based) */
  638.     int               *recording_count,     /**< pointer to number of recordings to retrieve. This
  639.                                                  pointer should be updated with number of recordings
  640.                                                  actually retrieved */
  641.     mb_tv_recording_t *recording_list       /**< pointer to list of recordings to update */ 
  642. );
  643. /**
  644.  * This function releases a recording object. 
  645.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  646.  */
  647. extern mb_error_t mb_tv_recording_release
  648.     mb_tv_recording_t  recording     /**< recording object to release */
  649. );
  650. /**
  651.  * This function records the specified event. 
  652.  * This function is ASYNCHRONOUS. The system should send an 
  653.  * MB_TV_NR_EVENT_RECORD notification once the request is completed.
  654.  * @see MB_TV_NR_EVENT_RECORD
  655.  * @return MB_SUCCESS on success MB_FAILURE otherwise.
  656.  */
  657. extern mb_error_t mb_tv_event_record
  658.     mb_tv_event_t        event,          /**< event to record */ 
  659.     unsigned long        extra_time,     /**< additional time in seconds to record after the event 
  660.                                               as a safety gap for overflowing events */
  661.     mb_tv_periodicity_t  periodicity,    /**< recording periodicity. i.e. if the event belongs to a 
  662.                                               series how often should we record it */
  663.     mb_tv_recording_t   *recording       /**< pointer to newly created recording to update */
  664. );
  665. /**
  666.  * This function records the specified service. 
  667.  * This function is ASYNCHRONOUS. The system should send an 
  668.  * MB_TV_NR_SERVICE_RECORD notification once the request is completed.
  669.  * @see MB_TV_NR_SERVICE_RECORD
  670.  * @return MB_SUCCESS on success MB_FAILURE otherwise.
  671.  */
  672. extern mb_error_t mb_tv_service_record
  673.     mb_tv_service_t      service,        /**< service to record */ 
  674.     mb_time_t            start_time,     /**< recording start time in seconds since 01/01/70 UTC.
  675.                                               If set to 0, then the recording should start imediately */
  676.     mb_time_t            stop_time,      /**< recording stop time in seconds since 01/01/70 UTC.
  677.                                               If set to 0, then the service will be recorded until
  678.                                               stop is invoked on the recording. */
  679.     mb_tv_periodicity_t  periodicity,    /**< recording periodicity. i.e. should we repeat this
  680.                                               manual recording daily, weekly, etc.  */
  681.     mb_tv_recording_t   *recording       /**< pointer to newly created recording to update */
  682. );
  683. /**
  684.  * This function specifies a list of recordings to delete in order 
  685.  * to resolve the specified conflict. 
  686.  * @return MB_SUCCESS on success MB_FAILURE otherwise.
  687.  */
  688. extern mb_error_t mb_tv_conflict_resolve
  689.     mb_tv_conflict_t   conflict,       /**< conflict to resolve */ 
  690.     mb_tv_recording_t *recording_list  /**< MB_TV_INVALID_RECORDING terminated list of recordings 
  691.                                             to delete to solve conflict */
  692. );
  693. /** @} */
  694. /*
  695.  * ======================= TV Recording API ===========================================
  696.  */
  697. /** @defgroup recording_group TV Recording API
  698.  *  @{
  699.  * This API is used by Machblue DVB Player to manipulate 
  700.  * recordings.
  701.  */
  702. /**
  703.  * This function retrieves a recordings attributes.
  704.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  705.  */
  706. extern mb_error_t mb_tv_recording_attributes_get
  707.     mb_tv_recording_t              recording,        /**< recording object to query */
  708.     mb_tv_recording_attributes_t  *recording_attrib  /**< recording attributes structure to update */
  709. );
  710. /**
  711.  * This function retrieves a recording synthetized service.
  712.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  713.  */
  714. extern mb_error_t mb_tv_recording_service_get
  715.     mb_tv_recording_t  recording,  /**< recording object to query */
  716.     mb_tv_service_t   *service     /**< pointer to recording service to update */
  717. );
  718. /**
  719.  * This function retrieves a recording state. 
  720.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  721.  */
  722. extern mb_error_t mb_tv_recording_state_get
  723.     mb_tv_recording_t        recording,  /**< recording object to query */
  724.     mb_tv_recording_state_t *state       /**< pointer to recording state to update */
  725. );
  726. /**
  727.  * This function stops a recording. This only afects recordings 
  728.  * in MB_TV_RECORDING_STATE state.
  729.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  730.  */
  731. extern mb_error_t mb_tv_recording_stop
  732.     mb_tv_recording_t  recording  /**< recording object to stop */
  733. );
  734. /**
  735.  * This function deletes a recording.
  736.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  737.  */
  738. extern mb_error_t mb_tv_recording_delete
  739.     mb_tv_recording_t  recording   /**< recording object to delete */
  740. );
  741. /** @} */
  742. /*
  743.  * ======================= TV VOD Session API ===========================================
  744.  */
  745. /** @defgroup vod_group TV VOD Session API
  746.  *  @{
  747.  * This API is used by Machblue DVB Player to establish VOD 
  748.  * sessions.
  749.  */
  750. /**
  751.  * This function setups a vod session. 
  752.  * This function is ASYNCHRONOUS. The system should send an 
  753.  * MB_TV_NR_VOD_SESSION_CONNECTED or an MB_TV_NR_VOD_SESSION_ERROR 
  754.  * notification once the request is completed.
  755.  * @see MB_TV_NR_VOD_SESSION_CONNECTED
  756.  * @see MB_TV_NR_VOD_SESSION_ERROR
  757.  * @return MB_SUCCESS on success MB_FAILURE otherwise.
  758.  */
  759. extern mb_error_t mb_tv_vod_session_setup
  760.     const mb_char_t     *asset_id,       /**< id of the vod asset to launch in vod session */
  761.     const mb_char_t     *server_name,    /**< vod server to connect to */
  762.     const mb_char_t     *private_data,   /**< system dependent private data to send with session 
  763.                                               setup request */
  764.     mb_tv_vod_session_t *session         /**< pointer to newly created session to update */
  765. );
  766. /**
  767.  * This function releases a vod session. All objects associated to the
  768.  * session including its service object will be deleted.
  769.  * This function is ASYNCHRONOUS. The system should send an 
  770.  * MB_TV_NR_VOD_SESSION_DISCONNECTED notification once the request is 
  771.  * completed.
  772.  * @see MB_TV_NR_VOD_SESSION_DISCONNECTED
  773.  * @return MB_SUCCESS on success MB_FAILURE otherwise.
  774.  */
  775. extern mb_error_t mb_tv_vod_session_release
  776.     mb_tv_vod_session_t session         /**< vod session to delete */
  777. );
  778. /**
  779.  * This function gets the service associated to a connected vod session.
  780.  * @return MB_SUCCESS on success MB_FAILURE otherwise.
  781.  */
  782. extern mb_error_t mb_tv_vod_session_service_get
  783.     mb_tv_vod_session_t  session,        /**< vod session to query */
  784.     mb_tv_service_t     *service         /**< pointer to vod service to update */
  785. );
  786. /**
  787.   * This function gets the state of a vod session.
  788.   * @return MB_SUCCESS on success MB_FAILURE otherwise.
  789.   */
  790. extern mb_error_t mb_tv_vod_session_state_get
  791.     mb_tv_vod_session_t        session, /**< vod session to query */
  792.     mb_tv_vod_session_state_t *state    /**< pointer to vod session state to update */
  793. );
  794. /** @} */
  795. /*
  796.  * ======================= TV Miscellaneous API ===========================================
  797.  */
  798. /** @defgroup misc_group TV Miscellaneous API
  799.  *  @{
  800.  * TV Miscellaneous API
  801.  */
  802. /**
  803.  * This function returns the currently selected screen 
  804.  * language, as an ISO 639 language code string. The platform 
  805.  * can also provides live notification of screen language changes 
  806.  * through the MB_TV_NR_LANGUAGE_CHANGED notification event. 
  807.  * @see MB_TV_NR_LANGUAGE_CHANGED
  808.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  809.  */
  810. extern mb_error_t mb_tv_screen_language_get
  811.     mb_char_t *language  /**< user provided string pointer to update, the string
  812.                              is at least MB_TV_LANGUAGE_STRING_LENGTH long */
  813. );
  814. /**
  815.  * This function returns the default screen language, as an ISO 639 language
  816.  * code string. The default language is a system-wide fall-back language
  817.  * value. 
  818.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  819.  */
  820. extern mb_error_t mb_tv_default_screen_language_get
  821.     mb_char_t *language  /**< user provided string pointer to update, the string
  822.                              is at least MB_TV_LANGUAGE_STRING_LENGTH long */
  823. );
  824. /**
  825.  * This function returns the current rating block, as a string, formatted 
  826.  * for display purposes using the local standards for displaying program ratings.
  827.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  828.  */
  829. extern mb_error_t mb_tv_rating_block_get
  830.     mb_char_t *ratings  /**< user provided string pointer to update, the string
  831.                              is at least MB_TV_RATING_STRING_LENGTH long */
  832. );
  833. /**
  834.  * This function retrieves a given asset authorization flags.
  835.  * Note that services and program events have their own 
  836.  * authorization methods.  This method is useful if an application 
  837.  * is using the conditional access system for something other than a 
  838.  * service or a program event, such as an interactive service.
  839.  * The list of authorization flags is enumerated in 
  840.  * mb_tv_authorization_flag_t.
  841.  * @see mb_tv_authorization_flag_t
  842.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  843.  */
  844. extern mb_error_t mb_tv_asset_auth_flags_get
  845.     const mb_char_t *asset_id,   /**< id of the assets to check */
  846.     unsigned int    *auth_flags  /**< pointer to asset authorization flags to update
  847.                                       @see mb_tv_authorization_flag_t */
  848. );
  849. /**
  850.  * This function attempts to purchase the specified asset.
  851.  * This operation is ASYNCHRONOUS, and may imply a roundtrip 
  852.  * to the head-end for a credit check and actual processing.
  853.  * It is expected that any user intervention, in the form of 
  854.  * a confirmation, has been done prior to calling this method.
  855.  * @see MB_TV_NR_ASSET_PURCHASE_STATUS 
  856.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  857.  */
  858. extern mb_error_t mb_tv_asset_purchase
  859.     const mb_char_t *asset_id /**< id of the assets to purchase */
  860. );
  861. /**
  862.  * This function validates the specified PIN. This method will 
  863.  * cause the system to display a standard PIN entry form, and 
  864.  * ask the subscriber to enter the appropriate PIN.
  865.  * 
  866.  * This method is ASYNCHRONOUS. The system should send an 
  867.  * MB_TV_NR_PIN_VALIDATION_STATUS notification on completion of the 
  868.  * request.The MB_TV_NR_PIN_VALIDATION_STATUS event contains a 
  869.  * field indicating the success of the operation.
  870.  * @see MB_TV_NR_PIN_VALIDATION_STATUS
  871.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  872.  */
  873. extern mb_error_t mb_tv_pin_validate
  874.     mb_tv_pin_type_t  pin_type /**< pin type to validate */
  875. );
  876. /**
  877.  * This function retrieves device info from the system.
  878.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  879.  */
  880. extern mb_error_t mb_tv_device_info_get
  881.     mb_tv_device_info_t  *device_info  /**< device info structure to update */
  882. );
  883. /**
  884.  * This function retrieves the current device device state 
  885.  * from the system.
  886.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  887.  */
  888. extern mb_error_t mb_tv_device_state_get
  889.     mb_tv_device_state_t  *device_state  /**< device state enum to update */
  890. );
  891. /** @} */
  892. #ifdef __cplusplus
  893. }      /* extern "C" */  
  894. #endif /* __cplusplus */
  895. #endif /* _MACHBLUE_TV_PORTING_H_ */