X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=bindings%2Fpython%2Fvlcglue.h;h=d6e4c4416588e3dd2cba6f5d65c2572ced1f8115;hb=62dd14548820fb0966e6b90d586183f74a427e4b;hp=16f0bd47e60a3689e8fbffa1b0796068629cd737;hpb=7b89d13c0ef3a66054f1e61db7ddf243fddebccd;p=vlc diff --git a/bindings/python/vlcglue.h b/bindings/python/vlcglue.h index 16f0bd47e6..d6e4c44165 100644 --- a/bindings/python/vlcglue.h +++ b/bindings/python/vlcglue.h @@ -2,7 +2,7 @@ * vlcglue.h: Main header for the Python binding ***************************************************************************** * Copyright (C) 1998-2004 the VideoLAN team - * $Id: vlcglue.h 16752 2006-09-20 11:10:44Z oaubert $ + * $Id$ * * Authors: Olivier Aubert * Clément Stenac @@ -33,16 +33,23 @@ #include #include +/* Python 2.5 64-bit support compatibility define */ +#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN) +typedef int Py_ssize_t; +#define PY_SSIZE_T_MAX INT_MAX +#define PY_SSIZE_T_MIN INT_MIN +#endif + #define SELF ((MediaControl*)self) /********************************************************************** * Exceptions handling **********************************************************************/ -#define MC_TRY exception=mediacontrol_exception_init(exception) +#define MC_TRY exception=mediacontrol_exception_create( ) #define MC_EXCEPT \ - if( exception->code ) { \ + if( exception && exception->code ) { \ PyObject *py_exc = MediaControl_InternalException; \ switch( exception->code ) { \ case mediacontrol_InternalException: \ @@ -64,14 +71,25 @@ PyErr_SetString( py_exc, exception->message ); \ mediacontrol_exception_free( exception ); \ return NULL; \ - } else { mediacontrol_exception_free( exception ); } + } else if( exception ) { mediacontrol_exception_free( exception ); } PyObject *MediaControl_InternalException; PyObject *MediaControl_PositionKeyNotSupported; PyObject *MediaControl_PositionOriginNotSupported; PyObject *MediaControl_InvalidPosition; PyObject *MediaControl_PlaylistException; -PyObject *vlcInstance_Exception; +PyObject *vlc_Exception; + +/********************************************************************** + * vlc.Instance Object + **********************************************************************/ +typedef struct +{ + PyObject_HEAD + libvlc_instance_t* p_instance; +} vlcInstance; + +#define LIBVLC_INSTANCE ((vlcInstance*)self) /********************************************************************** * MediaControl Object @@ -80,6 +98,7 @@ typedef struct { PyObject_HEAD mediacontrol_Instance* mc; + vlcInstance *vlc_instance; } MediaControl; /********************************************************************** @@ -94,37 +113,38 @@ typedef struct } PyPosition; /********************************************************************** - * vlc.Instance Object + * vlc.MediaPlayer Object **********************************************************************/ typedef struct { PyObject_HEAD - libvlc_instance_t* p_instance; -} vlcInstance; - -#define LIBVLC_INSTANCE ((vlcInstance*)self) + libvlc_media_player_t* p_mp; +} vlcMediaPlayer; /********************************************************************** - * vlc.Input Object + * vlc.Media Object **********************************************************************/ typedef struct { PyObject_HEAD - libvlc_input_t* p_input; -} vlcInput; + libvlc_media_t* p_media; +} vlcMedia; /* Forward declarations */ staticforward PyTypeObject MediaControl_Type; staticforward PyTypeObject PyPosition_Type; staticforward PyTypeObject vlcInstance_Type; -staticforward PyTypeObject vlcInput_Type; +staticforward PyTypeObject vlcMediaPlayer_Type; +staticforward PyTypeObject vlcMedia_Type; -#define LIBVLC_INPUT ((vlcInput*)self) +#define LIBVLC_INSTANCE ((vlcInstance*)self) +#define LIBVLC_MEDIAPLAYER ((vlcMediaPlayer*)self) +#define LIBVLC_MEDIA ((vlcMedia*)self) #define LIBVLC_TRY libvlc_exception_init( &ex ); #define LIBVLC_EXCEPT if( libvlc_exception_raised( &ex ) ) { \ - PyObject *py_exc = vlcInstance_Exception; \ + PyObject *py_exc = vlc_Exception; \ PyErr_SetString( py_exc, libvlc_exception_get_message( &ex ) ); \ return NULL; \ }