Commit c1432d5d authored by Olivier Aubert's avatar Olivier Aubert

python bindings:

 * use Py_ssize_t as index type (cf http://www.python.org/dev/peps/pep-0353/)
 * fix audio_[gs]et_channel parameter/return value type
parent 0208ba92
...@@ -23,11 +23,11 @@ ...@@ -23,11 +23,11 @@
#include "vlcglue.h" #include "vlcglue.h"
/* Helper functions */ /* Helper functions */
static int static Py_ssize_t
pyoptions_to_args(PyObject *py_options, char*** pppsz_args) pyoptions_to_args(PyObject *py_options, char*** pppsz_args)
{ {
int i_size; Py_ssize_t i_size;
int i_index; Py_ssize_t i_index;
char** ppsz_args = *pppsz_args; char** ppsz_args = *pppsz_args;
ppsz_args = NULL; ppsz_args = NULL;
...@@ -438,28 +438,25 @@ static PyObject * ...@@ -438,28 +438,25 @@ static PyObject *
vlcInstance_audio_get_channel( PyObject *self, PyObject *args ) vlcInstance_audio_get_channel( PyObject *self, PyObject *args )
{ {
libvlc_exception_t ex; libvlc_exception_t ex;
char* psz_ret; int i_ret;
PyObject* o_ret;
LIBVLC_TRY; LIBVLC_TRY;
psz_ret = libvlc_audio_get_channel( LIBVLC_INSTANCE->p_instance, &ex ); i_ret = libvlc_audio_get_channel( LIBVLC_INSTANCE->p_instance, &ex );
LIBVLC_EXCEPT; LIBVLC_EXCEPT;
o_ret=Py_BuildValue( "s", psz_ret ); return Py_BuildValue( "i", i_ret );
free( psz_ret );
return o_ret;
} }
static PyObject * static PyObject *
vlcInstance_audio_set_channel( PyObject *self, PyObject *args ) vlcInstance_audio_set_channel( PyObject *self, PyObject *args )
{ {
libvlc_exception_t ex; libvlc_exception_t ex;
char* psz_channel; int i_channel;
if( !PyArg_ParseTuple( args, "s", &psz_channel ) ) if( !PyArg_ParseTuple( args, "i", &i_channel ) )
return NULL; return NULL;
LIBVLC_TRY; LIBVLC_TRY;
libvlc_audio_set_channel( LIBVLC_INSTANCE->p_instance, psz_channel, &ex ); libvlc_audio_set_channel( LIBVLC_INSTANCE->p_instance, i_channel, &ex );
LIBVLC_EXCEPT; LIBVLC_EXCEPT;
Py_INCREF( Py_None ); Py_INCREF( Py_None );
return Py_None; return Py_None;
......
...@@ -499,8 +499,8 @@ static PyObject * ...@@ -499,8 +499,8 @@ static PyObject *
vlcObject_var_list( PyObject *self, PyObject *args ) vlcObject_var_list( PyObject *self, PyObject *args )
{ {
PyObject *p_retval; PyObject *p_retval;
int i_size; Py_ssize_t i_size;
int i_index; Py_ssize_t i_index;
i_size = VLCSELF->p_object->i_vars; i_size = VLCSELF->p_object->i_vars;
p_retval = PyTuple_New( i_size ); p_retval = PyTuple_New( i_size );
...@@ -619,8 +619,8 @@ static PyObject * ...@@ -619,8 +619,8 @@ static PyObject *
vlcObject_children( PyObject *self, PyObject *args ) vlcObject_children( PyObject *self, PyObject *args )
{ {
PyObject *p_retval; PyObject *p_retval;
int i_size; Py_ssize_t i_size;
int i_index; Py_ssize_t i_index;
i_size = VLCSELF->p_object->i_children; i_size = VLCSELF->p_object->i_children;
p_retval = PyTuple_New( i_size ); p_retval = PyTuple_New( i_size );
......
...@@ -36,7 +36,7 @@ MediaControl_new( PyTypeObject *type, PyObject *args, PyObject *kwds ) ...@@ -36,7 +36,7 @@ MediaControl_new( PyTypeObject *type, PyObject *args, PyObject *kwds )
PyObject* py_param = NULL; PyObject* py_param = NULL;
char** ppsz_args = NULL; char** ppsz_args = NULL;
libvlc_instance_t* p_instance = NULL; libvlc_instance_t* p_instance = NULL;
int i_size = 0; Py_ssize_t i_size = 0;
self = PyObject_New( MediaControl, &MediaControl_Type ); self = PyObject_New( MediaControl, &MediaControl_Type );
...@@ -49,7 +49,7 @@ MediaControl_new( PyTypeObject *type, PyObject *args, PyObject *kwds ) ...@@ -49,7 +49,7 @@ MediaControl_new( PyTypeObject *type, PyObject *args, PyObject *kwds )
} }
else else
{ {
int i_index; Py_ssize_t i_index;
if( ! PySequence_Check( py_param ) ) if( ! PySequence_Check( py_param ) )
{ {
...@@ -341,8 +341,8 @@ MediaControl_playlist_get_list( PyObject *self, PyObject *args ) ...@@ -341,8 +341,8 @@ MediaControl_playlist_get_list( PyObject *self, PyObject *args )
PyObject *py_retval; PyObject *py_retval;
mediacontrol_Exception *exception = NULL; mediacontrol_Exception *exception = NULL;
mediacontrol_PlaylistSeq* pl; mediacontrol_PlaylistSeq* pl;
int i_index; Py_ssize_t i_index;
int i_playlist_size; Py_ssize_t i_playlist_size;
Py_BEGIN_ALLOW_THREADS Py_BEGIN_ALLOW_THREADS
MC_TRY; MC_TRY;
......
...@@ -33,6 +33,13 @@ ...@@ -33,6 +33,13 @@
#include <vlc/mediacontrol_structures.h> #include <vlc/mediacontrol_structures.h>
#include <vlc/mediacontrol.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) #define SELF ((MediaControl*)self)
/********************************************************************** /**********************************************************************
......
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