forked from auracaster/pyalsaaudio
Fix get_pcmtype for Python2.7
This commit is contained in:
15
alsaaudio.c
15
alsaaudio.c
@@ -20,9 +20,6 @@
|
|||||||
#define PyLong_Check PyInt_Check
|
#define PyLong_Check PyInt_Check
|
||||||
#define PyLong_AS_LONG PyInt_AS_LONG
|
#define PyLong_AS_LONG PyInt_AS_LONG
|
||||||
#endif
|
#endif
|
||||||
#if PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION == 7
|
|
||||||
#define PyLong_AS_LONG PyInt_AS_LONG
|
|
||||||
#endif
|
|
||||||
#include <alsa/asoundlib.h>
|
#include <alsa/asoundlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
@@ -88,6 +85,7 @@ get_pcmtype(PyObject *obj)
|
|||||||
return SND_PCM_STREAM_PLAYBACK;
|
return SND_PCM_STREAM_PLAYBACK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if PY_MAJOR_VERSION > 2
|
||||||
if (PyLong_Check(obj)) {
|
if (PyLong_Check(obj)) {
|
||||||
long pcmtype = PyLong_AS_LONG(obj);
|
long pcmtype = PyLong_AS_LONG(obj);
|
||||||
if (pcmtype == SND_PCM_STREAM_PLAYBACK ||
|
if (pcmtype == SND_PCM_STREAM_PLAYBACK ||
|
||||||
@@ -95,6 +93,15 @@ get_pcmtype(PyObject *obj)
|
|||||||
return pcmtype;
|
return pcmtype;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
if (PyInt_Check(obj)) {
|
||||||
|
long pcmtype = PyInt_AS_LONG(obj);
|
||||||
|
if (pcmtype == SND_PCM_STREAM_PLAYBACK ||
|
||||||
|
pcmtype == SND_PCM_STREAM_CAPTURE) {
|
||||||
|
return pcmtype;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (PyUnicode_Check(obj)) {
|
if (PyUnicode_Check(obj)) {
|
||||||
const char *dirstr = PyUnicode_AS_DATA(obj);
|
const char *dirstr = PyUnicode_AS_DATA(obj);
|
||||||
@@ -178,7 +185,7 @@ alsapcm_list(PyObject *self, PyObject *args)
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
pcmtype = get_pcmtype(pcmtypeobj);
|
pcmtype = get_pcmtype(pcmtypeobj);
|
||||||
if (pcmtype < 0){
|
if (pcmtype < 0) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user