#include <vlc/mediacontrol_structures.h>
#include <vlc/mediacontrol.h>
+/* 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: \
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;
-
-/**********************************************************************
- * VLC Object
- **********************************************************************/
-#define VLCSELF ( ( vlcObject* )self )
+PyObject *vlc_Exception;
/**********************************************************************
- * VLCObject Object
+ * vlc.Instance Object
**********************************************************************/
typedef struct
{
PyObject_HEAD
- vlc_object_t* p_object;
- int b_released;
-} vlcObject;
+ libvlc_instance_t* p_instance;
+} vlcInstance;
+
+#define LIBVLC_INSTANCE ((vlcInstance*)self)
/**********************************************************************
* MediaControl Object
{
PyObject_HEAD
mediacontrol_Instance* mc;
+ vlcInstance *vlc_instance;
} MediaControl;
/**********************************************************************
} 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 vlcObject_Type;
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; \
}