[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