Someone can confirm this is the OSS conformant behaviour?
--
Abramo Bagnara mailto:[EMAIL PROTECTED]
Opera Unica Phone: +39.546.656023
Via Emilia Interna, 140
48014 Castel Bolognese (RA) - Italy
--- Begin Message ---
Hi Abramo,
I am working with an SDR (Software Defined Radio) under
Linux which uses soundcards to move part of the radio
spectrum into the PC computer.
I have made this package using OSS but it would of course
be very nice to make it run under ALSA as well.
At the moment ALSA is not compatible to OSS because the
ioctl calls do not behave as specified in the OSS manual.
For example, the following sequence differs between OSS and ALSA:
int speed=100000;
ioctl(dv,SNDCTL_DSP_SPEED,&speed);
After this sequence the variable speed contains 48000
or whatever the maximum speed is for the device while
ALSA does not change the value of speed.
The OSS manual explicitly instructs the application programmer
to check the returned speed value to get the actual speed
that the device will use. The OSS API accepts any value between
1Hz and 2 GHz ( 1 to 2000000000) but the lowest/highest possible
sampling rate will be returned by ioctl and used by the device.
I am not a programmer myself, I have a background in physics, so
I use straightforward C and assembly to do digital signal
processing. How to modify the ioctl calls and the alsa-oss.c
program is beyond my skils.
Would you consider updating the alsa-oss.c program to become
truly OSS compatible?
The problems I have are with the functions
SNDCTL_DSP_SPEED
SNDCTL_DSP_CHANNELS
If you want to know a little more about my project, have a look at:
http://ham.te.hik.se/~sm5bsz/linuxdsp/linrad.htm
mirror at
http://nitehawk.com/sm5bsz/linuxdsp/linrad.htm
Kind regards
Leif Åsbrink
--- End Message ---