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

DVD

开发平台:

C/C++

  1. /*-----------------------------------------------------------------------------
  2.  | @(#) machblue_client.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_CLIENT_H_
  9. #define _MACHBLUE_CLIENT_H_
  10. /*----------------------------------------------------------
  11.  | Include definition below this line
  12.  +----------------------------------------------------------*/
  13. #include "machblue_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. /** @defgroup mb_client_group Machblue Client API
  27.  *  @{
  28.  * This is Machblue Client API. This api allows clients to create and 
  29.  * control SWF movies.
  30.  */
  31. /**
  32.  * Creates a Machblue client.
  33.  * @return MB_SUCCESS and updates client pointer on success, MB_FAILURE otherwise. 
  34.  * Cases of failure include but are not limited to invalid gfx context, 
  35.  * out of memory, etc.
  36.  */
  37. extern mb_error_t mb_client_create
  38.     mb_client_t        *client,      /**< pointer to client to create */
  39.     mb_gfx_ctx_t       *gfx_ctx,     /**< pointer to user provided client graphic context */
  40.     mb_sound_ctx_t     *sound_ctx,   /**< pointer to user provided client sound context -- may be 
  41.                                           NULL if no sound context is desired */
  42.     mb_client_notify_f *client_cb_f  /**< pointer to user provided client notification function. */
  43. );
  44. /**
  45.  * Deletes a Machblue client.
  46.  * @return MB_SUCCESS on success, MB_FAILURE on failure.
  47.  */
  48. extern mb_error_t mb_client_delete
  49.     mb_client_t client       /**< client to delete */
  50. );
  51. /**
  52.  * Creates a SWF movie handle from data in memory.
  53.  * @return MB_SUCCESS and updates movie pointer on success or MB_FAILURE 
  54.  * otherwise. Cases of failure include but are not limited to invalid movie 
  55.  * format, out of memory, etc.
  56.  */
  57. extern mb_error_t mb_movie_create
  58.     mb_movie_t       *movie,              /**< pointer to movie to create */
  59.     unsigned char    *swf_data,           /**< byte array containing the SWF movie to create.  */
  60.     unsigned long     data_size,          /**< size of the byte array containing the SWF movie to create. */
  61.     const mb_char_t  *optional_movie_url  /**< optional movie_url string. This is used only as a decorator */
  62. ); 
  63. /**
  64.  * Creates a SWF movie handle from data loaded using the provided url.
  65.  * This function is ASYNCHRONOUS. Machblue will invoke the load_notify_f
  66.  * function provided at completion of the load request.
  67.  * @see mb_load_notify_f
  68.  * @return MB_SUCCESS and updates movie pointer on success or MB_FAILURE 
  69.  * otherwise. Cases of failure include but are not limited to invalid movie 
  70.  * format, out of memory, etc. 
  71.  */
  72. extern mb_error_t mb_movie_create_url
  73.     mb_movie_t       *movie,          /**< pointer to movie to create */
  74.     const mb_char_t  *movie_url,      /**< url of the movie to load */
  75.     mb_load_notify_f *load_notify_f,  /**< optional load notification function */
  76.     void             *ln_client_data  /**< optional load notification function client data */
  77. ); 
  78. /**
  79.  * Deletes a SWF movie handle.
  80.  * @return MB_SUCCESS in case of success, MB_FAILURE otherwise. Cases of 
  81.  * failure include invalid handle, etc.
  82.  */
  83. extern mb_error_t mb_movie_delete
  84.     mb_movie_t movie    /**< handle of movie to delete */
  85. );
  86. /**
  87.  * Gets a SWF movie information.
  88.  * @return MB_SUCCESS in case of success, MB_FAILURE otherwise. Cases of 
  89.  * failure include invalid handle, etc.
  90.  */
  91. extern mb_error_t mb_movie_info_get
  92.     mb_movie_t       movie,         /**< handle of movie to query */
  93.     mb_movie_info_t *movie_info     /**< pointer to a user allocated mb_movie_info_t 
  94.                                          structure that will be used to store the 
  95.                                          movie info */
  96. );
  97. /**
  98.  * Attach a SWF movie to a client in exclusive mode. A movie can only be
  99.  * attached to single client at a time. 
  100.  * This function is ASYNCHRONOUS. Machblue will send an MB_NR_MOVIE_ATTACHED
  101.  * notification to the client at completion of the attach process.
  102.  * @see MB_NR_MOVIE_ATTACHED
  103.  * @return MB_SUCCESS in case of success, MB_FAILURE otherwise. Cases of 
  104.  * failure include invalid handle, etc.
  105.  */
  106. extern mb_error_t mb_movie_attach
  107.     mb_movie_t        movie,        /**< handle of movie to attach */
  108.     mb_client_t       client,       /**< client to attach the movie to */
  109.     void             *client_data   /**< client provided data that will be returned to client 
  110.                                         any time the client is notified about the movie */
  111. );
  112. /**
  113.  * Attach a SWF movie to a client in cooperative mode. A movie can only be
  114.  * attached to single client at a time. 
  115.  * This function is ASYNCHRONOUS. Machblue will send an MB_NR_MOVIE_ATTACHED
  116.  * notification to the client at completion of the attach process.
  117.  * @see MB_NR_MOVIE_ATTACHED
  118.  * @return MB_SUCCESS in case of success, MB_FAILURE otherwise. Cases of 
  119.  * failure include invalid handle, etc.
  120.  */
  121. extern mb_error_t mb_movie_attach_cooperative
  122.     mb_movie_t        movie,        /**< handle of movie to attach */
  123.     mb_client_t       client,       /**< client to attach the movie to */
  124.     void             *client_data,  /**< client provided data that will be returned to client 
  125.                                          any time the client is notified about the movie */
  126.     mb_rect_t        *location,     /**< location where the movie should be rendered in 
  127.                                          the client's graphic context */
  128.     int               z_order       /**< z order rank of the movie. O is the default z order. 
  129.                                          high number -> high z order. i.e. z-order 1 is displayed above
  130.                                          z-order 0. */
  131. );
  132. /**
  133.  * Detaches a SWF movie from its client. If the movie was active it is suspended
  134.  * first.
  135.  * This function is ASYNCHRONOUS. Machblue will send an MB_NR_MOVIE_DETACHED
  136.  * notification to the client at completion of the detach process.
  137.  * @see MB_NR_MOVIE_DETACHED
  138.  * @return MB_SUCCESS in case of success, MB_FAILURE otherwise. Cases of 
  139.  * failure include invalid handle, etc.
  140.  */
  141. extern mb_error_t mb_movie_detach
  142.     mb_movie_t movie  /**< handle of movie to detach */
  143. );
  144. /**
  145.  * Activates a SWF movie. 
  146.  * This function is ASYNCHRONOUS. Machblue will send an MB_NR_MOVIE_ACTIVATED 
  147.  * notification to the client at completion of the activation process.
  148.  * @see MB_NR_MOVIE_ACTIVATED
  149.  * @return MB_SUCCESS in case of success, MB_FAILURE otherwise. Cases of 
  150.  * failure include invalid handle, etc.
  151.  */
  152. extern mb_error_t mb_movie_activate
  153. (
  154.     mb_movie_t            movie,        /**< handle of movie to activate */
  155.     mb_activate_reason_t  reason,       /**< activation reason */
  156.     mb_param_t           *params        /**< a { NULL, NULL } teminated array of 
  157.                                                {name, value} pairs of parameters to pass 
  158.                                                to the movie on activation */
  159. );
  160. /**
  161.  * Suspend an active SWF movie. 
  162.  * This function is ASYNCHRONOUS. Machblue will send an MB_NR_MOVIE_SUSPENDED 
  163.  * notification to the client at completion of the suspension process.
  164.  * @see MB_NR_MOVIE_SUSPENDED
  165.  * @return MB_SUCCESS in case of success, MB_FAILURE otherwise. Cases of 
  166.  * failure include invalid handle, etc.
  167.  */
  168. extern mb_error_t mb_movie_suspend
  169.     mb_movie_t          movie,        /**< handle of movie to suspend */
  170.     mb_suspend_reason_t reason        /**< suspension reason */
  171. );
  172. /**
  173.  * Posts an event to the host of an SWF movie.
  174.  * @return MB_SUCCESS in case of success, MB_FAILURE otherwise. Cases of 
  175.  * failure include invalid handle, etc.
  176.  */
  177. extern mb_error_t mb_movie_event_post
  178.     mb_movie_t    movie,        /**< handle of movie to send event to */
  179.     mb_event_t   *event         /**< event to send to the movie */
  180. );
  181. /**
  182.  * Refreshes a client display area. All client movies intersecting with the 
  183.  * specified dirty area will partially or fully refreshed.
  184.  * @return MB_SUCCESS in case of success, MB_FAILURE otherwise. Cases of 
  185.  * failure include invalid handle, etc.
  186.  */
  187. extern mb_error_t mb_client_refresh
  188.     mb_client_t   client,      /**< client to refresh */
  189.     mb_rect_t    *dirty_area   /**< dirty area to refresh */
  190. );
  191. /**
  192.  * Updates a SWF movie to reflect internal movie changes.
  193.  * @return MB_SUCCESS in case of success, MB_FAILURE otherwise. Cases of 
  194.  * failure include invalid handle, etc.
  195.  */
  196. extern mb_error_t mb_movie_update
  197.     mb_movie_t   movie /**< handle of movie to update */
  198. );
  199. /**
  200.  * Sends a Local Connection request to an SWF movie.
  201.  * This function is ASYNCHRONOUS. Machblue will send an MB_NR_LC_SEND_COMPLETE
  202.  * notification to the client at completion of the local connection send request.
  203.  * @see MB_NR_LC_SEND_COMPLETE
  204.  * @return MB_SUCCESS on success, MB_failure otherwise.
  205.  * req_handle is updated with a valid request handle in case of success.
  206.  * Cases of failure include invalid movie handle, etc.
  207.  */
  208. extern mb_error_t mb_movie_lc_request_send
  209.     mb_movie_t        movie,        /**< movie to send the Local Connection request to */
  210.     const mb_char_t  *lc_name,      /**< name of the receiving Local Connection to connect to */  
  211.     const mb_char_t  *method_name,  /**< name of the Local Connection method to invoke */
  212.     mb_param_t       *args,         /**< arguments to pass to the Local Connection method */
  213.     mb_handle_t      *req_handle    /**< pointer to location to store request handle */
  214. );
  215. /** @} */
  216. #ifdef __cplusplus
  217. }      /* extern "C" */  
  218. #endif /* __cplusplus */
  219. #endif /* _MACHBLUE_CLIENT_H_ */