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

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * control.h: private header for mediacontrol
  3.  *****************************************************************************
  4.  * Copyright (C) 2005 the VideoLAN team
  5.  * $Id: 3e741ea02f88dc06fbf007b243ce79787f9f64d3 $
  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. #ifndef _VLC_MEDIACONTROL_INTERNAL_H
  24. #define _VLC_MEDIACONTROL_INTERNAL_H 1
  25. # ifdef __cplusplus
  26. extern "C" {
  27. # endif
  28. #include <vlc/vlc.h>
  29. #include <vlc/mediacontrol_structures.h>
  30. #include <vlc/libvlc_structures.h>
  31. #include <vlc/libvlc.h>
  32. struct mediacontrol_Instance {
  33.     libvlc_instance_t * p_instance;
  34.     libvlc_media_player_t * p_media_player;
  35. };
  36. libvlc_time_t private_mediacontrol_unit_convert( libvlc_media_player_t *p_media_player,
  37.                                                  mediacontrol_PositionKey from,
  38.                                                  mediacontrol_PositionKey to,
  39.                                                  int64_t value );
  40. libvlc_time_t private_mediacontrol_position2microsecond( libvlc_media_player_t *p_media_player,
  41.                                                          const mediacontrol_Position *pos );
  42. /**
  43.  * Allocate a RGBPicture structure.
  44.  * param datasize: the size of the data
  45.  */
  46. mediacontrol_RGBPicture *private_mediacontrol_RGBPicture__alloc( int datasize );
  47. mediacontrol_RGBPicture *private_mediacontrol_createRGBPicture( int, int, long, int64_t l_date, char *, int);
  48. #define RAISE( c, m )  if( exception ) { exception->code = c;    
  49.                                          exception->message = strdup(m); }
  50. #define RAISE_NULL( c, m ) do{ RAISE( c, m ); return NULL; } while(0)
  51. #define RAISE_VOID( c, m ) do{ RAISE( c, m ); return;      } while(0)
  52. #define HANDLE_LIBVLC_EXCEPTION_VOID( e )  if( libvlc_exception_raised( e ) ) {    
  53.     RAISE( mediacontrol_InternalException, libvlc_exception_get_message( e )); 
  54.         libvlc_exception_clear( e ); 
  55.         return; }
  56. #define HANDLE_LIBVLC_EXCEPTION_NULL( e )  if( libvlc_exception_raised( e ) ) {     
  57.         RAISE( mediacontrol_InternalException, libvlc_exception_get_message( e )); 
  58.         libvlc_exception_clear( e ); 
  59.         return NULL; }
  60. #define HANDLE_LIBVLC_EXCEPTION_ZERO( e )  if( libvlc_exception_raised( e ) ) { 
  61.         RAISE( mediacontrol_InternalException, libvlc_exception_get_message( e )); 
  62.         libvlc_exception_clear( e ); 
  63.         return 0; }
  64. # ifdef __cplusplus
  65. }
  66. # endif
  67. #endif