/*****************************************************************************
* 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
{
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 ) )
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" );
int i_index;
for ( i_index = 0; i_index < i_size; i_index++ )
- if( ppsz_args[i_index] )
- free(ppsz_args[i_index]);
+ free( ppsz_args[i_index] );
free( ppsz_args );
}
char** ppsz_args = NULL;
int i_size = 0;
- self = PyObject_New( vlcInstance, &vlcInstance_Type );
-
-
- 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 )
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 );
+ LIBVLC_INSTANCE(self) = libvlc_new( i_size, ppsz_args, &ex );
free_args( i_size, ppsz_args );
LIBVLC_EXCEPT
Py_END_ALLOW_THREADS
static void
vlcInstance_dealloc( PyObject *self )
{
- libvlc_exception_t ex;
- libvlc_destroy( LIBVLC_INSTANCE->p_instance, &ex );
- PyMem_DEL( self );
+ 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 );
+ return Py_BuildValue( "i", libvlc_get_vlc_id( LIBVLC_INSTANCE(self) ) );
}
static PyObject *
-vlcInstance_playlist_get_input( PyObject *self, PyObject *args )
+vlcInstance_new_media_player( PyObject *self, PyObject *args )
{
libvlc_exception_t ex;
- libvlc_input_t *p_input;
- vlcInput *p_ret;
+ libvlc_media_player_t *p_mp;
+ vlcMediaPlayer *p_ret;
LIBVLC_TRY;
- p_input = libvlc_playlist_get_input( LIBVLC_INSTANCE->p_instance, &ex );
+ p_mp = libvlc_media_player_new( LIBVLC_INSTANCE(self), &ex );
LIBVLC_EXCEPT;
- p_ret = PyObject_New( vlcInput, &vlcInput_Type );
- p_ret->p_input = p_input;
+ 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_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;
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 );
}
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;
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 );
}
return NULL;
LIBVLC_TRY;
- libvlc_audio_set_mute( 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;
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 );
}
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;
vlcInstance_vlm_add_broadcast( PyObject *self, PyObject *args, PyObject *kwds )
{
libvlc_exception_t ex;
- static char *kwlist[] = { "name", "input", "output",
+ static char *kwlist[] = { "name", "input", "output",
"options", "enable", "loop", NULL};
char* psz_name = NULL;
char* psz_input = NULL;
int i_size = 0;
char** ppsz_args = NULL;
- if( !PyArg_ParseTupleAndKeywords( args, kwds, "sss|Oii", kwlist,
+ if( !PyArg_ParseTupleAndKeywords( args, kwds, "sss|Oii", kwlist,
&psz_name,
- &psz_input, &psz_output,
- &py_options, &i_enable, &i_loop ) )
+ &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 );
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;
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;
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;
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(self), psz_name, psz_input, &ex);
+ LIBVLC_EXCEPT;
+ Py_INCREF( Py_None );
+ return Py_None;
+}
+
+static PyObject *
+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_set_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;
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;
vlcInstance_vlm_change_media( PyObject *self, PyObject *args, PyObject *kwds )
{
libvlc_exception_t ex;
- static char *kwlist[] = { "name", "input", "output",
+ static char *kwlist[] = { "name", "input", "output",
"options", "enable", "loop", NULL};
char* psz_name = NULL;
char* psz_input = NULL;
int i_size = 0;
char** ppsz_args = NULL;
- if( !PyArg_ParseTupleAndKeywords( args, kwds, "sss|Oii", kwlist,
+ if( !PyArg_ParseTupleAndKeywords( args, kwds, "sss|Oii", kwlist,
&psz_name,
- &psz_input, &psz_output,
- &py_options, &i_enable, &i_loop ) )
+ &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 );
{
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;
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;
{
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;
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;
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 );
return o_ret;
}
+static PyObject *
+vlcInstance_media_new( PyObject *self, PyObject *args )
+{
+ libvlc_exception_t ex;
+ libvlc_media_t *p_media;
+ char* psz_mrl = NULL;
+ vlcMedia *p_ret;
+
+ if( !PyArg_ParseTuple( args, "s", &psz_mrl ) )
+ return NULL;
+
+ LIBVLC_TRY;
+ p_media = libvlc_media_new( LIBVLC_INSTANCE(self), psz_mrl, &ex );
+ LIBVLC_EXCEPT;
+
+ p_ret = PyObject_New( vlcMedia, &vlcMedia_Type );
+ p_ret->p_media = p_media;
+ Py_INCREF( p_ret ); /* Ah bon ? */
+ return ( PyObject * )p_ret;
+}
+
/* 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_input", vlcInstance_playlist_get_input, METH_VARARGS,
- "playlist_get_input() -> object Return the current input"},
- { "video_set_parent", vlcInstance_video_set_parent, METH_VARARGS,
- "video_set_parent(xid=int) Set the parent xid or HWND"},
- { "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_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" },
{ "vlm_del_media", vlcInstance_vlm_del_media, METH_VARARGS,
"vlm_set_output(name=str, output=str) Set the output" },
{ "vlm_set_input", vlcInstance_vlm_set_input, METH_VARARGS,
"vlm_set_input(name=str, output=str) Set the input" },
+ { "vlm_add_input", vlcInstance_vlm_add_input, METH_VARARGS,
+ "vlm_add_input(name=str, output=str) Add a media's input MRL" },
{ "vlm_set_loop", vlcInstance_vlm_set_loop, METH_VARARGS,
"vlm_set_loop(name=str, loop=int) Change the looping value" },
{ "vlm_change_media", vlcInstance_vlm_change_media, METH_VARARGS | METH_KEYWORDS,
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 */