[gnome-cyr] Re: [gnome-cyr] Патч к esound на подключение к arts аудиосерверу



On Wed, 8 May 2002, Igor Mokrushin wrote:

 Привет всем!

> Hi All!
> 
> Сделал патч к esound версии 0.2.26, что бы он мог подключаться
> к arts аудиосерверу, просто возникла необходимость использовать
> esd в среде KDE из-за ряда программ и тем самым не подключаться
> на прямую к /dev/dsp. Патч позволяет esd детектить, запущен ли artsd 
> или нет, если не запущен, то использует OSS или ALSA, т.е. как обычно.
> После установки патча надо сделать ./autoconf, что бы перебилдить
> ./confugure. По умолчанию в configure стоит ключ --with-arts, который
> ищет наличие arts в системе.
> P.S. Я смог проверить эту реализацию в связке OSS+aRts, ALSA у
> меня нет, так что пробуйте у кого есть. Проверял так же на запись,
> esdrec'ом, вроде бы проблем небыло при воспроизведении esdcat'ом.
> Есть правда одна неприятность, это сегфаулт при выходе esd,
> впринципе, это виновата функция arts_init(), и похоже привязка
> этого глюка идет к glibc-2.2.5. Вообщем пробуйте, и сообщайте...
> 
>  

 Прежде всего большое спасибо за патч!

 У меня такие мысли насчет патча: если есть желание продвинуть его в
дистрибьютивы, то нужно убрать динамическую линковку с либой arts. Иначе из-за
появляющихся зависимостей на KDE вряд ли кто из дистрибьюторов пойдет на
включение этого патча.

 Чтобы это сделать, надо загрузить библиотеку с arts динамически и если
получилось, взять указатели на используемые из нее ф-ии, и вызывать потом все
эти ф-ии по указателям. Так как esd не использует glib придется использовать
dlopen/dlsym/dlclose (они вроде есть на всех юниксах, кроме HPUX).
Наверно было бы еще полезно переместить кусок, вставляемый в esd_audio_open, в
одну ф-ию, и вызывать ее из всех тех мест.

 Насчет сегфолта при выходе: рекомендую попробовать звать _exit() явно -
возможно тогда сегфолта не произойдет. Это может прокатить. А может послать
sigterm или даже sigkill самому себе.

 Best regards,
  -Vlad





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]