]> git.sesse.net Git - vlc/blobdiff - bindings/python/vlc_instance.c
Python: Fix misspelling of media_instance.
[vlc] / bindings / python / vlc_instance.c
index 1e419644390e7ea700e290680288ff7eb2a0b912..e46d6da449b8ddd101512b027a8ef027b4aae918 100644 (file)
@@ -2,7 +2,7 @@
  * vlc_instance.c: vlc.Instance binding
  *****************************************************************************
  * Copyright (C) 2006 the VideoLAN team
- * $Id$
+ * $Id$
  *
  * Authors: Olivier Aubert <oaubert at bat710.univ-lyon1.fr>
  *
 #include "vlcglue.h"
 
 /* Helper functions */
-static int
+static Py_ssize_t
 pyoptions_to_args(PyObject *py_options, char*** pppsz_args)
 {
-    int i_size;
-    int i_index;
+    Py_ssize_t i_size;
+    Py_ssize_t  i_index;
     char** ppsz_args = *pppsz_args;
     
     ppsz_args = NULL;
@@ -82,9 +82,6 @@ vlcInstance_new( PyTypeObject *type, PyObject *args, PyObject *kwds )
     char** ppsz_args = NULL;
     int i_size = 0;
 
-    self = PyObject_New( vlcInstance, &vlcInstance_Type );
-
-
     if( PyArg_ParseTuple( args, "O", &py_list ) )
     {
         i_size = pyoptions_to_args( py_list, &ppsz_args );
@@ -98,6 +95,8 @@ vlcInstance_new( PyTypeObject *type, PyObject *args, PyObject *kwds )
         PyErr_Clear( );
     }
 
+    self = PyObject_New( vlcInstance, &vlcInstance_Type );
+
     Py_BEGIN_ALLOW_THREADS
     LIBVLC_TRY
     LIBVLC_INSTANCE->p_instance = libvlc_new( i_size, ppsz_args, &ex );
@@ -114,7 +113,7 @@ vlcInstance_dealloc( PyObject *self )
 {
     libvlc_exception_t ex;
     libvlc_destroy( LIBVLC_INSTANCE->p_instance, &ex );
-    PyMem_DEL( self );
+    PyObject_DEL( self );
 }
 
 static PyObject *
@@ -123,6 +122,24 @@ 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 *
@@ -301,15 +318,15 @@ static PyObject *
 vlcInstance_playlist_get_input( PyObject *self, PyObject *args )
 {
     libvlc_exception_t ex;
-    libvlc_input_t *p_input;
+    libvlc_media_instance_t *p_md;
     vlcInput *p_ret;
 
     LIBVLC_TRY;
-    p_input = libvlc_playlist_get_input( LIBVLC_INSTANCE->p_instance, &ex );
+    p_md = libvlc_playlist_get_media_instance( LIBVLC_INSTANCE->p_instance, &ex );
     LIBVLC_EXCEPT;
 
     p_ret = PyObject_New( vlcInput, &vlcInput_Type );
-    p_ret->p_input = p_input;
+    p_ret->p_md = p_md;
     Py_INCREF( p_ret ); /* Ah bon ? */
     return ( PyObject * )p_ret;
 }
@@ -410,7 +427,35 @@ vlcInstance_audio_set_volume( PyObject *self, PyObject *args )
         return NULL;
 
     LIBVLC_TRY;
-    libvlc_audio_set_mute( LIBVLC_INSTANCE->p_instance, i_volume, &ex );
+    libvlc_audio_set_volume( LIBVLC_INSTANCE->p_instance, i_volume, &ex );
+    LIBVLC_EXCEPT;
+    Py_INCREF( Py_None );
+    return Py_None;
+}
+
+static PyObject *
+vlcInstance_audio_get_channel( PyObject *self, PyObject *args )
+{
+    libvlc_exception_t ex;
+    int i_ret;
+
+    LIBVLC_TRY;
+    i_ret = libvlc_audio_get_channel( LIBVLC_INSTANCE->p_instance, &ex );
+    LIBVLC_EXCEPT;
+    return Py_BuildValue( "i", i_ret );
+}
+
+static PyObject *
+vlcInstance_audio_set_channel( PyObject *self, PyObject *args )
+{
+    libvlc_exception_t ex;
+    int i_channel;
+
+    if( !PyArg_ParseTuple( args, "i", &i_channel ) )
+        return NULL;
+
+    LIBVLC_TRY;
+    libvlc_audio_set_channel( LIBVLC_INSTANCE->p_instance, i_channel, &ex );
     LIBVLC_EXCEPT;
     Py_INCREF( Py_None );
     return Py_None;
@@ -595,7 +640,7 @@ vlcInstance_vlm_stop_media( PyObject *self, PyObject *args )
 {
     libvlc_exception_t ex;
     char* psz_name;
-    
+
     if( !PyArg_ParseTuple( args, "s", &psz_name ) )
         return NULL;
 
@@ -622,11 +667,48 @@ vlcInstance_vlm_pause_media( PyObject *self, PyObject *args )
     return Py_None;
 }
 
+static PyObject *
+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_EXCEPT;
+    Py_INCREF( Py_None );
+    return Py_None;
+}
+
+static PyObject *
+vlcInstance_vlm_show_media( PyObject *self, PyObject *args )
+{
+    libvlc_exception_t ex;
+    char* psz_name;
+    char* psz_ret;
+    PyObject* o_ret;
+
+    if( !PyArg_ParseTuple( args, "s", &psz_name ) )
+        return NULL;
+    LIBVLC_TRY;
+    psz_ret = libvlc_vlm_show_media( LIBVLC_INSTANCE->p_instance, psz_name, &ex );
+    LIBVLC_EXCEPT;
+    o_ret = Py_BuildValue( "s", psz_ret );
+    free( psz_ret );
+    return o_ret;
+}
+
 /* Method table */
 static PyMethodDef vlcInstance_methods[] =
 {
     { "get_vlc_id", vlcInstance_get_vlc_id, METH_VARARGS,
       "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,
@@ -663,7 +745,10 @@ static PyMethodDef vlcInstance_methods[] =
       "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() -> int  Get current audio channel" },
+    { "audio_set_channel", vlcInstance_audio_set_channel, METH_VARARGS,
+      "audio_set_channel(int)      Set current audio channel" },
     { "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" },
     { "vlm_del_media", vlcInstance_vlm_del_media, METH_VARARGS,
@@ -679,11 +764,15 @@ static PyMethodDef vlcInstance_methods[] =
     { "vlm_change_media", vlcInstance_vlm_change_media, METH_VARARGS | METH_KEYWORDS,
       "vlm_change_media(name=str, input=str, output=str, options=list, enable=int, loop=int)   Change the broadcast parameters" },
     { "vlm_play_media", vlcInstance_vlm_play_media, METH_VARARGS,
-      "vlm_play_media(name=str)" },
+      "vlm_play_media(name=str)       Plays the named broadcast." },
     { "vlm_stop_media", vlcInstance_vlm_stop_media, METH_VARARGS,
-      "vlm_stop_media(name=str)" },
+      "vlm_stop_media(name=str)       Stops the named broadcast." },
     { "vlm_pause_media", vlcInstance_vlm_pause_media, METH_VARARGS,
-      "vlm_pause_media(name=str)" },
+      "vlm_pause_media(name=str)      Pauses the named broadcast." },
+    { "vlm_seek_media", vlcInstance_vlm_seek_media, METH_VARARGS,
+      "vlm_seek_media(name=str, percentage=float)  Seeks in the named broadcast." },
+    { "vlm_show_media", vlcInstance_vlm_show_media, METH_VARARGS,
+      "vlm_show_media(name=str)       Return information of the named broadcast." },
 
     { NULL, NULL, 0, NULL },
 };