]> git.sesse.net Git - vlc/blobdiff - bindings/python/vlc_instance.c
python: remove get_vlc_id
[vlc] / bindings / python / vlc_instance.c
index 332eb2655970ff76d8c72e3f38ef39ace21301b9..52e8c89567b7ac9348600da87047c916bf0a6fe6 100644 (file)
@@ -1,10 +1,10 @@
 /*****************************************************************************
  * vlc_instance.c: vlc.Instance binding
  *****************************************************************************
- * Copyright (C) 2006 the VideoLAN team
+ * Copyright (C) 2006,2007,2008,2009 the VideoLAN team
  * $Id$
  *
- * Authors: Olivier Aubert <oaubert at bat710.univ-lyon1.fr>
+ * Authors: Olivier Aubert <olivier.aubert at liris.cnrs.fr>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,9 +28,6 @@ pyoptions_to_args(PyObject *py_options, char*** pppsz_args)
 {
     Py_ssize_t i_size;
     Py_ssize_t  i_index;
-    char** ppsz_args = *pppsz_args;
-    ppsz_args = NULL;
 
     Py_INCREF( py_options );
     if( ! PySequence_Check( py_options ) )
@@ -39,7 +36,9 @@ pyoptions_to_args(PyObject *py_options, char*** pppsz_args)
         return -1;
     }
     i_size = PySequence_Size( py_options );
-    ppsz_args = malloc( ( i_size + 1 ) * sizeof( char * ) );
+
+    char **ppsz_args = *pppsz_args = malloc( ( i_size + 1 ) * sizeof( char * ) );
+
     if( ! ppsz_args )
     {
         PyErr_SetString( PyExc_MemoryError, "Out of memory" );
@@ -81,7 +80,8 @@ vlcInstance_new( PyTypeObject *type, PyObject *args, PyObject *kwds )
     char** ppsz_args = NULL;
     int i_size = 0;
 
-    if( PyArg_ParseTuple( args, "O", &py_list ) )
+    fprintf(stderr, "Instantiating\n");
+    if( PyArg_ParseTuple( args, "|O", &py_list ) )
     {
         i_size = pyoptions_to_args( py_list, &ppsz_args );
         if( i_size < 0 )
@@ -98,7 +98,7 @@ vlcInstance_new( PyTypeObject *type, PyObject *args, PyObject *kwds )
 
     Py_BEGIN_ALLOW_THREADS
     LIBVLC_TRY
-    LIBVLC_INSTANCE->p_instance = libvlc_new( i_size, ppsz_args, &ex );
+    LIBVLC_INSTANCE(self) = libvlc_new( i_size, ppsz_args, &ex );
     free_args( i_size, ppsz_args );
     LIBVLC_EXCEPT
     Py_END_ALLOW_THREADS
@@ -110,279 +110,33 @@ vlcInstance_new( PyTypeObject *type, PyObject *args, PyObject *kwds )
 static void
 vlcInstance_dealloc( PyObject *self )
 {
-    libvlc_release( LIBVLC_INSTANCE->p_instance );
+    libvlc_release( LIBVLC_INSTANCE(self) );
     PyObject_DEL( self );
 }
 
 static PyObject *
-vlcInstance_get_vlc_id( PyObject *self, PyObject *args )
-{
-    return Py_BuildValue( "i", libvlc_get_vlc_id( LIBVLC_INSTANCE->p_instance ) );
-}
-
-/* Set loop variable */
-static PyObject *
-vlcInstance_playlist_loop( PyObject *self, PyObject *args )
-{
-    libvlc_exception_t ex;
-    int i_loop = 0;
-
-    if( !PyArg_ParseTuple( args, "i", &i_loop ) )
-        return NULL;
-
-    LIBVLC_TRY;
-    libvlc_playlist_loop( LIBVLC_INSTANCE->p_instance, i_loop, &ex );
-    LIBVLC_EXCEPT;
-
-    Py_INCREF( Py_None );
-    return Py_None;
-}
-
-/* Playlist play. 2 parameters: i_id, the id to play
-   l_options: a list of options */
-static PyObject *
-vlcInstance_playlist_play( PyObject *self, PyObject *args )
-{
-    libvlc_exception_t ex;
-    int i_id = -1;
-    PyObject *py_options = NULL;
-    int i_size = 0;
-    char** ppsz_args = NULL;
-
-    if( !PyArg_ParseTuple( args, "|iO", &i_id, &py_options ) )
-        return NULL;
-
-    if( py_options )
-    {
-        i_size = pyoptions_to_args( py_options, &ppsz_args );
-    }
-
-    LIBVLC_TRY;
-    libvlc_playlist_play( LIBVLC_INSTANCE->p_instance, i_id, i_size, ppsz_args, &ex );
-    free_args( i_size, ppsz_args );
-    LIBVLC_EXCEPT;
-
-    Py_INCREF( Py_None );
-    return Py_None;
-}
-
-static PyObject *
-vlcInstance_playlist_pause( PyObject *self, PyObject *args )
-{
-    libvlc_exception_t ex;
-    LIBVLC_TRY;
-    libvlc_playlist_pause( LIBVLC_INSTANCE->p_instance, &ex );
-    LIBVLC_EXCEPT;
-    Py_INCREF( Py_None );
-    return Py_None;
-}
-
-static PyObject *
-vlcInstance_playlist_isplaying( PyObject *self, PyObject *args )
-{
-    libvlc_exception_t ex;
-    int i_ret;
-
-    LIBVLC_TRY;
-    i_ret = libvlc_playlist_isplaying( LIBVLC_INSTANCE->p_instance, &ex );
-    LIBVLC_EXCEPT;
-    return Py_BuildValue( "i", i_ret );
-}
-
-static PyObject *
-vlcInstance_playlist_items_count( PyObject *self, PyObject *args )
-{
-    libvlc_exception_t ex;
-    int i_ret;
-
-    LIBVLC_TRY;
-    i_ret = libvlc_playlist_items_count( LIBVLC_INSTANCE->p_instance, &ex );
-    LIBVLC_EXCEPT;
-    return Py_BuildValue( "i", i_ret );
-}
-
-static PyObject *
-vlcInstance_playlist_stop( PyObject *self, PyObject *args )
-{
-    libvlc_exception_t ex;
-    LIBVLC_TRY;
-    libvlc_playlist_stop( LIBVLC_INSTANCE->p_instance, &ex );
-    LIBVLC_EXCEPT;
-    Py_INCREF( Py_None );
-    return Py_None;
-}
-
-static PyObject *
-vlcInstance_playlist_next( PyObject *self, PyObject *args )
-{
-    libvlc_exception_t ex;
-    LIBVLC_TRY;
-    libvlc_playlist_next( LIBVLC_INSTANCE->p_instance, &ex );
-    LIBVLC_EXCEPT;
-    Py_INCREF( Py_None );
-    return Py_None;
-}
-
-static PyObject *
-vlcInstance_playlist_prev( PyObject *self, PyObject *args )
-{
-    libvlc_exception_t ex;
-    LIBVLC_TRY;
-    libvlc_playlist_prev( LIBVLC_INSTANCE->p_instance, &ex );
-    LIBVLC_EXCEPT;
-    Py_INCREF( Py_None );
-    return Py_None;
-}
-
-static PyObject *
-vlcInstance_playlist_clear( PyObject *self, PyObject *args )
-{
-    libvlc_exception_t ex;
-    LIBVLC_TRY;
-    libvlc_playlist_clear( LIBVLC_INSTANCE->p_instance, &ex );
-    LIBVLC_EXCEPT;
-    Py_INCREF( Py_None );
-    return Py_None;
-}
-
-/* Add a playlist item. Main parameter: URI.
-   Optional parameters: name, options */
-static PyObject *
-vlcInstance_playlist_add( PyObject *self, PyObject *args)
-{
-    libvlc_exception_t ex;
-    int i_ret;
-    char* psz_uri = NULL;
-    char* psz_name = NULL;
-    PyObject *py_options = NULL;
-    int i_size = 0;
-    char** ppsz_args = NULL;
-
-    if( !PyArg_ParseTuple( args, "s|sO", &psz_uri, &psz_name, &py_options ) )
-        return NULL;
-
-    if( !psz_name )
-    {
-        /* Set a default name */
-        psz_name = strdup( psz_uri );
-    }
-
-    if( py_options )
-    {
-        i_size = pyoptions_to_args( py_options, &ppsz_args );
-    }
-
-    LIBVLC_TRY;
-    if( ppsz_args )
-    {
-        i_ret = libvlc_playlist_add_extended( LIBVLC_INSTANCE->p_instance,
-                                              psz_uri,
-                                              psz_name,
-                                              i_size,
-                                              ppsz_args,
-                                              &ex );
-        free_args( i_size, ppsz_args );
-    }
-    else
-    {
-        i_ret = libvlc_playlist_add( LIBVLC_INSTANCE->p_instance,
-                                     psz_uri,
-                                     psz_name,
-                                     &ex );
-    }
-    LIBVLC_EXCEPT;
-
-    return Py_BuildValue( "i", i_ret );
-}
-
-static PyObject *
-vlcInstance_playlist_delete_item( PyObject *self, PyObject *args )
-{
-    libvlc_exception_t ex;
-    int i_id;
-    int i_ret;
-
-    if( !PyArg_ParseTuple( args, "i", &i_id ) )
-        return NULL;
-
-    LIBVLC_TRY;
-    i_ret = libvlc_playlist_delete_item( LIBVLC_INSTANCE->p_instance, i_id, &ex );
-    LIBVLC_EXCEPT;
-
-    return Py_BuildValue( "i", i_ret );
-}
-
-static PyObject *
-vlcInstance_playlist_get_media_instance( PyObject *self, PyObject *args )
+vlcInstance_new_media_player( PyObject *self, PyObject *args )
 {
     libvlc_exception_t ex;
-    libvlc_media_instance_t *p_mi;
-    vlcMediaInstance *p_ret;
+    libvlc_media_player_t *p_mp;
+    vlcMediaPlayer *p_ret;
 
     LIBVLC_TRY;
-    p_mi = libvlc_playlist_get_media_instance( LIBVLC_INSTANCE->p_instance, &ex );
+    p_mp = libvlc_media_player_new( LIBVLC_INSTANCE(self), &ex );
     LIBVLC_EXCEPT;
 
-    p_ret = PyObject_New( vlcMediaInstance, &vlcMediaInstance_Type );
-    p_ret->p_mi = p_mi;
+    p_ret = PyObject_New( vlcMediaPlayer, &vlcMediaPlayer_Type );
+    p_ret->p_mp = p_mp;
     Py_INCREF( p_ret ); /* Ah bon ? */
     return ( PyObject * )p_ret;
 }
 
