[Python-checkins] python/dist/src/Modules ossaudiodev.c,1.6,1.7

gward@users.sourceforge.net gward@users.sourceforge.net
2002年12月11日 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);
 }
 

AltStyle によって変換されたページ (->オリジナル) /