[gnome-cyr] Re: [gnome-cyr] Патч к esound на подключение к arts аудиосерверу
- From: Vlad Harchev <hvv hippo ru>
- To: gnome-cyr gnome org
- Subject: [gnome-cyr] =?koi8-r?q?Re=3A_=5Bgnome-cyr=5D_=F0=C1=D4=DE_=CB_esound_=CE=C1?==?koi8-r?q?_=D0=CF=C4=CB=CC=C0=DE=C5=CE=C9=C5_=CB_arts_=C1=D5=C4?==?koi8-r?q?=C9=CF=D3=C5=D2=D7=C5=D2=D5?=
- Date: Sat, 11 May 2002 12:56:46 +0500 (SAMST)
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]