-static PyObject *
-vlcInstance_video_set_parent( PyObject *self, PyObject *args )
-{
-    libvlc_exception_t ex;
-    int i_drawable;
-
-    if( !PyArg_ParseTuple( args, "i", &i_drawable ) )
-        return NULL;
-
-    LIBVLC_TRY;
-    libvlc_video_set_parent( LIBVLC_INSTANCE->p_instance, (libvlc_drawable_t) i_drawable, &ex );
-    LIBVLC_EXCEPT;
-
-    Py_INCREF( Py_None );
-    return Py_None;
-}
-
-static PyObject *
-vlcInstance_video_get_parent( PyObject *self, PyObject *args )
-{
-    libvlc_exception_t ex;
-    libvlc_drawable_t i_ret;
-
-    LIBVLC_TRY;
-    i_ret = libvlc_video_get_parent( LIBVLC_INSTANCE->p_instance, &ex );
-    LIBVLC_EXCEPT;
-
-    return Py_BuildValue( "L", i_ret );
-}
-
-static PyObject *
-vlcInstance_video_set_size( PyObject *self, PyObject *args )
-{
-    libvlc_exception_t ex;
-    int i_width;
-    int i_height;
-
-    if( !PyArg_ParseTuple( args, "ii", &i_width, &i_height ) )
-        return NULL;
-
-    LIBVLC_TRY;
-    libvlc_video_set_size( LIBVLC_INSTANCE->p_instance, i_width, i_height, &ex );
-    LIBVLC_EXCEPT;
-
-    Py_INCREF( Py_None );
-    return Py_None;
-}
-
 static PyObject *
 vlcInstance_audio_toggle_mute( PyObject *self, PyObject *args )
 {
     libvlc_exception_t ex;
     LIBVLC_TRY;
-    libvlc_audio_toggle_mute( LIBVLC_INSTANCE->p_instance, &ex );
+    libvlc_audio_toggle_mute( LIBVLC_INSTANCE(self), &ex );
     LIBVLC_EXCEPT;
     Py_INCREF( Py_None );
     return Py_None;
@@ -395,7 +149,7 @@ vlcInstance_audio_get_mute( PyObject *self, PyObject *args )
     int i_ret;
 
     LIBVLC_TRY;
-    i_ret = libvlc_audio_get_mute( LIBVLC_INSTANCE->p_instance, &ex );
+    i_ret = libvlc_audio_get_mute( LIBVLC_INSTANCE(self), &ex );
     LIBVLC_EXCEPT;
     return Py_BuildValue( "i", i_ret );
 }
