mediacontrol.h
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:11k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * mediacontrol.h: global header for mediacontrol
  3.  *****************************************************************************
  4.  * Copyright (C) 2005-2008 the VideoLAN team
  5.  * $Id: 7f044554b5d3b83dd51f79b59622297bf8b38abf $
  6.  *
  7.  * Authors: Olivier Aubert <olivier.aubert@liris.univ-lyon1.fr>
  8.  *
  9.  * This program is free software; you can redistribute it and/or modify
  10.  * it under the terms of the GNU General Public License as published by
  11.  * the Free Software Foundation; either version 2 of the License, or
  12.  * (at your option) any later version.
  13.  *
  14.  * This program is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  * GNU General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License
  20.  * along with this program; if not, write to the Free Software
  21.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  22.  *****************************************************************************/
  23. /**
  24.  * file
  25.  * This file defines libvlc mediacontrol_* external API
  26.  */
  27. /**
  28.  * defgroup mediacontrol MediaControl
  29.  * This is the MediaControl API, * intended to provide a generic API to movie players.
  30.  *
  31.  * @{
  32.  */
  33. #ifndef VLC_CONTROL_H
  34. #define VLC_CONTROL_H 1
  35. # ifdef __cplusplus
  36. extern "C" {
  37. # endif
  38. #if defined( WIN32 )
  39. #include <windows.h>
  40. typedef HWND WINDOWHANDLE;
  41. #else
  42. typedef int WINDOWHANDLE;
  43. #endif
  44. #include <vlc/libvlc.h>
  45. #include <vlc/mediacontrol_structures.h>
  46. /**
  47.  * mediacontrol_Instance is an opaque structure, defined in
  48.  * mediacontrol_internal.h. API users do not have to mess with it.
  49.  */
  50. typedef struct mediacontrol_Instance mediacontrol_Instance;
  51. /**************************************************************************
  52.  *  Helper functions
  53.  ***************************************************************************/
  54. /**
  55.  * Free a RGBPicture structure.
  56.  * param pic: the RGBPicture structure
  57.  */
  58. VLC_PUBLIC_API void mediacontrol_RGBPicture__free( mediacontrol_RGBPicture *pic );
  59. VLC_PUBLIC_API void mediacontrol_PlaylistSeq__free( mediacontrol_PlaylistSeq *ps );
  60. /**
  61.  * Free a StreamInformation structure.
  62.  * param pic: the StreamInformation structure
  63.  */
  64. VLC_PUBLIC_API void
  65. mediacontrol_StreamInformation__free( mediacontrol_StreamInformation* p_si );
  66. /**
  67.  * Instanciate and initialize an exception structure.
  68.  * return the exception
  69.  */
  70. VLC_PUBLIC_API mediacontrol_Exception *
  71.   mediacontrol_exception_create( void );
  72. /**
  73.  * Initialize an existing exception structure.
  74.  * param p_exception the exception to initialize.
  75.  */
  76. VLC_PUBLIC_API void
  77.   mediacontrol_exception_init( mediacontrol_Exception *exception );
  78. /**
  79.  * Clean up an existing exception structure after use.
  80.  * param p_exception the exception to clean up.
  81.  */
  82. VLC_PUBLIC_API void
  83. mediacontrol_exception_cleanup( mediacontrol_Exception *exception );
  84. /**
  85.  * Free an exception structure created with mediacontrol_exception_create().
  86.  * return the exception
  87.  */
  88. VLC_PUBLIC_API void mediacontrol_exception_free(mediacontrol_Exception *exception);
  89. /*****************************************************************************
  90.  * Core functions
  91.  *****************************************************************************/
  92. /**
  93.  * Create a MediaControl instance with parameters
  94.  * param argc the number of arguments
  95.  * param argv parameters
  96.  * param exception an initialized exception pointer
  97.  * return a mediacontrol_Instance
  98.  */
  99. VLC_PUBLIC_API mediacontrol_Instance *
  100. mediacontrol_new( int argc, char **argv, mediacontrol_Exception *exception );
  101. /**
  102.  * Create a MediaControl instance from an existing libvlc instance
  103.  * param p_instance the libvlc instance
  104.  * param exception an initialized exception pointer
  105.  * return a mediacontrol_Instance
  106.  */
  107. VLC_PUBLIC_API mediacontrol_Instance *
  108. mediacontrol_new_from_instance( libvlc_instance_t* p_instance,
  109.                 mediacontrol_Exception *exception );
  110. /**
  111.  * Get the associated libvlc instance
  112.  * param self: the mediacontrol instance
  113.  * return a libvlc instance
  114.  */
  115. VLC_PUBLIC_API libvlc_instance_t*
  116. mediacontrol_get_libvlc_instance( mediacontrol_Instance* self );
  117. /**
  118.  * Get the associated libvlc_media_player
  119.  * param self: the mediacontrol instance
  120.  * return a libvlc_media_player_t instance
  121.  */
  122. VLC_PUBLIC_API libvlc_media_player_t*
  123. mediacontrol_get_media_player( mediacontrol_Instance* self );
  124. /**
  125.  * Get the current position
  126.  * param self the mediacontrol instance
  127.  * param an_origin the position origin
  128.  * param a_key the position unit
  129.  * param exception an initialized exception pointer
  130.  * return a mediacontrol_Position
  131.  */
  132. VLC_PUBLIC_API mediacontrol_Position * mediacontrol_get_media_position(
  133.                          mediacontrol_Instance *self,
  134.                          const mediacontrol_PositionOrigin an_origin,
  135.                          const mediacontrol_PositionKey a_key,
  136.                          mediacontrol_Exception *exception );
  137. /**
  138.  * Set the position
  139.  * param self the mediacontrol instance
  140.  * param a_position a mediacontrol_Position
  141.  * param exception an initialized exception pointer
  142.  */
  143. VLC_PUBLIC_API void mediacontrol_set_media_position( mediacontrol_Instance *self,
  144.                                       const mediacontrol_Position *a_position,
  145.                                       mediacontrol_Exception *exception );
  146. /**
  147.  * Play the movie at a given position
  148.  * param self the mediacontrol instance
  149.  * param a_position a mediacontrol_Position
  150.  * param exception an initialized exception pointer
  151.  */
  152. VLC_PUBLIC_API void mediacontrol_start( mediacontrol_Instance *self,
  153.                          const mediacontrol_Position *a_position,
  154.                          mediacontrol_Exception *exception );
  155. /**
  156.  * Pause the movie at a given position
  157.  * param self the mediacontrol instance
  158.  * param exception an initialized exception pointer
  159.  */
  160. VLC_PUBLIC_API void mediacontrol_pause( mediacontrol_Instance *self,
  161.                          mediacontrol_Exception *exception );
  162. /**
  163.  * Resume the movie at a given position
  164.  * param self the mediacontrol instance
  165.  * param exception an initialized exception pointer
  166.  */
  167. VLC_PUBLIC_API void mediacontrol_resume( mediacontrol_Instance *self,
  168.                           mediacontrol_Exception *exception );
  169. /**
  170.  * Stop the movie at a given position
  171.  * param self the mediacontrol instance
  172.  * param exception an initialized exception pointer
  173.  */
  174. VLC_PUBLIC_API void mediacontrol_stop( mediacontrol_Instance *self,
  175.                         mediacontrol_Exception *exception );
  176. /**
  177.  * Exit the player
  178.  * param self the mediacontrol instance
  179.  */
  180. VLC_PUBLIC_API void mediacontrol_exit( mediacontrol_Instance *self );
  181. /**
  182.  * Set the MRL to be played.
  183.  * param self the mediacontrol instance
  184.  * param psz_file the MRL
  185.  * param exception an initialized exception pointer
  186.  */
  187. VLC_PUBLIC_API void mediacontrol_set_mrl( mediacontrol_Instance *self,
  188.                                      const char* psz_file,
  189.                                      mediacontrol_Exception *exception );
  190. /**
  191.  * Get the MRL to be played.
  192.  * param self the mediacontrol instance
  193.  * param exception an initialized exception pointer
  194.  */
  195. VLC_PUBLIC_API char * mediacontrol_get_mrl( mediacontrol_Instance *self,
  196.                                             mediacontrol_Exception *exception );
  197. /*****************************************************************************
  198.  * A/V functions
  199.  *****************************************************************************/
  200. /**
  201.  * Get a snapshot
  202.  * param self the mediacontrol instance
  203.  * param a_position the desired position (ignored for now)
  204.  * param exception an initialized exception pointer
  205.  * return a RGBpicture
  206.  */
  207. VLC_PUBLIC_API mediacontrol_RGBPicture *
  208.   mediacontrol_snapshot( mediacontrol_Instance *self,
  209.                          const mediacontrol_Position *a_position,
  210.                          mediacontrol_Exception *exception );
  211. /**
  212.  *  Displays the message string, between "begin" and "end" positions.
  213.  * param self the mediacontrol instance
  214.  * param message the message to display
  215.  * param begin the begin position
  216.  * param end the end position
  217.  * param exception an initialized exception pointer
  218.  */
  219. VLC_PUBLIC_API void mediacontrol_display_text( mediacontrol_Instance *self,
  220.                                 const char *message,
  221.                                 const mediacontrol_Position *begin,
  222.                                 const mediacontrol_Position *end,
  223.                                 mediacontrol_Exception *exception );
  224. /**
  225.  *  Get information about a stream
  226.  * param self the mediacontrol instance
  227.  * param a_key the time unit
  228.  * param exception an initialized exception pointer
  229.  * return a mediacontrol_StreamInformation
  230.  */
  231. VLC_PUBLIC_API mediacontrol_StreamInformation *
  232.   mediacontrol_get_stream_information( mediacontrol_Instance *self,
  233.                                        mediacontrol_PositionKey a_key,
  234.                                        mediacontrol_Exception *exception );
  235. /**
  236.  * Get the current audio level, normalized in [0..100]
  237.  * param self the mediacontrol instance
  238.  * param exception an initialized exception pointer
  239.  * return the volume
  240.  */
  241. VLC_PUBLIC_API unsigned short
  242.   mediacontrol_sound_get_volume( mediacontrol_Instance *self,
  243.                                  mediacontrol_Exception *exception );
  244. /**
  245.  * Set the audio level
  246.  * param self the mediacontrol instance
  247.  * param volume the volume (normalized in [0..100])
  248.  * param exception an initialized exception pointer
  249.  */
  250. VLC_PUBLIC_API void mediacontrol_sound_set_volume( mediacontrol_Instance *self,
  251.                                     const unsigned short volume,
  252.                                     mediacontrol_Exception *exception );
  253. /**
  254.  * Set the video output window
  255.  * param self the mediacontrol instance
  256.  * param visual_id the Xid or HWND, depending on the platform
  257.  * param exception an initialized exception pointer
  258.  */
  259. VLC_PUBLIC_API int mediacontrol_set_visual( mediacontrol_Instance *self,
  260.                                     WINDOWHANDLE visual_id,
  261.                                     mediacontrol_Exception *exception );
  262. /**
  263.  * Get the current playing rate, in percent
  264.  * param self the mediacontrol instance
  265.  * param exception an initialized exception pointer
  266.  * return the rate
  267.  */
  268. VLC_PUBLIC_API int mediacontrol_get_rate( mediacontrol_Instance *self,
  269.                mediacontrol_Exception *exception );
  270. /**
  271.  * Set the playing rate, in percent
  272.  * param self the mediacontrol instance
  273.  * param rate the desired rate
  274.  * param exception an initialized exception pointer
  275.  */
  276. VLC_PUBLIC_API void mediacontrol_set_rate( mediacontrol_Instance *self,
  277.                 const int rate,
  278.                 mediacontrol_Exception *exception );
  279. /**
  280.  * Get current fullscreen status
  281.  * param self the mediacontrol instance
  282.  * param exception an initialized exception pointer
  283.  * return the fullscreen status
  284.  */
  285. VLC_PUBLIC_API int mediacontrol_get_fullscreen( mediacontrol_Instance *self,
  286.                  mediacontrol_Exception *exception );
  287. /**
  288.  * Set fullscreen status
  289.  * param self the mediacontrol instance
  290.  * param b_fullscreen the desired status
  291.  * param exception an initialized exception pointer
  292.  */
  293. VLC_PUBLIC_API void mediacontrol_set_fullscreen( mediacontrol_Instance *self,
  294.                   const int b_fullscreen,
  295.                   mediacontrol_Exception *exception );
  296. # ifdef __cplusplus
  297. }
  298. # endif
  299. #endif
  300. /** @} */