[Python-checkins] python/dist/src/Modules ossaudiodev.c,1.6,1.7
gward@users.sourceforge.net
gward@users.sourceforge.net
Wed, 11 Dec 2002 06:50:02 -0800
Update of /cvsroot/python/python/dist/src/Modules
In directory sc8-pr-cvs1:/tmp/cvs-serv1658
Modified Files:
ossaudiodev.c
Log Message:
Prepare for the coming mixer support patch: change _do_ioctl_0() and
_do_ioctl_1() so they take a file descriptor rather than an oss_t
pointer.
Index: ossaudiodev.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/ossaudiodev.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** ossaudiodev.c 11 Dec 2002 14:43:13 -0000 1.6
--- ossaudiodev.c 11 Dec 2002 14:49:59 -0000 1.7
***************
*** 174,188 ****
*/
static PyObject *
! _do_ioctl_1(oss_t *self, PyObject *args, char *fname, int cmd)
{
! char argfmt[13] = "i:";
int arg;
! assert(strlen(fname) <= 10);
strcat(argfmt, fname);
if (!PyArg_ParseTuple(args, argfmt, &arg))
return NULL;
! if (ioctl(self->x_fd, cmd, &arg) == -1)
return PyErr_SetFromErrno(PyExc_IOError);
return PyInt_FromLong(arg);
--- 174,188 ----
*/
static PyObject *
! _do_ioctl_1(int fd, PyObject *args, char *fname, int cmd)
{
! char argfmt[33] = "i:";
int arg;
! assert(strlen(fname) <= 30);
strcat(argfmt, fname);
if (!PyArg_ParseTuple(args, argfmt, &arg))
return NULL;
! if (ioctl(fd, cmd, &arg) == -1)
return PyErr_SetFromErrno(PyExc_IOError);
return PyInt_FromLong(arg);
***************
*** 192,205 ****
SNDCTL_DSP_{SYNC,RESET,POST}. */
static PyObject *
! _do_ioctl_0(oss_t *self, PyObject *args, char *fname, int cmd)
{
! char argfmt[12] = ":";
! assert(strlen(fname) <= 10);
strcat(argfmt, fname);
if (!PyArg_ParseTuple(args, argfmt))
return NULL;
! if (ioctl(self->x_fd, cmd, 0) == -1)
return PyErr_SetFromErrno(PyExc_IOError);
Py_INCREF(Py_None);
--- 192,205 ----
SNDCTL_DSP_{SYNC,RESET,POST}. */
static PyObject *
! _do_ioctl_0(int fd, PyObject *args, char *fname, int cmd)
{
! char argfmt[32] = ":";
! assert(strlen(fname) <= 30);
strcat(argfmt, fname);
if (!PyArg_ParseTuple(args, argfmt))
return NULL;
! if (ioctl(fd, cmd, 0) == -1)
return PyErr_SetFromErrno(PyExc_IOError);
Py_INCREF(Py_None);
***************
*** 224,228 ****
oss_setfmt(oss_t *self, PyObject *args)
{
! return _do_ioctl_1(self, args, "setfmt", SNDCTL_DSP_SETFMT);
}
--- 224,228 ----
oss_setfmt(oss_t *self, PyObject *args)
{
! return _do_ioctl_1(self->x_fd, args, "setfmt", SNDCTL_DSP_SETFMT);
}
***************
*** 241,245 ****
oss_channels(oss_t *self, PyObject *args)
{
! return _do_ioctl_1(self, args, "channels", SNDCTL_DSP_CHANNELS);
}
--- 241,245 ----
oss_channels(oss_t *self, PyObject *args)
{
! return _do_ioctl_1(self->x_fd, args, "channels", SNDCTL_DSP_CHANNELS);
}
***************
*** 247,251 ****
oss_speed(oss_t *self, PyObject *args)
{
! return _do_ioctl_1(self, args, "speed", SNDCTL_DSP_SPEED);
}
--- 247,251 ----
oss_speed(oss_t *self, PyObject *args)
{
! return _do_ioctl_1(self->x_fd, args, "speed", SNDCTL_DSP_SPEED);
}
***************
*** 253,257 ****
oss_sync(oss_t *self, PyObject *args)
{
! return _do_ioctl_0(self, args, "sync", SNDCTL_DSP_SYNC);
}
--- 253,257 ----
oss_sync(oss_t *self, PyObject *args)
{
! return _do_ioctl_0(self->x_fd, args, "sync", SNDCTL_DSP_SYNC);
}
***************
*** 259,263 ****
oss_reset(oss_t *self, PyObject *args)
{
! return _do_ioctl_0(self, args, "reset", SNDCTL_DSP_RESET);
}
--- 259,263 ----
oss_reset(oss_t *self, PyObject *args)
{
! return _do_ioctl_0(self->x_fd, args, "reset", SNDCTL_DSP_RESET);
}
***************
*** 265,269 ****
oss_post(oss_t *self, PyObject *args)
{
! return _do_ioctl_0(self, args, "post", SNDCTL_DSP_POST);
}
--- 265,269 ----
oss_post(oss_t *self, PyObject *args)
{
! return _do_ioctl_0(self->x_fd, args, "post", SNDCTL_DSP_POST);
}