@@ -410,7 +164,7 @@ vlcInstance_audio_set_mute( PyObject *self, PyObject *args )
         return NULL;
 
     LIBVLC_TRY;
-    libvlc_audio_set_mute( LIBVLC_INSTANCE->p_instance, i_mute, &ex );
+    libvlc_audio_set_mute( LIBVLC_INSTANCE(self), i_mute, &ex );
     LIBVLC_EXCEPT;
     Py_INCREF( Py_None );
     return Py_None;
@@ -423,7 +177,7 @@ vlcInstance_audio_get_volume( PyObject *self, PyObject *args )
     int i_ret;
 
     LIBVLC_TRY;
-    i_ret = libvlc_audio_get_volume( LIBVLC_INSTANCE->p_instance, &ex );
+    i_ret = libvlc_audio_get_volume( LIBVLC_INSTANCE(self), &ex );
     LIBVLC_EXCEPT;
     return Py_BuildValue( "i", i_ret );
 }
@@ -438,7 +192,7 @@ vlcInstance_audio_set_volume( PyObject *self, PyObject *args )
         return NULL;
 
     LIBVLC_TRY;
-    libvlc_audio_set_volume( LIBVLC_INSTANCE->p_instance, i_volume, &ex );
+    libvlc_audio_set_volume( LIBVLC_INSTANCE(self), i_volume, &ex );
     LIBVLC_EXCEPT;
     Py_INCREF( Py_None );
     return Py_None;
