diff options
author | Greg Ward <gward@python.net> | 2002-12-11 14:49:59 (GMT) |
---|---|---|
committer | Greg Ward <gward@python.net> | 2002-12-11 14:49:59 (GMT) |
commit | da9f853b49930e9636826667add317d5cacfacdb (patch) | |
tree | 9a7f7cdcbe1ab3af5348ad0794a838ad505027dc /Modules | |
parent | 8c6b6a9f1ef66be9493a3031418798c774b68d4a (diff) | |
download | cpython-da9f853b49930e9636826667add317d5cacfacdb.zip cpython-da9f853b49930e9636826667add317d5cacfacdb.tar.gz cpython-da9f853b49930e9636826667add317d5cacfacdb.tar.bz2 |
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.
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/ossaudiodev.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/Modules/ossaudiodev.c b/Modules/ossaudiodev.c index a38bde5..5078904 100644 --- a/Modules/ossaudiodev.c +++ b/Modules/ossaudiodev.c @@ -173,17 +173,17 @@ oss_dealloc(oss_t *xp) arg = dsp.xxx(arg) */ static PyObject * -_do_ioctl_1(oss_t *self, PyObject *args, char *fname, int cmd) +_do_ioctl_1(int fd, PyObject *args, char *fname, int cmd) { - char argfmt[13] = "i:"; + char argfmt[33] = "i:"; int arg; - assert(strlen(fname) <= 10); + assert(strlen(fname) <= 30); strcat(argfmt, fname); if (!PyArg_ParseTuple(args, argfmt, &arg)) return NULL; - if (ioctl(self->x_fd, cmd, &arg) == -1) + if (ioctl(fd, cmd, &arg) == -1) return PyErr_SetFromErrno(PyExc_IOError); return PyInt_FromLong(arg); } @@ -191,16 +191,16 @@ _do_ioctl_1(oss_t *self, PyObject *args, char *fname, int cmd) /* _do_ioctl_0() is a private helper for the no-argument ioctls: SNDCTL_DSP_{SYNC,RESET,POST}. */ static PyObject * -_do_ioctl_0(oss_t *self, PyObject *args, char *fname, int cmd) +_do_ioctl_0(int fd, PyObject *args, char *fname, int cmd) { - char argfmt[12] = ":"; + char argfmt[32] = ":"; - assert(strlen(fname) <= 10); + assert(strlen(fname) <= 30); strcat(argfmt, fname); if (!PyArg_ParseTuple(args, argfmt)) return NULL; - if (ioctl(self->x_fd, cmd, 0) == -1) + if (ioctl(fd, cmd, 0) == -1) return PyErr_SetFromErrno(PyExc_IOError); Py_INCREF(Py_None); return Py_None; @@ -223,7 +223,7 @@ oss_nonblock(oss_t *self, PyObject *args) static PyObject * oss_setfmt(oss_t *self, PyObject *args) { - return _do_ioctl_1(self, args, "setfmt", SNDCTL_DSP_SETFMT); + return _do_ioctl_1(self->x_fd, args, "setfmt", SNDCTL_DSP_SETFMT); } static PyObject * @@ -240,31 +240,31 @@ oss_getfmts(oss_t *self, PyObject *args) static PyObject * oss_channels(oss_t *self, PyObject *args) { - return _do_ioctl_1(self, args, "channels", SNDCTL_DSP_CHANNELS); + return _do_ioctl_1(self->x_fd, args, "channels", SNDCTL_DSP_CHANNELS); } static PyObject * oss_speed(oss_t *self, PyObject *args) { - return _do_ioctl_1(self, args, "speed", SNDCTL_DSP_SPEED); + return _do_ioctl_1(self->x_fd, args, "speed", SNDCTL_DSP_SPEED); } static PyObject * oss_sync(oss_t *self, PyObject *args) { - return _do_ioctl_0(self, args, "sync", SNDCTL_DSP_SYNC); + return _do_ioctl_0(self->x_fd, args, "sync", SNDCTL_DSP_SYNC); } static PyObject * oss_reset(oss_t *self, PyObject *args) { - return _do_ioctl_0(self, args, "reset", SNDCTL_DSP_RESET); + return _do_ioctl_0(self->x_fd, args, "reset", SNDCTL_DSP_RESET); } static PyObject * oss_post(oss_t *self, PyObject *args) { - return _do_ioctl_0(self, args, "post", SNDCTL_DSP_POST); + return _do_ioctl_0(self->x_fd, args, "post", SNDCTL_DSP_POST); } |