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