| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Use Py_UnpackTuple instead of PyArg_ParseTuple where possible.
|
| |
|
|
|
|
|
| |
convince gcc (4.0.x) the variables are never used uninitialized (and raising
a proper exception if they ever are.)
|
|
|
|
| |
Probably should be backported.
|
| |
|
|
|
|
| |
AFMT_S32_BE, AFMT_MPEG.
|
|
|
|
| |
attributes to oss_audio_device object: 'closed', 'name', and 'mode'.
|
|
|
|
|
| |
_EXPORT_INT calls in #ifdef's, to avoid breaking the build on MkLinux
(Linux 2.0).
|
| |
|
|
|
|
|
|
|
| |
build (assert(gc->gc.gc_refs != 0) in visit_decref()).
Because OSSAudioError is a global, we must compensate (twice!) for
PyModule_AddObject()'s "helpful" decref of the object it adds.
|
| |
|
|
|
|
| |
8 bits is 1 byte, and that isn't about to change any time soon. (I hope!)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* it no longer takes ssize, which served no purpose apart from
scolding you if you got it wrong
* changed the order of the three remaining required arguments
to (format, channels, rate) to match the order in which they
must be set
* replaced the optional argument 'emulate' with 'strict': if strict
true, and the audio device does not accept the requested sampling
parameters, raise OSSAudioError
* return a tuple (format, channels, rate) reflecting the sampling
parameters that were actually set
Change the canonical name of ossaudiodev.error to
ossaudiodev.OSSAudioError (keep an alias for backwards compatibility).
Remove 'audio_types' list and 'n_audio_types' (no longer needed now that
setparameters() no longer has an 'ssize' argument to police).
|
|
|
|
|
| |
that way it applies to *only* the ioctl() call, and also happens for the
other blocking ioctls (POST, RESET).
|
|
|
|
|
|
|
| |
* sync(), because it waits for hardware buffers to flush, which
can take several seconds depending on cirumstances (according
to the OSS docs)
* close(), because it does an implicit sync()
|
|
|
|
| |
Bug spotted by Joerg Lehmann <joerg@luga.de>.
|
|
|
|
|
| |
opening it in non-blocking mode. Both Guido and David Hammerton have
reported that this fixes their problems with ossaudiodev -- hooray!
|
| |
|
|
|
|
|
|
|
|
|
| |
it instead of the OS-specific <linux/soundcard.h> or <machine/soundcard.h>.
Mixers devices have an ioctl-only interface, no read/write -- so the
flags passed to open() don't really matter. Thus, drop the 'mode'
parameter to openmixer() (ie. second arg to newossmixerobject()) and
always open mixers with O_RDWR.
|
| |
|
| |
|
| |
|
|
|
|
| |
SOUND_DEVICE_NAMES as 'control_labels' and 'control_names'.
|
|
|
|
| |
what it is.
|
|
|
|
| |
OSSType to OSSAudioType.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
devices(), stereodevices(), recdevices() ->
controls(), stereocontrols(), reccontrols()
Based on recommendation of Hannu Savolainen <hannu@opensound.com>:
The right term to use for things like bass/treble/mic/vol/etc is
"control".
"Device" refers to different mixer devices (/dev/mixer0 to /dev/mixerN).
"Channel" cannot be used because it refers to mono/stereo/multich
channels. In fact most mixer controls have left/right channels so ...
|
|
|
|
| |
setrecsrc() -> set_recsrc().
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* channels() -> devices()
* stereochannels() -> stereodevices()
* recchannels() -> recdevices()
* getvol() -> get()
* setvol() -> set()
This is for (slightly) more consistency with the OSS ioctl names
(READ_DEVMASK, READ_RECMASK, READ_STEREODEVS).
Also make sure the C function names correspond more closely to the
Python method names for mixer methods.
|
|
|
|
|
|
| |
(It added nothing, and served no obvious purpose.)
Export SOUND_MIXER_NRDEVICES constant.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* add oss_mixer_t and OSSMixerType
* add newossmixerobject(), oss_mixer_dealloc(), ossopenmixer()
* add _do_ioctl_1_internal() to support mixer ioctls
* add mixer methods: oss_mixer_{close,fileno,channels,stereo_channels,
rec_channels,getvol,setvol,getrecsrc,setrecsrc}()
* add oss_mixer_methods list
* add oss_mixer_getattr() (why?!)
* export SOUND_MIXER_* constants from soundcard.h
|
|
|
|
|
| |
_do_ioctl_1() so they take a file descriptor rather than an oss_t
pointer.
|
|
|
|
|
|
|
| |
* rename oss_t to lad_t, Ladtype to OSSType,
* rename lad_*() methods to oss_*()
* rename lad_methods list to oss_methods
Patch and impetus supplied by Nicholas FitzRoy-Dale <wzdd@lardcave.net>.
|
| |
|
|
|
|
|
|
| |
Use OSSAudioError much less frequently -- all real I/O errors (ie. any
time open(), read(), write(), ioctl(), or select() return an error)
become IOError. OSSAudioError is only used now for bad open() mode.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added _EXPORT_INT macro to export an integer constant to Python-space.
Use it for all the AFMT_* constants, and update the list of AFMT_*
constants to match what's in Linux 2.4: add AFMT_{QUERY,IMA_ADPCM,
MPEG,AC3}. This should probably be tested with older versions of OSS,
eg. with Linux 2.2 and 2.0.
Export all SNDCTL_* ioctl numbers (where "all" is the set found in
/usr/include/linux/soundcard.h on my Debian 3.0 system -- again
Linux 2.4). Again needs to be tested with older OSS versions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
it impossible to access blocking mode!
* Rename write() to writeall(), and add a write() method that just
does one write().
* Rearrange/simplify writeall(): in particular, don't supply a timeout
to select(). Let it block forever if it has to.
* Add a bunch of simple ioctl() wrappers: nonblock(), setfmt(),
getfmts(), channels(), speed(), sync(), reset(), post(). These
wrap, respectively, SNDCTL_DSP_NONBLOCK, SNDCTL_DSP_SETFMT,
SNDCTL_DSP_GETFMTS, etc.
* Reduce flush() (which was a wrapper for the SNDCTL_DSP_SYNC ioctl) to
an alias for sync().
* Rearrange the lad_methods list to reflect the order in which the
methods are defined, and add some grouping comments.
|
|
This module is a replacement for linuxaudiodev, which will eventually
be deprecated.
Initial revision is rev 2.20 of linuxaudiodev.c, with a rewritten
header comment.
|