Доброго дня, Дмитрий! > Ну, вообще-то, я говорил о ситуации, когда сервер уже запущен на уровне > системы, может быть, на другой машине. Клиент устанавливает с ним OK, не вопрос. Я просто привёл один из вариантов. Согласен, что это скорее рецепт временного обхода, если сильно нужно.
> А я думал, что без ./configure --prefix=$HOME такое сейчас сделать > нельзя. Объяснишь, как это делается? Во время сборки ничего сильно серьёзного не привязывается. Кладёшь себе ~/.voiceman.conf, в нём нужно обязательно переправить: 1. имя сокета, чтобы оно было скажем в ~/tmp/voiceman.socket, а не в /var/run; 2. имя лог файла тоже куда-нибудь, где есть право на запись. Сейчас переделал посылку лога в syslog, возможность напрямую сохранять в файл запускается только при явном включении. То есть в дальнейшем п. 2 не нужен; 3. запускаешь сервер с ключом -c, чтобы взять конфигурацию из ~/.voiceman.conf; 4. где-нибудь устанавливаешь переменную export VOICEMAN=/home/user/tmp/voiceman.socket, чтобы клиенты не лезли в /var/run, а искали сокет в другом месте. Таблицы символов он продолжит брать из /usr/share/voiceman, но это совершенно нормально, т. к. там прав на запись не требуется. > В каком смысле нужны? Нужны - значит, клиент потребовал их для работы в > данный момент? Если клиенту для этого ещё понадобится выполнять какие-то > скрипты с правами root и перезагружать сервер, то мы придём к тому же, с > чего начали: для работы с сервером клиенту не достаточно возможностей > протокола. Да нет, тут речь шла об скриптовании изменения частей конфига с подхваткой их сервером, при условии, что сервер работает от юзера. Думаю, что это в любом случае не очень изящная идея, предлагаю лучше поглубже обсудить второй вариант, что идёт ниже. Это интереснее. > Извини, не понял, какую проблему должно решать такое ограничение? Это для горячей смены синтезаторов внутри одного коннекта, давай на примере: 1. имеем два output'а, у которых имя (name=) одинаковое, допустим eng_output; 2. но у них разные id=, например en_mbrola и en_espeak; 3. как говорилось раньше, допускается активность только одного output из группы с одинаковыми именами; 4.клиент шлёт команду, уважаемый сервер, будь добр, вруби output, у которого id=eng_espeak. Сервер его находит, смотрит его name, выводит из работы output с таким name, который использовался сейчас, и ставит на его место произношение espeak. В текущий дизайн сервера это вписывается великолепно, и пользовательская ценность как будто бы тоже присутствует, но напиши, что думаешь об этом ты, пжста. > Можно, наверное, таким способом решить проблему с выбором синтезаторов, > но в конфигурации у Voiceman есть и другие вещи, которые имело бы смысл > настраивать пользователю. Например, произношение символов или > сокращений. Ну вот на этом заходе приделываю возможность держать несколько replacements файлов, как например replacements.all, replacements.some и replacements.none. Переключение между ними делается наподобие того, как такую команду шлёт emacspeak. Это на тему смены пунктуации, а больше параметров сильно и нет. Остаются сокеты, логгинг, стартовое приветствие, зачем их менять. > Ну, можно записать id в поле идентификатора имени в emacspeak/servers и > реализовать команду смены id в Emacspeak как выбор другого сервера из > этой директории. Но это же будет уже другой коннект? > Или написать для этого команду на лиспе. Да, это больше похоже на подходящий вариант. -- Michael Pozhidaev. E-mail: [email protected]. Tomsk State University. http://www.csd.tsu.ru ALT Linux Team. http://www.altlinux.org -- Blinux-rus mailing list [email protected] http://www.a11ywiki.org/cgi-bin/mailman/listinfo/blinux-rus
