wrap /dev/dsp pomoci ALSA
Ivo Panacek
ivop na jlabs.cz
Úterý Srpen 24 11:12:13 CEST 2004
> Mel jsem za to ze soundwrapper odchytava volani na /dev/dsp. Takze
> cokoli co na nej leze, je-li pusteno pres soundwrapper, primo na
> /dev/dsp tak nemuze.
if [ `/sbin/pidof -s artsd` ] ; then
artsdsp "$@"
else
if [ `/sbin/pidof -s esd` ]; then
esddsp "$@"
else
"$@"
fi
fi
Ja to ladil treba takto:
strace -f -o /tmp/lex.strace esddsp lexicon
a tam pak bylo:
14178 open("/dev/dsp", O_WRONLY|O_NONBLOCK) = 4
pricemz to 14178 je uz vlastni program (lex)
vzapeti ho zavre, znovu otevre, cosi zkousi:
14178 ioctl(4, SNDCTL_DSP_GETBLKSIZE, 0x80a7160) = 0
14178 ioctl(4, SNDCTL_DSP_RESET, 0) = 0
14178 ioctl(4, SNDCTL_DSP_GETFMTS, 0xfefff000) = 0
14178 ioctl(4, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 0xfefff000) = 0
14178 ioctl(4, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 0xfefff000) = 0
14178 ioctl(4, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 0xfefff000) = 0
14178 ioctl(4, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 0xfefff000) = 0
14178 ioctl(4, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 0xfefff000) = 0
14178 ioctl(4, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 0xfefff000) = 0
14178 ioctl(4, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 0xfefff000) = 0
14178 ioctl(4, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 0xfefff000) = 0
14178 ioctl(4, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 0xfefff000) = 0
a opet ho zavre.
Ale az pak se snazi cist konfiguraci, takze tohle bude jen test
na zacatku. Nicmene pak se uz /dev/dsp nikdy otevirat nesnazi ... ?
--
S pozdravem
Ivo Panáček
Další informace o konferenci Linux