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

DVD

开发平台:

C/C++

  1. /*-----------------------------------------------------------------------------
  2.  | @(#) machblue_tv_defines.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_DEFINES_H_
  9. #define _MACHBLUE_TV_DEFINES_H_
  10. /*----------------------------------------------------------
  11.  | Include definition below this line
  12.  +----------------------------------------------------------*/
  13. #include "machblue_tv_customer.h"
  14. #include "machblue_defines.h"
  15. #ifdef __cplusplus
  16. extern "C" {
  17. #endif /* __cplusplus */
  18. /*----------------------------------------------------------
  19.  | Macro definition below this line
  20.  +----------------------------------------------------------*/
  21. /** Machblue TV ALL Service List ID */
  22. #define MB_TV_SVL_ALL_ID            0
  23. /** Machblue TV status argument (mb_error_t). 
  24.  * @see MB_TV_NR_SERVICE_LISTS_GET 
  25.  * @see mb_error_t
  26.  */
  27. #define MB_TV_STATUS_ARG(args)                  ((args)->arg[0].l) 
  28. /** Machblue TV list of service lists argument (mb_tv_service_list_t *).
  29.  * @see MB_TV_NR_SERVICE_LISTS_GET
  30.  * @see mb_tv_service_list_t
  31.  */
  32. #define MB_TV_SVL_LIST_ARG(args)                ((args)->arg[1].vp) 
  33. /** Machblue TV service list argument (mb_tv_service_list_t).
  34.  * @see MB_TV_NR_SVL_CHANGED
  35.  * @see mb_tv_service_list_t
  36.  */
  37. #define MB_TV_SVL_ARG(args)                     ((args)->arg[1].l) 
  38. /** Machblue TV list of services argument (mb_tv_service_t *).
  39.  * @see MB_TV_NR_SERVICES_GET 
  40.  * @see mb_tv_service_t
  41.  */
  42. #define MB_TV_SERVICE_LIST_ARG(args)            ((args)->arg[1].vp) 
  43. /** Machblue TV service pointer argument (mb_tv_service_t *).
  44.  * @see MB_TV_NR_SERVICE_GET_FROM_URL 
  45.  * @see mb_tv_service_t
  46.  */
  47. #define MB_TV_SERVICE_PTR_ARG(args)             ((args)->arg[1].vp) 
  48. /** Machblue TV service argument (mb_tv_service_t).
  49.  * @see MB_TV_NR_CURRENT_EVENT_CHANGED 
  50.  * @see mb_tv_service_t
  51.  */
  52. #define MB_TV_SERVICE_ARG(args)                 ((args)->arg[0].l) 
  53. /** Machblue TV event argument (mb_tv_event_t).
  54.  * @see MB_TV_NR_SERVICE_CURRENT_EVENT_GET 
  55.  * @see mb_tv_event_t
  56.  */
  57. #define MB_TV_EVENT_ARG(args)                   ((args)->arg[1].l) 
  58. /** Machblue TV event schedule argument (mb_tv_event_schedule_t).
  59.  * @see MB_TV_NR_SERVICE_EVENT_SCHEDULE_GET
  60.  * @see mb_tv_event_schedule_t
  61.  */
  62. #define MB_TV_EVS_ARG(args)                     ((args)->arg[1].l) 
  63. /** Machblue list of events argument (mb_tv_event_t *).
  64.  * @see TV MB_TV_NR_EVS_EVENTS_GET 
  65.  * @see mb_tv_event_t
  66.  */
  67. #define MB_TV_EVENT_LIST_ARG(args)              ((args)->arg[1].vp) 
  68. /** Machblue TV list of service contexts argument (mb_tv_service_context_t *).
  69.  * @see MB_TV_NR_SERVICE_CONTEXTS_GET  
  70.  * @see mb_tv_service_context_t
  71.  */
  72. #define MB_TV_SVC_LIST_ARG(args)                ((args)->arg[1].vp) 
  73. /** Machblue TV list of stream info argument (mb_tv_stream_info_t *).
  74.  * @see MB_TV_NR_STREAMS_INFO_GET
  75.  * @see mb_tv_stream_info_t
  76.  */
  77. #define MB_TV_STREAM_INFO_LIST_ARG(args)        ((args)->arg[1].vp) 
  78. /** Machblue TV command argument (mb_tv_trick_play_cmd_t)
  79.  * @see MB_TV_NR_TRICK_PLAY  
  80.  * @see mb_tv_trick_play_cmd_t
  81.  */
  82. #define MB_TV_TRICK_PLAY_CMD_ARG(args)          ((args)->arg[1].l) 
  83. /** Machblue TV command parameter argument (long)
  84.  * @see MB_TV_NR_TRICK_PLAY  
  85.  */
  86. #define MB_TV_TRICK_PLAY_PARAM_ARG(args)        ((args)->arg[2].l)
  87. /** Machblue TV list of recordings argument (mb_tv_recording_t).
  88.  * @see MB_TV_NR_RECORDINGS_GET  
  89.  * @see mb_tv_recording_t
  90.  */
  91. #define MB_TV_RECORDING_LIST_ARG(args)          ((args)->arg[1].vp) 
  92. /** Machblue TV recording argument (mb_tv_recording_t).
  93.  * @see MB_TV_NR_EVENT_RECORD 
  94.  * @see mb_tv_recording_t
  95.  */
  96. #define MB_TV_RECORDING_PTR_ARG(args)           ((args)->arg[1].vp) 
  97. /** Machblue TV recording argument (mb_tv_recording_t).
  98.  * @see MB_TV_NR_RECORDING_CHANGED
  99.  * @see mb_tv_recording_t
  100.  */
  101. #define MB_TV_RECORDING_ARG(args)               ((args)->arg[0].l)
  102. /** Machblue TV service context argument (mb_tv_service_context_t).
  103.  * @see MB_TV_NR_SERVICE_SELECTED  
  104.  * @see mb_tv_service_context_t
  105.  */
  106. #define MB_TV_SERVICE_CONTEXT_ARG(args)         ((args)->arg[0].vp) 
  107. /** Machblue TV service argument (mb_tv_service_t).
  108.  * @see MB_TV_NR_SERVICE_SELECTED  
  109.  * @see mb_tv_service_t
  110.  */
  111. #define MB_TV_SELECTED_SERVICE_ARG(args)        ((args)->arg[1].vp) 
  112. /** Machblue TV service error argument (long int, manufacturer specific).
  113.  * @see MB_TV_NR_SERVICE_ERROR  
  114.  */
  115. #define MB_TV_SERVICE_ERROR_ARG(args)           ((args)->arg[2].l) 
  116. /** Machblue TV stream controller argument (mb_tv_stream_controller_t).
  117.  * @see MB_TV_NR_STREAM_ENABLED  
  118.  * @see mb_tv_stream_controller_t
  119.  */
  120. #define MB_TV_STREAM_CONTROLLER_ARG(args)       ((args)->arg[0].vp) 
  121. /** Machblue TV stream type argument (mb_tv_stream_type_t).
  122.  * @see MB_TV_NR_STREAM_ENABLED 
  123.  * @see mb_tv_stream_type_t
  124.  */
  125. #define MB_TV_STREAM_TYPE_ARG(args)             ((args)->arg[1].l) 
  126. /** Machblue TV stream error argument (long int, manufacturer specific).
  127.  * @see MB_TV_NR_STREAM_ERROR 
  128.  */
  129. #define MB_TV_STREAM_ERROR_ARG(args)            ((args)->arg[2].l) 
  130. /** Machblue TV source id argument (int).
  131.  * @see MB_TV_NR_SIGNAL_LOST  
  132.  */
  133. #define MB_TV_SOURCE_ID_ARG(args)               ((args)->arg[1].l) 
  134. /** Machblue TV conflict argument (mb_tv_conflict_t).
  135.  * @see MB_TV_NR_RECORDER_CONFLICT 
  136.  * @see mb_tv_conflict_t
  137.  */
  138. #define MB_TV_CONFLICT_ARG(args)                ((args)->arg[0].vp) 
  139. /** Machblue TV conflict recording list argument (mb_tv_recording_t *).
  140.  * @see MB_TV_NR_RECORDER_CONFLICT 
  141.  * @see mb_tv_recording_t
  142.  */
  143. #define MB_TV_CONFLICT_RECORDING_LIST_ARG(args) ((args)->arg[1].vp) 
  144. /** Machblue TV conditional access error argument (long int, manufacturer specific).
  145.  * @see MB_TV_NR_CA_ERROR (long)
  146.  */
  147. #define MB_TV_CA_ERROR_ARG(args)                ((args)->arg[1].l) 
  148. /** Machblue TV vod session handle argument (mb_tv_vod_session_t).
  149.  * @see MB_TV_NR_VOD_SESSION_CONNECTED
  150.  * @see mb_tv_vod_session_t
  151.  */
  152. #define MB_TV_VOD_SESSION_ARG(args)             ((args)->arg[0].l) 
  153. /** Machblue TV vod session error argument (long int, manufacturer specific).
  154.  * @see MB_TV_NR_VOD_SESSION_ERROR 
  155.  */
  156. #define MB_TV_VOD_SESSION_ERROR_ARG(args)       ((args)->arg[1].l) 
  157. /** Machblue TV playback position value argument in nano-seconds (mb_system_time_t *).
  158.  * @see MB_TV_NR_PLAYBACK_POSITION_NOTIFY
  159.  * @see mb_system_time_t 
  160.  */
  161. #define MB_TV_PB_POSITION_VALUE_ARG(args)       ((args)->arg[1].vp)
  162. /** Machblue TV playback buffer side argument  (mb_tv_playback_side_t).
  163.  * @see MB_TV_NR_PLAYBACK_END_REACHED
  164.  * @see mb_tv_playback_side_t 
  165.  */
  166. #define MB_TV_PB_BUFFER_SIDE_ARG(args)          ((args)->arg[1].l)
  167. /** Machblue TV language argument (mb_char_t)
  168.  * @see MB_TV_NR_LANGUAGE_CHANGED
  169.  * @see mb_char_t
  170.  */
  171. #define MB_TV_LANGUAGE_ARG(args)                ((args)->arg[0].vp)
  172. /** Machblue TV pin validation type argument (mb_tv_pin_type_t).
  173.  * @see MB_TV_NR_PIN_VALIDATION_STATUS
  174.  * @see mb_tv_pin_type_t
  175.  */
  176. #define MB_TV_PIN_VALIDATION_TYPE_ARG(args)     ((args)->arg[1].l)
  177. /** Machblue TV asset purchase id argument (mb_char_t).
  178.  * @see MB_TV_NR_ASSET_PURCHASE_STATUS 
  179.  * @see mb_char_t
  180.  */
  181. #define MB_TV_ASSET_PURCHASE_ID_ARG(args)       ((args)->arg[1].vp)
  182. /*----------------------------------------------------------
  183.  | Type definition below this line
  184.  +----------------------------------------------------------*/
  185. /** Machblue TV notification reasons */
  186. typedef enum {
  187.     MB_TV_NR_SVL_LIST_CHANGED = 0,  /**< machblue tv list of service lists changed notify reason. This message is 
  188.                                          generated asynchronously whenever the system's list of service lists 
  189.                                          changes. */
  190.     MB_TV_NR_SERVICE_LISTS_GET,     /**< machblue tv service lists get notify reason. This message is 
  191.                                          generated in response to an mb_tv_service_lists_get() request.
  192.                                          @li MB_TV_STATUS_ARG(args)   = MB_SUCCESS if the request succeeded,
  193.                                                                         MB_FAILURE otherwise.
  194.                                          @li MB_TV_SVL_LIST_ARG(args) = user provided pointer to the list of 
  195.                                                                         service lists requested. */
  196.     MB_TV_NR_SVL_CHANGED,           /**< machblue tv service list changed notify reason. This message is 
  197.                                          generated asynchronously whenever a service list object changes. 
  198.                                          @li MB_TV_SVL_ARG(args) = service list object that changed. */
  199.     MB_TV_NR_SERVICES_GET,          /**< machblue tv services get notify reason. This message is 
  200.                                          generated in response to an mb_tv_services_get() request.
  201.                                          @li MB_TV_STATUS_ARG(args)       = MB_SUCCESS if the request succeeded,
  202.                                                                             MB_FAILURE otherwise.
  203.                                          @li MB_TV_SERVICE_LIST_ARG(args) = user provided pointer to the list of 
  204.                                                                             service objects requested. */
  205.     MB_TV_NR_SERVICE_GET_FROM_URL, /**< machblue tv service get from url notify reason. This message is 
  206.                                          generated in response to an mb_tv_service_get_from_url() request.
  207.                                          @li MB_TV_STATUS_ARG(args)      = MB_SUCCESS if the request succeeded,
  208.                                                                            MB_FAILURE otherwise.
  209.                                          @li MB_TV_SERVICE_PTR_ARG(args) = user provided pointer to service object 
  210.                                                                            requested  */
  211.                                                        
  212.     MB_TV_NR_CURRENT_EVENT_CHANGED,       /**< machblue tv current event changed notify reason. This message is 
  213.                                                generated asynchronously whenever the current event of a service 
  214.                                                object changes. 
  215.                                                @li MB_TV_SERVICE_ARG(args) = service object being notified. */
  216.     MB_TV_NR_SERVICE_CURRENT_EVENT_GET,   /**< machblue tv service current event get notify reason. 
  217.                                                This message is generated in response to an 
  218.                                                mb_tv_service_current_event_get() request.
  219.                                                @li MB_TV_STATUS_ARG(args) = MB_SUCCESS if the request succeeded,
  220.                                                                             MB_FAILURE otherwise.
  221.                                                @li MB_TV_EVENT_ARG(args)  = user provided pointer to current event 
  222.                                                                             objects requested.*/
  223.     MB_TV_NR_SERVICE_FOLLOWING_EVENT_GET, /**< machblue tv service following event get notify reason. 
  224.                                                This message is generated in response to an 
  225.                                                mb_tv_service_foollowing_event_get() request.
  226.                                                @li MB_TV_STATUS_ARG(args) = MB_SUCCESS if the request succeeded,
  227.                                                                             MB_FAILURE otherwise.
  228.                                                @li MB_TV_EVENT_ARG(args)  = user provided pointer to following event 
  229.                                                                             object requested. */
  230.     MB_TV_NR_SERVICE_EVENT_SCHEDULE_GET,  /**< machblue tv service event schedule get notify reason. 
  231.                                                This message is generated in response to an 
  232.                                                mb_tv_service_event_schedule_get() request.
  233.                                                @li MB_TV_STATUS_ARG(args) = MB_SUCCESS if the request succeeded,
  234.                                                                             MB_FAILURE otherwise.
  235.                                                @li MB_TV_EVS_ARG(args)    = user provided pointer to event schedule 
  236.                                                                             object requested.*/
  237.     MB_TV_NR_EVS_CHANGED,                 /**< machblue tv event schedule changed notify reason. 
  238.                                                This message is generated asynchronously whenever an event schedule 
  239.                                                object changes.
  240.               @li MB_TV_SERVICE_ARG(args) = service object being notified.
  241.                                                @li MB_TV_EVS_ARG(args)     = event schedule object that changed. */
  242.     MB_TV_NR_EVS_EVENTS_GET,              /**< machblue tv service event schedule events get notify reason. 
  243.                                                This message is generated in response to an mb_tv_evs_events_get() 
  244.                                                request.
  245.                                                @li MB_TV_STATUS_ARG(args)     = MB_SUCCESS if the request succeeded,
  246.                                                                                 MB_FAILURE otherwise.
  247.                                                @li MB_TV_EVENT_LIST_ARG(args) = user provided pointer to list of event
  248.                                                                                 objects requested.*/
  249.     MB_TV_NR_SVC_LIST_CHANGED,            /**< machblue tv list of service context changed notify reason. This message is 
  250.                                                generated asynchronously whenever the system's list of service contexts 
  251.                                                changes. */
  252.     MB_TV_NR_SERVICE_CONTEXTS_GET,        /**< machblue tv service contexts get notify reason. 
  253.                                                This message is generated in response to an mb_tv_service_contexts_get() 
  254.                                                request.
  255.                                                @li MB_TV_STATUS_ARG(args)   = MB_SUCCESS if the request succeeded,
  256.                                                                               MB_FAILURE otherwise.
  257.                                                @li MB_TV_SVC_LIST_ARG(args) = user provided pointer to list of service
  258.                                                                               contexts objects requested.*/
  259.     MB_TV_NR_STREAM_LIST_CHANGED,         /**< machblue tv list of streams changed notify reason. This message is 
  260.                                                generated asynchronously whenever a stream controller's list of 
  261.                                                streams changes. 
  262.                                                @li MB_TV_STREAM_CONTROLLER_ARG(args) = stream controller being notified */
  263.     MB_TV_NR_STREAMS_INFO_GET,            /**< machblue tv streams info get notify reason. 
  264.                                                This message is generated in response to an mb_tv_stc_streams_info_get() 
  265.                                                request.
  266.                                                @li MB_TV_STATUS_ARG(args)           = MB_SUCCESS if the request succeeded,
  267.                                                                                       MB_FAILURE otherwise.
  268.                                                @li MB_TV_STREAM_INFO_LIST_ARG(args) = user provided pointer to list of 
  269.                                                                                       stream info structures requested.*/
  270.     MB_TV_NR_TRICK_PLAY,                  /**< machblue tv trick play notify reason. 
  271.                                                This message is generated in response to an mb_tv_stc_trick_play() 
  272.                                                request.
  273.                                                @li MB_TV_STATUS_ARG(args)            = MB_SUCCESS if the request succeeded,
  274.                                                                                        MB_FAILURE otherwise.
  275.                                                @li MB_TV_TRICK_PLAY_CMD_ARG(args)    = trick play command requested. 
  276.                                                @li MB_TV_TRICK_PLAY_PARAM_ARG(args)  = trick play command parameters as
  277.                                                                                        modified by the hardware based on what the
  278.                                                                                        hardware supports. */
  279.     MB_TV_NR_RECORDING_LIST_CHANGED,      /**< machblue tv recording list changed notify reason. 
  280.                                                This message is generated asynchronously whenever the system's 
  281.                                                list of recordings changes. */
  282.     MB_TV_NR_RECORDINGS_GET,              /**< machblue tv recordings get notify reason. 
  283.                                                This message is generated in response to an mb_tv_recordings_get() 
  284.                                                request.
  285.                                                @li MB_TV_STATUS_ARG(args)         = MB_SUCCESS if the request succeeded,
  286.                                                                                     MB_FAILURE otherwise.
  287.                                                @li MB_TV_RECORDING_LIST_ARG(args) = user provided pointer to list of 
  288.                                                                                     recordings requested. */
  289.     MB_TV_NR_EVENT_RECORD,                /**< machblue tv event record notify reason. 
  290.                                                This message is generated in response to an mb_tv_event_record() 
  291.                                                request.
  292.                                                @li MB_TV_STATUS_ARG(args)        = MB_SUCCESS if the request succeeded,
  293.                                                                                    MB_FAILURE otherwise.
  294.                                                @li MB_TV_RECORDING_PTR_ARG(args) = user provided recording pointer argument. */
  295.     MB_TV_NR_SERVICE_RECORD,              /**< machblue tv service record notify reason. 
  296.                                                This message is generated in response to an mb_tv_service_record() 
  297.                                                request.
  298.                                                @li MB_TV_STATUS_ARG(args)        = MB_SUCCESS if the request succeeded,
  299.                                                                                    MB_FAILURE otherwise.
  300.                                                @li MB_TV_RECORDING_PTR_ARG(args) = user provided recording pointer argument. */
  301.     MB_TV_NR_RECORDING_CHANGED,           /**< machblue tv recording changed notify reason. 
  302.                                                This message is generated asynchronously whenever a recording's state
  303.                                                changes. 
  304.                                                @li MB_TV_RECORDING_ARG(args) = recording object being notified. */
  305.     MB_TV_NR_SERVICE_SELECTED,   /**< machblue tv service selected nofify reason. This message is generated 
  306.                                       in response to an mb_tv_sc_service_select() request.
  307.                                       @li MB_TV_SERVICE_CONTEXT_ARG(args)  = service context being notified
  308.                                       @li MB_TV_SELECTED_SERVICE_ARG(args) = handle of the service selected */
  309.     MB_TV_NR_SERVICE_ERROR,      /**< machblue tv service error nofify reason. This message is generated in 
  310.                                       response to mb_tv_sc_service_select() request.
  311.                                       @li MB_TV_SERVICE_CONTEXT_ARG(args) = service context being notified
  312.                                       @li MB_TV_SELECT_SERVICE_ARG(args)  = handle of the service selected
  313.                                       @li MB_TV_SERVICE_ERROR_ARG(args)   = manufacturer specific service error code */
  314.     MB_TV_NR_STREAM_ENABLED,     /**< machblue tv stream enabled nofify reason. This message is generated in
  315.                                       response to an mb_tv_sc_stream_enable() request.
  316.                                       @li MB_TV_STREAM_CONTROLLER_ARG(args) = stream controller being notified
  317.                                       @li MB_TV_STREAM_TYPE_ARG(args)       = type of stream being notified
  318.                                                                              (MB_TV_STREAM_TYPE_AUDIO, etc.) */
  319.     MB_TV_NR_STREAM_DISABLED,    /**< machblue tv stream disabled nofify reason. This message is generated in
  320.                                       response to an mb_tv_sc_stream_disable() request.
  321.                                       @li MB_TV_STREAM_CONTROLLER_ARG(args) = stream controller being notified
  322.                                       @li MB_TV_STREAM_TYPE_ARG(args)       = type of stream being notified
  323.                                                                               (MB_TV_STREAM_TYPE_AUDIO, etc.) */
  324.     MB_TV_NR_STREAM_ERROR,       /**< machblue tv stream disabled nofify reason. This message is generated in
  325.                                       response to an mb_tv_sc_stream_enable() or mb_tv_sc_stream_disable request().
  326.                                       @li MB_TV_STREAM_CONTROLLER_ARG(args) = stream controller being notified
  327.                                       @li MB_TV_STREAM_TYPE_ARG(args)       = type of stream being notified
  328.                                                                               (MB_TV_STREAM_TYPE_AUDIO, etc.)
  329.                                       @li MB_TV_STREAM_ERROR_ARG(args)      = manufacturer specific stream error code. */
  330.     MB_TV_NR_SIGNAL_LOST,        /**< machblue tv signal lost nofify reason. This message is generated asynchronously
  331.                                       whenever a source has lost its signal.
  332.                                       @li MB_TV_SERVICE_CONTEXT_ARG(args) = service context being notified if any, 0
  333.                                                                             otherwise.
  334.                                       @li MB_TV_SOURCE_ID_ARG(args)       = id of the source that lost signal */
  335.     MB_TV_NR_SIGNAL_RECOVERED,   /**< machblue tv signal recovered nofify reason. This message is generated in 
  336.                                       generated asynchronously whenever a source has recovered its signal.
  337.                                       @li MB_TV_SERVICE_CONTEXT_ARG(args) = service context being notified if any, 0
  338.                                                                             otherwise.
  339.                                       @li MB_TV_SOURCE_ID_ARG(args)       = id of the source that lost signal */
  340.     MB_TV_NR_RECORDER_CONFLICT,  /**< machblue tv recording conflict nofify reason. This message is generated 
  341.                                       whenever a recoder conflict is detected.
  342.                                       @li MB_TV_CONFLICT_ARG(args)                = recording conflict unique identifier
  343.                                       @li MB_TV_CONFLICT_RECORDING_LIST_ARG(args) = MB_TV_INVALID_RECORDING terminated 
  344.                                                                                     list of conflicting recordings */
  345.     MB_TV_NR_CA_ERROR,           /**< machblue tv conditional access error nofify reason. This message is generated
  346.                                       by the manufacturer's condtional access system in case of error (stream 
  347.                                       playback error)
  348.                                       @li MB_TV_SERVICE_CONTEXT_ARG(args) = service context being notified
  349.                                       @li MB_TV_CA_ERROR_ARG(args)        = conditional access error code */
  350.     MB_TV_NR_VOD_SESSION_CONNECTED,    /**< machblue tv vod session connected nofify reason. This message is 
  351.                                             generated in response to an mb_tv_vod_session_setup() request.
  352.                                             @li MB_TV_VOD_SESSION_POINTER_ARG(args) = user provided pointer to handle 
  353.                                                                                       of the vod session connected */
  354.     MB_TV_NR_VOD_SESSION_DISCONNECTED, /**< machblue tv vod session disconnected nofify reason. This message is 
  355.                                             generated in response to an mb_tv_vod_session_delete() request.
  356.                                             @li MB_TV_VOD_SESSION_ARG(args) = handle of the vod session disconnected */
  357.     MB_TV_NR_VOD_SESSION_TIMEOUT,      /**< machblue tv vod session timeout nofify reason. This message is 
  358.                                             generated when a vod session has timeout due to user inactivity.
  359.                                             @li MB_TV_VOD_SESSION_ARG(args) = handle of the vod session that has timed 
  360.                                                                               out */
  361.     MB_TV_NR_VOD_SESSION_ERROR,        /**< machblue tv vod session setup nofify reason. This message is generated 
  362.                                             in response to an mb_tv_vod_session_setup() request.
  363.                                             @li MB_TV_VOD_SESSION_ARG(args)       = user provided pointer to handle of 
  364.                                                                                     the vod session in error
  365.                                             @li MB_TV_VOD_SESSION_ERROR_ARG(args) = manufacturer specific vod session 
  366.                                                                                     error code. */
  367.     MB_TV_NR_PLAYBACK_POSITION_NOTIFY, /**< machblue tv playback position nofify reason. This message is sent the first 
  368.                                             time the current video playback position is greater or equal to the  position
  369.                                             value set with mb_tv_stc_playback_position_notify().
  370.                                             @li MB_TV_STREAM_CONTROLLER_ARG(args) = stream controller being notified.
  371.                                             @li MB_TV_PB_POSITION_VALUE_ARG(args) = pointer to mb_system_time_t representing
  372.                                                                                     the playback position value requested in 
  373.                                                                                     nano-seconds. */
  374.     MB_TV_NR_PLAYBACK_END_REACHED,     /**< machblue tv playback end nofify reason. This message is sent asynchronously
  375.                                             when the current video playback head reaches the end (for forward playbacks,
  376.                                             fast forwards, etc.) or the beginning (for backward playbacks, rewinds, etc.)
  377.                                             of the playback buffer.
  378.                                             MB_TV_STREAM_CONTROLLER_ARG(args) = stream controller being notified.
  379.                                             MB_TV_PB_BUFFER_SIDE_ARG(args)    = MB_TV_PB_BUFFER_BEGINNING if the beginning 
  380.                                                                                 of the buffer was reached, otherwise
  381.                                                                                 MB_TV_PB_BUFFER_END   */
  382.     MB_TV_NR_LANGUAGE_CHANGED,         /**< machblue tv language change notify reason. This event is sent whenever 
  383.                                             the default ui language is changed.
  384.                                             @li MB_TV_LANGUAGE_ARG(args) = current language string */
  385.     MB_TV_NR_OUT_OF_STORAGE,           /**< machblue tv out of recorder storage notify reason. This event is sent 
  386.                                             whenever the recorder runs out of storage. */
  387.     MB_TV_NR_PIN_VALIDATION_STATUS,    /**< machblue tv pin validate notify reason. This event is sent 
  388.                                             whenever a pin validation request has been completed. This event is
  389.                                             generated in response to an mb_tv_pin_validate() request.
  390.                                             @li MB_TV_STATUS_ARG(args)              = MB_SUCCESS if pin validation 
  391.                                                                                       succeeded, MB_FAILURE 
  392.                                                                                       otherwise
  393.                                             @li MB_TV_PIN_VALIDATION_TYPE_ARG(args) = type of pin validation 
  394.                                                                                       completed */
  395.     MB_TV_NR_ASSET_PURCHASE_STATUS,    /**< machblue tv asset purchase request notify reason. This event is sent 
  396.                                             whenever an asset purchase request has been completed. This event is
  397.                                             generated in response to an mb_tv_asset_purchase() request.
  398.                                             @li MB_TV_STATUS_ARG(args)                = MB_SUCCESS if the asset purchase 
  399.                                                                                         succeeded, MB_FAILURE 
  400.                                                                                         otherwise 
  401.                                             @li MB_TV_ASSET_PURCHASE_ID_ARG(args)     = id of the asset being purchased. */
  402.     MB_TV_NR_LAST
  403. } mb_tv_notif_reason_t;
  404. /** Machblue client notification function */
  405. typedef mb_error_t (mb_tv_notify_f)( mb_tv_notif_reason_t reason, mb_args_t *args, void *client_data );
  406. /** Machblue TV service list info type */
  407. typedef struct {
  408.     int                  id;                                 /**< service list id if any */
  409.     mb_char_t            name[MB_TV_SVL_NAME_LENGTH];        /**< service list name */
  410.     mb_char_t            logo_url[MB_TV_URL_LENGTH];         /**< service list logo url */
  411.     mb_char_t            extra_info[MB_TV_SVL_EXTRA_LENGTH]; /**< system dependent extra service list info */
  412. } mb_tv_svl_info_t;
  413. /** Machblue TV service type enum */
  414. typedef enum {
  415.     MB_TV_DIGITAL_SERVICE = 0,  /**< digital service type */
  416.     MB_TV_ANALOG_SERVICE,       /**< analog service type */
  417.     MB_TV_DATA_SERVICE,         /**< data service type */
  418.     MB_TV_ETV_SERVICE,          /**< enhanced tv service type */
  419.     MB_TV_LAST_SERVICE_TYPE
  420. } mb_tv_service_type_t;
  421. /** Machblue TV service source enum */
  422. typedef enum {
  423.     MB_TV_CABLE_SOURCE = 0,           /**< cable broadcast source */
  424.     MB_TV_SATELLITE_SOURCE,           /**< satellite broadcast source */
  425.     MB_TV_IPTV_SOURCE,                /**< iptv broadcast source */
  426.     MB_TV_TERRESTRIAL_SOURCE,         /**< terrestrial broadcast source */
  427.     MB_TV_RECORDER_SOURCE,            /**< recorder source */
  428.     MB_TV_VOD_SOURCE,                 /**< vod source */
  429.     MB_TV_LAST_SOURCE_TYPE
  430. } mb_tv_source_type_t;
  431. /** Machblue TV service source info */
  432. typedef struct {
  433.     int                 id;    /**< unique source id */
  434.     mb_tv_source_type_t type;  /**< source type */
  435. } mb_tv_source_info_t;
  436. /** Machblue TV service info type */
  437. typedef struct {
  438.     int                  id;                                     /**< service channel unique id if any */
  439.     int                  display_id;                             /**< service channel display id (i.e. channel 
  440.                                                                       number) if any */    
  441.     mb_char_t            name[MB_TV_SERVICE_NAME_LENGTH];        /**< service name */
  442.     mb_tv_service_type_t type;                                   /**< service type */
  443.     mb_tv_source_info_t  source_info;                            /**< service source info */
  444.     mb_char_t            logo_url[MB_TV_URL_LENGTH];             /**< service logo url */
  445.     mb_char_t            extra_info[MB_TV_SERVICE_EXTRA_LENGTH]; /**< system dependent extra service info */
  446. } mb_tv_service_info_t;
  447. /** Machblue TV authorization flags enum */
  448. typedef enum {
  449.     MB_TV_AF_AUTHORIZED       = 0x0,  /**< service/event/asset is authorized */
  450.     MB_TV_AF_PARENTAL_PIN_REQ = 0x1,  /**< parental control pin is required to access service/event/asset */
  451.     MB_TV_AF_SUBSCRIPTION_REQ = 0x2,  /**< subscription is required to access service/event/asset */
  452.     MB_TV_AF_PURCHASE_REQ     = 0x4,  /**< purchase is required to access service/event/asset */
  453.     MB_TV_AF_BLACKED_OUT      = 0x8,  /**< service/event/asset is currently blacked out */
  454.     MB_TV_AF_LAST
  455. } mb_tv_authorization_flag_t;
  456. /** Machblue TV service state enum type */
  457. typedef enum {
  458.     MB_TV_SERVICE_ERROR = 0,     /**< service error state */
  459.     MB_TV_SERVICE_CONNECTED,     /**< service connected state */
  460.     MB_TV_SERVICE_DISCONNECTED,  /**< service disconnected state */ 
  461.     MB_TV_LAST_SERVICE_STATE
  462. } mb_tv_service_state_t;
  463. /** Machblue TV event description type */
  464. typedef struct {
  465.  int           id;                                          /**< unique event id */
  466.     unsigned long duration;                                    /**< event duration in seconds */
  467.     mb_char_t     name[MB_TV_EVENT_NAME_LENGTH];               /**< event name */
  468.     mb_char_t     short_desc[MB_TV_EVENT_DESCRIPTION_LENGTH];  /**< event short description */
  469.     mb_char_t     rating[MB_TV_RATING_LENGTH];                 /**< event ratings */
  470.     mb_char_t     genre[MB_TV_GENRE_LENGTH];                   /**< event genre */
  471.     mb_char_t     long_desc_url[MB_TV_URL_LENGTH];             /**< event long description url */
  472.     mb_char_t     art_url[MB_TV_URL_LENGTH];                   /**< event art work url */
  473.     mb_char_t     extra_info[MB_TV_EVENT_EXTRA_LENGTH];        /**< system dependent extra event info */
  474. } mb_tv_event_info_t;
  475. /** Machblue TV event attributes type */
  476. typedef struct {
  477.     mb_tv_event_info_t event_info;      /**< event information structure */
  478.     mb_time_t          start_time;      /**< event start time in seconds since 01/01/1970 UTC.
  479.                                              For VOD and Recorded events this should be relative to the 
  480.                                              begining of the Recordings or VOD sessions */
  481.     int                cost;            /**< event cost */
  482.     mb_time_t          expiration_date; /**< event expiration date in seconds since 01/01/1970 UTC */
  483. } mb_tv_event_attributes_t;
  484. /** Machblue TV service context info type */
  485. typedef struct {
  486.     int                  id;                                     /**< service context id if any */
  487.     mb_char_t            name[MB_TV_SVC_NAME_LENGTH];            /**< service context name */
  488.     mb_char_t            extra_info[MB_TV_SVC_EXTRA_LENGTH];     /**< system dependent extra service context info */
  489. } mb_tv_service_context_info_t;
  490. /** Machblue TV viewport type */
  491. typedef struct {
  492.     mb_rect_t bounds;    /**< viewport coordinates */
  493.     int       z_order;   /**< viewport z-order */
  494. } mb_tv_viewport_t;
  495. /** Machblue TV stream state enum type */
  496. typedef enum {
  497.     MB_TV_STREAM_ERROR = 0,  /**< stream error state */
  498.     MB_TV_STREAM_ENABLED,    /**< stream enabled state */
  499.     MB_TV_STREAM_DISABLED,   /**< stream disabled state */ 
  500.     MB_TV_LAST_STREAM_STATE
  501. } mb_tv_stream_state_t;
  502. /** Machblue TV stream type */
  503. typedef enum {
  504.     MB_TV_STREAM_TYPE_AUDIO = 0,  /**< audio stream type */
  505.     MB_TV_STREAM_TYPE_VIDEO,      /**< video stream type */
  506.     MB_TV_STREAM_TYPE_DATA,       /**< data stream type */
  507.     MB_TV_STREAM_TYPE_SUBTITLE,   /**< subtitle stream type */
  508.     MB_TV_LAST_STREAM_TYPE
  509. } mb_tv_stream_type_t;
  510. /** Machblue TV stream info type */
  511. typedef struct {
  512.     mb_tv_stream_type_t type;                                    /**< stream type */
  513.     mb_char_t           tag[MB_TV_STREAM_TAG_LENGTH];            /**< stream tag identifier */
  514.     unsigned long       bitrate;                                 /**< stream bitrate in bps if known */
  515.     mb_char_t           format[MB_TV_STREAM_FORMAT_LENGTH];      /**< stream format if known */
  516.     mb_char_t           language[MB_TV_LANGUAGE_LENGTH];         /**< stream language if applicable */
  517.     mb_char_t           extra_info[MB_TV_STREAM_EXTRA_LENGTH];   /**< pointer to system dependent extra info */
  518. } mb_tv_stream_info_t;
  519. /** Machblue TV trick play command */
  520. typedef enum {
  521.     MB_TV_PAUSE_CMD = 0,            /**< pauses an av stream at the current playing location.
  522.                                          param = timeout in ms of the pause command */
  523.     MB_TV_RESUME_CMD,               /**< resumes a previously paused av stream. */
  524.     MB_TV_RATE_CONTROL_CMD,         /**< plays the video stream at the rate specified in hundredths of normal 
  525.                                          speed. This command is used to achieve fast forward, rewind, slow motion 
  526.                                          and reverse slow motion effect. 
  527.                                          @li param = rate control speed in hundredths of normal speed. 
  528.                                                      @li A negative value indicates a reverse motion playback.
  529.                                                      @li A value of 100 indicates a return to normal play speed. */
  530.     MB_TV_FRAME_JUMP_CMD,           /**< jumps a specified number of frames forward or backward in an av 
  531.                                          stream.
  532.                                          @li param = number of frames to jump. A negative number indicates a jump 
  533.                                                      backward in the stream */
  534.     MB_TV_JOIN_LIVE_CMD,            /**< jumps to an av stream live position if any */
  535.     MB_TV_RESTART_CMD,              /**< jumps to the begining of the current playback buffer if any */
  536.     MB_TV_LAST_TRICK_CMD
  537. } mb_tv_trick_play_cmd_t;
  538. /** Machblue TV playback buffer side enum */
  539. typedef enum {
  540.     MB_TV_PB_BUFFER_BEGINNING = 0,   /**< indicates the beginning of the bufffer */
  541.     MB_TV_PB_BUFFER_END,             /**< indicates the end of the bufffer */
  542.     MB_TV_PB_BUFFER_LAST
  543. } mb_tv_playback_buffer_side_t;
  544. /** Machblue TV periodicity type */
  545. typedef enum {
  546.     MB_TV_PERIODICITY_ONCE = 1,    /**< the recording should be done only once */
  547.     MB_TV_PERIODICITY_DAILY,       /**< the recording should be repeated daily at this time slot*/
  548.     MB_TV_PERIODICITY_WEEKLY,      /**< the recording should be repeated weekly this day at this time slot*/
  549.     MB_TV_PERIODICITY_ANYTIME,     /**< the recording should be repeated anytime the event is on */
  550.     MB_TV_PERIODICITY_LAST 
  551. } mb_tv_periodicity_t;
  552. /** Machblue TV recording attributes type */
  553. typedef struct {
  554.     int                 id;                                 /**< unique recording id */
  555.     mb_size_t           size;                               /**< recording size in KB */
  556.     mb_time_t           start_time;                         /**< recording start time in seconds since
  557.                                                                  01/01/1970 UTC */
  558.     mb_time_t           end_time;                           /**< recording end time in seconds since
  559.                                                                  01/01/1970 UTC */
  560.     mb_time_t           delete_time;                        /**< recording automatic delete time in seconds
  561.                                                                  since 01/01/1970 UTC */
  562.     mb_tv_periodicity_t periodicity;                        /**< recording periodicity, i.e. if the recording
  563.                                                                  is part of a series, the periodicity of the
  564.                                                                  series. */
  565.     mb_char_t           extra_info[MB_TV_RA_EXTRA_LENGTH];  /**< system dependent extra recording info */
  566. } mb_tv_recording_attributes_t;
  567. /** Machblue TV recording state enum */
  568. typedef enum {
  569.     MB_TV_RS_RECORDING = 0,   /**< recording state */
  570.     MB_TV_RS_PLAYING,         /**< playing back state */
  571.     MB_TV_RS_STORED,          /**< stored state */
  572.     MB_TV_RS_DELETED,         /**< deleted state */
  573.     MB_TV_RS_SCHEDULED,       /**< scheduled state -- i.e. programmed but not yet recorded */ 
  574.     MB_TV_RS_LAST
  575. } mb_tv_recording_state_t;
  576. /** Machblue TV vod session state enum type */
  577. typedef enum {
  578.     MB_TV_VOD_ERROR_STATE = 0,        /**< vod session error state */
  579.     MB_TV_VOD_DISCONNECTED_STATE,     /**< vod session disconnected state */
  580.     MB_TV_VOD_CONNECTED_STATE,        /**< vod session connected state  */ 
  581.     MB_TV_VOD_LAST_STATE
  582. } mb_tv_vod_session_state_t;
  583. /** Machblue TV pin type */
  584. typedef enum {
  585.     MB_TV_PURCHASE_PIN = 0,      /**< purchase pin type */
  586.     MB_TV_PARENTAL_CONTROL_PIN,  /**< parental control pin type */
  587.     MB_TV_LAST_PIN_TYPE
  588. } mb_tv_pin_type_t;
  589. /** Machblue System Capabilities type */
  590. typedef enum {
  591.     MB_TV_SCALED_VIDEO_CAP  = 0x1,  /**< device is scaled video capable */
  592.     MB_TV_HD_CAP            = 0x2,  /**< device is capable of displaying High Definition content */
  593.     MB_TV_PVR_CAP           = 0x4,  /**< device is capable of recording event */
  594.     MB_TV_PIP_CAP           = 0x8,  /**< device is picture in picture capable */
  595.     MB_TV_LAST_CAP
  596. } mb_tv_device_caps_t;
  597. /** Machblue TV device info type */
  598. typedef struct {
  599.     mb_char_t            manufacturer[MB_TV_DEVICE_MANUFACTURER_LENGTH];  /**< manufacturer name */
  600.     mb_char_t            model[MB_TV_DEVICE_MODEL_LENGTH];                /**< model name */
  601.     mb_char_t            os_name[MB_TV_DEVICE_OS_LENGTH];                 /**< os name */
  602.     mb_char_t            os_version[MB_TV_DEVICE_OS_VERSION_LENGTH];      /**< os version */
  603.     mb_char_t            resident_app[MB_TV_DEVICE_RES_APP_LENGTH];       /**< resident application name */
  604.     mb_char_t            unique_id[MB_TV_DEVICE_UNIQUE_ID_LENGTH];        /**< unique device id */
  605.     mb_char_t            mac_address[MB_TV_DEVICE_MAC_ADDRESS_LENGTH];    /**< mac address (empty if not available) */
  606.     mb_char_t            ip_address[MB_TV_DEVICE_IP_ADDRESS_LENGTH];      /**< ip address (0.0.0.0 if not available) */
  607.     unsigned long        capabilities;                                    /**< device capabilities bitfield defined
  608.                                                                                in mb_tv_device_caps_t.
  609.                                                                                @see mb_tv_device_caps_t */
  610.     mb_char_t            extra_info[MB_TV_DEVICE_EXTRA_LENGTH];           /**< system dependent extra device info */
  611. } mb_tv_device_info_t;
  612. /** Machblue TV device state type */
  613. typedef enum {
  614.     MB_TV_BOOTING_STATE = 0,    /**< booting state */
  615.     MB_TV_POWER_OFF_STATE,      /**< power off state */
  616.     MB_TV_POWER_ON_STATE,       /**< power on state */
  617.     MB_TV_LAST_STATE            /**< */
  618. } mb_tv_device_state_t;
  619. /*----------------------------------------------------------
  620.  | Functions definition below this line
  621.  +----------------------------------------------------------*/
  622. #ifdef __cplusplus
  623. }      /* extern "C" */  
  624. #endif /* __cplusplus */
  625. #endif /* _MACHBLUE_TV_DEFINES_H_ */