@@ -451,7 +205,7 @@ vlcInstance_audio_get_channel( PyObject *self, PyObject *args )
     int i_ret;
 
     LIBVLC_TRY;
-    i_ret = libvlc_audio_get_channel( LIBVLC_INSTANCE->p_instance, &ex );
+    i_ret = libvlc_audio_get_channel( LIBVLC_INSTANCE(self), &ex );
     LIBVLC_EXCEPT;
     return Py_BuildValue( "i", i_ret );
 }
@@ -466,7 +220,7 @@ vlcInstance_audio_set_channel( PyObject *self, PyObject *args )
         return NULL;
 
     LIBVLC_TRY;
-    libvlc_audio_set_channel( LIBVLC_INSTANCE->p_instance, i_channel, &ex );
+    libvlc_audio_set_channel( LIBVLC_INSTANCE(self), i_channel, &ex );
     LIBVLC_EXCEPT;
     Py_INCREF( Py_None );
     return Py_None;
@@ -494,14 +248,14 @@ vlcInstance_vlm_add_broadcast( PyObject *self, PyObject *args, PyObject *kwds )
                       &psz_input, &psz_output,
                       &py_options, &i_enable, &i_loop ) )
         return NULL;
+
     if( py_options )
     {
         i_size = pyoptions_to_args( py_options, &ppsz_args );
     }
