Commit a315f634 authored by Olivier Aubert's avatar Olivier Aubert

python bindings: completed libvlc bindings

parent a77fdc28
......@@ -162,10 +162,183 @@ vlcInput_get_fps( PyObject *self, PyObject *args )
return Py_BuildValue( "f", f_ret );
}
static PyObject *
vlcInput_audio_get_track( PyObject *self, PyObject *args )
{
libvlc_exception_t ex;
int i_ret;
LIBVLC_TRY;
i_ret = libvlc_audio_get_track( LIBVLC_INPUT->p_input, &ex );
LIBVLC_EXCEPT;
return Py_BuildValue( "i", i_ret );
}
static PyObject *
vlcInput_audio_set_track( PyObject *self, PyObject *args )
{
libvlc_exception_t ex;
int i_track;
if( !PyArg_ParseTuple( args, "i", &i_track ) )
return NULL;
LIBVLC_TRY;
libvlc_audio_set_track( LIBVLC_INPUT->p_input, i_track, &ex );
LIBVLC_EXCEPT;
Py_INCREF( Py_None );
return Py_None;
}
static PyObject *
vlcInput_toggle_fullscreen( PyObject *self, PyObject *args )
{
libvlc_exception_t ex;
LIBVLC_TRY;
libvlc_toggle_fullscreen( LIBVLC_INPUT->p_input, &ex);
LIBVLC_EXCEPT;
Py_INCREF( Py_None );
return Py_None;
}
static PyObject *
vlcInput_set_fullscreen( PyObject *self, PyObject *args )
{
libvlc_exception_t ex;
int i_fullscreen;
if( !PyArg_ParseTuple( args, "i", &i_fullscreen ) )
return NULL;
LIBVLC_TRY;
libvlc_set_fullscreen( LIBVLC_INPUT->p_input, i_fullscreen, &ex);
LIBVLC_EXCEPT;
Py_INCREF( Py_None );
return Py_None;
}
static PyObject *
vlcInput_get_fullscreen( PyObject *self, PyObject *args )
{
libvlc_exception_t ex;
int i_ret;
LIBVLC_TRY;
i_ret = libvlc_get_fullscreen( LIBVLC_INPUT->p_input, &ex);
LIBVLC_EXCEPT;
return Py_BuildValue( "i", i_ret );
}
static PyObject *
vlcInput_get_height( PyObject *self, PyObject *args )
{
libvlc_exception_t ex;
int i_ret;
LIBVLC_TRY;
i_ret = libvlc_video_get_height( LIBVLC_INPUT->p_input, &ex);
LIBVLC_EXCEPT;
return Py_BuildValue( "i", i_ret );
}
static PyObject *
vlcInput_get_width( PyObject *self, PyObject *args )
{
libvlc_exception_t ex;
int i_ret;
LIBVLC_TRY;
i_ret = libvlc_video_get_width( LIBVLC_INPUT->p_input, &ex);
LIBVLC_EXCEPT;
return Py_BuildValue( "i", i_ret );
}
static PyObject *
vlcInput_get_aspect_ratio( PyObject *self, PyObject *args )
{
libvlc_exception_t ex;
char* psz_ret;
PyObject* o_ret;
LIBVLC_TRY;
psz_ret = libvlc_video_get_aspect_ratio( LIBVLC_INPUT->p_input, &ex);
LIBVLC_EXCEPT;
o_ret=Py_BuildValue( "s", psz_ret );
free( psz_ret );
return o_ret;
}
static PyObject *
vlcInput_set_aspect_ratio( PyObject *self, PyObject *args )
{
libvlc_exception_t ex;
char* psz_ratio;
if( !PyArg_ParseTuple( args, "s", &psz_ratio ) )
return NULL;
LIBVLC_TRY;
libvlc_video_set_aspect_ratio( LIBVLC_INPUT->p_input, psz_ratio, &ex);
LIBVLC_EXCEPT;
free( psz_ratio );
Py_INCREF( Py_None );
return Py_None;
}
static PyObject *
vlcInput_video_take_snapshot( PyObject *self, PyObject *args )
{
libvlc_exception_t ex;
char* psz_filename;
if( !PyArg_ParseTuple( args, "s", &psz_filename ) )
return NULL;
LIBVLC_TRY;
libvlc_video_take_snapshot( LIBVLC_INPUT->p_input, psz_filename, &ex);
LIBVLC_EXCEPT;
Py_INCREF( Py_None );
return Py_None;
}
static PyObject *
vlcInput_video_resize( 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_resize( LIBVLC_INPUT->p_input, i_width, i_height, &ex);
LIBVLC_EXCEPT;
Py_INCREF( Py_None );
return Py_None;
}
static PyObject *
vlcInput_video_reparent( PyObject *self, PyObject *args )
{
libvlc_exception_t ex;
WINDOWHANDLE i_visual;
int i_ret;
if( !PyArg_ParseTuple( args, "i", &i_visual ) )
return NULL;
LIBVLC_TRY;
i_ret = libvlc_video_reparent( LIBVLC_INPUT->p_input, i_visual, &ex);
LIBVLC_EXCEPT;
return Py_BuildValue( "i", i_ret );
}
static PyMethodDef vlcInput_methods[] =
{
{ "get_length", vlcInput_get_length, METH_VARARGS,
"get_length() -> long" },
"get_length() -> long " },
{ "get_time", vlcInput_get_time, METH_VARARGS,
"get_time() -> long" },
{ "set_time", vlcInput_set_time, METH_VARARGS,
......@@ -186,6 +359,31 @@ static PyMethodDef vlcInput_methods[] =
"has_vout() -> int" },
{ "get_fps", vlcInput_get_fps, METH_VARARGS,
"get_fps() -> float" },
{ "audio_get_track", vlcInput_audio_get_track, METH_VARARGS,
"audio_get_track() -> int Get current audio track" },
{ "audio_set_track", vlcInput_audio_set_track, METH_VARARGS,
"audio_set_track(int) Set current audio track" },
{ "toggle_fullscreen", vlcInput_toggle_fullscreen, METH_VARARGS,
"toggle_fullscreen() Toggle fullscreen status on video output" },
{ "set_fullscreen", vlcInput_set_fullscreen, METH_VARARGS,
"set_fullscreen(bool) Enable or disable fullscreen on a video output" },
{ "get_fullscreen", vlcInput_get_fullscreen, METH_VARARGS,
"get_fullscreen() -> bool Get current fullscreen status" },
{ "get_height", vlcInput_get_height, METH_VARARGS,
"get_height() -> int Get current video height" },
{ "get_width", vlcInput_get_width, METH_VARARGS,
"get_width() -> int Get current video width" },
{ "get_aspect_ratio", vlcInput_get_aspect_ratio, METH_VARARGS,
"get_aspect_ratio() -> str Get current video aspect ratio" },
{ "set_aspect_ratio", vlcInput_set_aspect_ratio, METH_VARARGS,
"set_aspect_ratio(str) Set new video aspect ratio" },
{ "video_take_snapshot", vlcInput_video_take_snapshot, METH_VARARGS,
"video_take_snapshot(filename=str) Take a snapshot of the current video window" },
{ "video_resize", vlcInput_video_resize, METH_VARARGS,
"video_resize(width=int, height=int) Resize the current video output window" },
{ "video_reparent", vlcInput_video_reparent, METH_VARARGS,
"video_reparent(visual=int) change the parent for the current video output" },
{ NULL } /* Sentinel */
};
......
......@@ -123,6 +123,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 *
......@@ -416,6 +434,37 @@ vlcInstance_audio_set_volume( PyObject *self, PyObject *args )
return Py_None;
}
static PyObject *
vlcInstance_audio_get_channel( PyObject *self, PyObject *args )
{
libvlc_exception_t ex;
char* psz_ret;
PyObject* o_ret;
LIBVLC_TRY;
psz_ret = libvlc_audio_get_channel( LIBVLC_INSTANCE->p_instance, &ex );
LIBVLC_EXCEPT;
o_ret=Py_BuildValue( "s", psz_ret );
free( psz_ret );
return o_ret;
}
static PyObject *
vlcInstance_audio_set_channel( PyObject *self, PyObject *args )
{
libvlc_exception_t ex;
char* psz_channel;
if( !PyArg_ParseTuple( args, "s", &psz_channel ) )
return NULL;
LIBVLC_TRY;
libvlc_audio_set_channel( LIBVLC_INSTANCE->p_instance, psz_channel, &ex );
LIBVLC_EXCEPT;
Py_INCREF( Py_None );
return Py_None;
}
/* vlm_add_broadcast : name, input MRL, output MRL
Keywords: options, enable, loop */
static PyObject *
......@@ -595,7 +644,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 +671,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 +749,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 +768,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 },
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment