[sisyphus] доступ к alsa из-под разных пользователей

Artem =?iso-8859-1?q?u2u_=CE=C1_nm=2Eru?=
Сб Ноя 12 19:57:39 MSK 2005


Доброго времени суток всем!

Продолжая терзать slmodemd ,  стал добавлять в него софтовый вывод звука 
(тот, который должен выводиться через отсутствующий у меня, и наверное, 
у многих владельцев ноутбуков модемный динамик). Вот уже и модем начал 
голос подавать (в виде прерывистого и более высокчастотного писка пока, 
но это уже вопросы конверсии различных частот оцифровки и синхронизация 
размеров буферов - решаются с помощью того же alsa api).
Т.к. slmodemd работает из-под root (под обычным user вроде тоже 
работает, но выдает ошибки при старте - жалуется на memory allocation и 
еще на что-то), то после старта из-под рута, он открывает звуковое 
устройство alsa default - и после этого все программы (хmms, aplay) 
из-под простых пользователей начинают ругаться на то, что нет доступа к 
звуковому устройству (хотя у меня настроен dmix). Стартую slmodemd 
из-под простого пользователя и в под тем же пользователем пробую xmms - 
звуки от модема и от xmms нормально микшируются.

Подозревая, что это какие-то особенности sisyphus, отсылаю письмо  сюда.

P.S. Открытие устройства выполняется следующим кодом (по прообразу aplay)

int rc;
char *pcm_name = "default";
snd_pcm_t *shandle;

<skip>

rc = snd_pcm_open(&shandle, pcm_name,
					SND_PCM_STREAM_PLAYBACK, 0);
if (rc < 0) {
		ERR("Cannot open speaker playback device %s\n",
			snd_strerror(rc));
		return 1;
}

<skip>

P.P.S.  Это только у меня в XMMS при выводе через dmix не работает 
"пауза"? Воспроизведение останавливается, но продолжить потом нельзя - 
нужно сначала композицию включать кнопкой play. При указании вывода 
напрямую в hw:0.0 - все работает.

Rgds, Artem.



Подробная информация о списке рассылки Sisyphus