+
     LIBVLC_TRY;
-    libvlc_vlm_add_broadcast( LIBVLC_INSTANCE->p_instance,
+    libvlc_vlm_add_broadcast( LIBVLC_INSTANCE(self),
                               psz_name, psz_input, psz_output,
                               i_size, ppsz_args, i_enable, i_loop, &ex);
     free_args( i_size, ppsz_args );
@@ -520,7 +274,7 @@ vlcInstance_vlm_del_media( PyObject *self, PyObject *args )
         return NULL;
 
     LIBVLC_TRY;
-    libvlc_vlm_del_media( LIBVLC_INSTANCE->p_instance, psz_name, &ex);
+    libvlc_vlm_del_media( LIBVLC_INSTANCE(self), psz_name, &ex);
     LIBVLC_EXCEPT;
     Py_INCREF( Py_None );
     return Py_None;
@@ -532,12 +286,12 @@ vlcInstance_vlm_set_enabled( PyObject *self, PyObject *args )
     libvlc_exception_t ex;
     char* psz_name;
     int i_enabled;
+
     if( !PyArg_ParseTuple( args, "si", &psz_name, &i_enabled ) )
         return NULL;
 
     LIBVLC_TRY;
-    libvlc_vlm_set_enabled( LIBVLC_INSTANCE->p_instance, psz_name, i_enabled, &ex);
+    libvlc_vlm_set_enabled( LIBVLC_INSTANCE(self), psz_name, i_enabled, &ex);
     LIBVLC_EXCEPT;
     Py_INCREF( Py_None );
     return Py_None;
@@ -549,12 +303,12 @@ vlcInstance_vlm_set_output( PyObject *self, PyObject *args )
     libvlc_exception_t ex;
     char* psz_name;
     char* psz_output;
+
     if( !PyArg_ParseTuple( args, "ss", &psz_name, &psz_output ) )
         return NULL;
 
     LIBVLC_TRY;
-    libvlc_vlm_set_output( LIBVLC_INSTANCE->p_instance, psz_name, psz_output, &ex);
+    libvlc_vlm_set_output( LIBVLC_INSTANCE(self), psz_name, psz_output, &ex);
     LIBVLC_EXCEPT;
     Py_INCREF( Py_None );
     return Py_None;
@@ -566,12 +320,12 @@ vlcInstance_vlm_set_input( PyObject *self, PyObject *args )
     libvlc_exception_t ex;
     char* psz_name;
     char* psz_input;
+
     if( !PyArg_ParseTuple( args, "ss", &psz_name, &psz_input ) )
         return NULL;
 
     LIBVLC_TRY;
-    libvlc_vlm_set_input( LIBVLC_INSTANCE->p_instance, psz_name, psz_input, &ex);
+    libvlc_vlm_set_input( LIBVLC_INSTANCE(self), psz_name, psz_input, &ex);
     LIBVLC_EXCEPT;
     Py_INCREF( Py_None );
     return Py_None;
@@ -583,12 +337,12 @@ vlcInstance_vlm_add_input( PyObject *self, PyObject *args )
     libvlc_exception_t ex;
     char* psz_name;
     char* psz_input;
+
     if( !PyArg_ParseTuple( args, "ss", &psz_name, &psz_input ) )
         return NULL;
 
     LIBVLC_TRY;
-    libvlc_vlm_add_input( LIBVLC_INSTANCE->p_instance, psz_name, psz_input, &ex);
+    libvlc_vlm_add_input( LIBVLC_INSTANCE(self), psz_name, psz_input, &ex);
     LIBVLC_EXCEPT;
     Py_INCREF( Py_None );
     return Py_None;
@@ -600,12 +354,12 @@ vlcInstance_vlm_set_loop( PyObject *self, PyObject *args )
     libvlc_exception_t ex;
     char* psz_name;
     int i_loop;
+
     if( !PyArg_ParseTuple( args, "si", &psz_name, &i_loop ) )
         return NULL;
 
     LIBVLC_TRY;
-    libvlc_vlm_set_loop( LIBVLC_INSTANCE->p_instance, psz_name, i_loop, &ex);
+    libvlc_vlm_set_loop( LIBVLC_INSTANCE(self), psz_name, i_loop, &ex);
     LIBVLC_EXCEPT;
     Py_INCREF( Py_None );
     return Py_None;
@@ -631,14 +385,14 @@ vlcInstance_vlm_change_media( PyObject *self, PyObject *args, PyObject *kwds )
                       &psz_input, &psz_output,
                       &py_options, &i_enable, &i_loop ) )
         return NULL;
+
     if( py_options )
     {
         i_size = pyoptions_to_args( py_options, &ppsz_args );
     }
+
     LIBVLC_TRY;
-    libvlc_vlm_change_media( LIBVLC_INSTANCE->p_instance,
+    libvlc_vlm_change_media( LIBVLC_INSTANCE(self),
                               psz_name, psz_input, psz_output,
                               i_size, ppsz_args, i_enable, i_loop, &ex);
     free_args( i_size, ppsz_args );
@@ -652,12 +406,12 @@ vlcInstance_vlm_play_media( PyObject *self, PyObject *args )
 {
     libvlc_exception_t ex;
     char* psz_name;
+
     if( !PyArg_ParseTuple( args, "s", &psz_name ) )
         return NULL;
 
     LIBVLC_TRY;
-    libvlc_vlm_play_media( LIBVLC_INSTANCE->p_instance, psz_name, &ex);
+    libvlc_vlm_play_media( LIBVLC_INSTANCE(self), psz_name, &ex);
     LIBVLC_EXCEPT;
     Py_INCREF( Py_None );
     return Py_None;
@@ -673,7 +427,7 @@ vlcInstance_vlm_stop_media( PyObject *self, PyObject *args )
         return NULL;
 
     LIBVLC_TRY;
-    libvlc_vlm_stop_media( LIBVLC_INSTANCE->p_instance, psz_name, &ex);
+    libvlc_vlm_stop_media( LIBVLC_INSTANCE(self), psz_name, &ex);
     LIBVLC_EXCEPT;
     Py_INCREF( Py_None );
     return Py_None;
@@ -684,12 +438,12 @@ vlcInstance_vlm_pause_media( PyObject *self, PyObject *args )
 {
     libvlc_exception_t ex;
     char* psz_name;
+
     if( !PyArg_ParseTuple( args, "s", &psz_name ) )
         return NULL;
 
     LIBVLC_TRY;
-    libvlc_vlm_pause_media( LIBVLC_INSTANCE->p_instance, psz_name, &ex);
+    libvlc_vlm_pause_media( LIBVLC_INSTANCE(self), psz_name, &ex);
     LIBVLC_EXCEPT;
     Py_INCREF( Py_None );
     return Py_None;
@@ -701,12 +455,12 @@ vlcInstance_vlm_seek_media( PyObject *self, PyObject *args )
     libvlc_exception_t ex;
     char* psz_name;
     float f_percentage;
+
     if( !PyArg_ParseTuple( args, "sf", &psz_name, &f_percentage ) )
         return NULL;
 
     LIBVLC_TRY;
-    libvlc_vlm_seek_media( LIBVLC_INSTANCE->p_instance, psz_name, f_percentage, &ex);
+    libvlc_vlm_seek_media( LIBVLC_INSTANCE(self), psz_name, f_percentage, &ex);
     LIBVLC_EXCEPT;
     Py_INCREF( Py_None );
     return Py_None;
@@ -723,7 +477,7 @@ vlcInstance_vlm_show_media( PyObject *self, PyObject *args )
     if( !PyArg_ParseTuple( args, "s", &psz_name ) )
         return NULL;
     LIBVLC_TRY;
-    psz_ret = libvlc_vlm_show_media( LIBVLC_INSTANCE->p_instance, psz_name, &ex );
+    psz_ret = libvlc_vlm_show_media( LIBVLC_INSTANCE(self), psz_name, &ex );
     LIBVLC_EXCEPT;
     o_ret = Py_BuildValue( "s", psz_ret );
     free( psz_ret );
@@ -731,22 +485,22 @@ vlcInstance_vlm_show_media( PyObject *self, PyObject *args )
 }
 
 static PyObject *
-vlcInstance_media_descriptor_new( PyObject *self, PyObject *args )
+vlcInstance_media_new( PyObject *self, PyObject *args )
 {
     libvlc_exception_t ex;
-    libvlc_media_descriptor_t *p_md;
+    libvlc_media_t *p_media;
     char* psz_mrl = NULL;
-    vlcMediaDescriptor *p_ret;
+    vlcMedia *p_ret;
 
     if( !PyArg_ParseTuple( args, "s", &psz_mrl ) )
         return NULL;
 
     LIBVLC_TRY;
-    p_md = libvlc_media_descriptor_new( LIBVLC_INSTANCE->p_instance, psz_mrl, &ex );
+    p_media = libvlc_media_new( LIBVLC_INSTANCE(self), psz_mrl, &ex );
     LIBVLC_EXCEPT;
 
-    p_ret = PyObject_New( vlcMediaDescriptor, &vlcMediaDescriptor_Type );
-    p_ret->p_md = p_md;
+    p_ret = PyObject_New( vlcMedia, &vlcMedia_Type );
+    p_ret->p_media = p_media;
     Py_INCREF( p_ret ); /* Ah bon ? */
     return ( PyObject * )p_ret;
 }
@@ -754,55 +508,28 @@ vlcInstance_media_descriptor_new( PyObject *self, PyObject *args )
 /* Method table */
 static PyMethodDef vlcInstance_methods[] =
 {
-    { "get_vlc_id", vlcInstance_get_vlc_id, METH_VARARGS,
+    { "get_vlc_id", vlcInstance_get_vlc_id, METH_NOARGS,
       "get_vlc_id( ) -> int        Get the instance id."},
-    { "playlist_loop", vlcInstance_playlist_loop, METH_VARARGS,
-      "playlist_loop(bool)         Set loop variable" },
-    { "playlist_play", vlcInstance_playlist_play, METH_VARARGS,
-      "playlist_play(id=int, options=list)   Play the given playlist item (-1 for current item) with optional options (a list of strings)" },
-    { "playlist_pause", vlcInstance_playlist_pause, METH_VARARGS,
-      "playlist_pause()            Pause the current stream"},
-    { "playlist_isplaying", vlcInstance_playlist_isplaying, METH_VARARGS,
-      "playlist_isplaying() -> int     Return True if the playlist if playing"},
-    { "playlist_items_count", vlcInstance_playlist_items_count, METH_VARARGS,
-      "playlist_items_count() -> int   Return the number of items in the playlist"},
-    { "playlist_stop", vlcInstance_playlist_stop, METH_VARARGS,
-      "playlist_stop()             Stop the current stream"},
-    { "playlist_next", vlcInstance_playlist_next, METH_VARARGS,
-      "playlist_next()             Play the next item"},
-    { "playlist_prev", vlcInstance_playlist_prev, METH_VARARGS,
-      "playlist_prev()             Play the previous item"},
-    { "playlist_clear", vlcInstance_playlist_clear, METH_VARARGS,
-      "playlist_clear()            Clear the playlist"},
-    { "playlist_add", vlcInstance_playlist_add, METH_VARARGS,
-      "playlist_add(mrl=str, name=str, options=list) -> int  Add a new item to the playlist. options is a list of strings."},
-    { "playlist_delete_item", vlcInstance_playlist_delete_item, METH_VARARGS,
-      "playlist_delete_item(id=int)   Delete the given item"},
-    { "playlist_get_media_instance", vlcInstance_playlist_get_media_instance, METH_VARARGS,
-      "playlist_get_media_instance() -> object   Return the current media instance"},
-    { "video_set_parent", vlcInstance_video_set_parent, METH_VARARGS,
-      "video_set_parent(xid=int)       Set the parent xid/HWND/CGrafPort"},
-    { "video_get_parent", vlcInstance_video_get_parent, METH_VARARGS,
-      "video_get_parent(xid=int)       Get the parent xid/HWND/CGrafPort"},
-    { "video_set_size", vlcInstance_video_set_size, METH_VARARGS,
-      "video_set_size(width=int, height=int)    Set the video width and height"},
-    { "audio_toggle_mute", vlcInstance_audio_toggle_mute, METH_VARARGS,
+    { "audio_toggle_mute", vlcInstance_audio_toggle_mute, METH_NOARGS,
       "audio_toggle_mute()         Toggle the mute state"},
-    { "audio_get_mute", vlcInstance_audio_get_mute, METH_VARARGS,
+    { "audio_get_mute", vlcInstance_audio_get_mute, METH_NOARGS,
       "audio_get_mute() -> int     Get the mute state"},
     { "audio_set_mute", vlcInstance_audio_set_mute, METH_VARARGS,
       "audio_set_mute(state=int)         Set the mute state"},
-    { "audio_get_volume", vlcInstance_audio_get_volume, METH_VARARGS,
+    { "audio_get_volume", vlcInstance_audio_get_volume, METH_NOARGS,
       "audio_get_volume() -> int   Get the audio volume"},
     { "audio_set_volume", vlcInstance_audio_set_volume, METH_VARARGS,
       "audio_set_volume(volume=int)       Set the audio volume"},
-    { "audio_get_channel", vlcInstance_audio_get_channel, METH_VARARGS,
+    { "audio_get_channel", vlcInstance_audio_get_channel, METH_NOARGS,
       "audio_get_channel() -> int  Get current audio channel" },
     { "audio_set_channel", vlcInstance_audio_set_channel, METH_VARARGS,
       "audio_set_channel(int)      Set current audio channel" },
 
-    { "media_descriptor_new", vlcInstance_media_descriptor_new, METH_VARARGS,
-      "media_descriptor_new(str) -> object   Create a media descriptor with the given mrl."},
+    { "media_new", vlcInstance_media_new, METH_VARARGS,
+      "media_new(str) -> object   Create a media object with the given mrl."},
+
+    { "mediaplayer_new", vlcInstance_new_media_player, METH_NOARGS,
+      "mediaplayer_new() -> object   Create a media player."},
 
     { "vlm_add_broadcast", vlcInstance_vlm_add_broadcast, METH_VARARGS | METH_KEYWORDS,
       "vlm_add_broadcast(name=str, input=str, output=str, options=list, enable=int, loop=int)   Add a new broadcast" },
@@ -857,7 +584,7 @@ static PyTypeObject vlcInstance_Type =
     0,                         /*tp_setattro*/
     0,                         /*tp_as_buffer*/
     Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
-    "VLC Instance(args)\n\nNote: if args is specified, the first arg is interpreted as an executable name to get the directory of the VLC plugins.",  /* tp_doc */
+    "VLC Instance(args)",  /* tp_doc */
     0,                     /* tp_traverse */
     0,                     /* tp_clear */
     0,                     /* tp_richcompare */