diff options
-rw-r--r-- | debian/control | 1 | ||||
-rw-r--r-- | debian/mumble.lintian-override | 16 | ||||
-rw-r--r-- | scripts/binserver.pl | 1 | ||||
-rw-r--r-- | src/mumble/Settings.cpp | 11 | ||||
-rw-r--r-- | src/mumble/Settings.h | 2 | ||||
-rw-r--r-- | src/mumble/TextToSpeech_unix.cpp | 4 |
6 files changed, 31 insertions, 4 deletions
diff --git a/debian/control b/debian/control index eeda7397b..888e3682a 100644 --- a/debian/control +++ b/debian/control @@ -10,6 +10,7 @@ Standards-Version: 3.7.3 Package: mumble Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} +Suggests: festival (>= 1.4.3) Description: Low latency VoIP client Mumble is a low-latency, high quality voice chat program for gaming. It features noise supression, automatic gain control and low latency audio diff --git a/debian/mumble.lintian-override b/debian/mumble.lintian-override index 71614a864..b33821eb6 100644 --- a/debian/mumble.lintian-override +++ b/debian/mumble.lintian-override @@ -1,2 +1,14 @@ -mumble: ldconfig-symlink-missing-for-shlib usr/lib/libmumble.so.1 usr/lib/libmumble.so.1.1.1 libmumble.so.1 -mumble: package-name-doesnt-match-sonames libmumble1 +# libmumble isn't a linkable library, it's an injection stub used to chain +# OpenGL calls in thirdparty applications (like games). +# It doesn't really fit anywhere inside current policy; it looks and feels +# like a shared library, but in reality it's just a binary blob that is +# loaded at runtime. + +# The "library" will never be linked to by any application, and mumble-overlay +# always uses the full path (/usr/lib/libmumble.so.x.y.z), so the symlinks +# are not necesarry. +mumble: ldconfig-symlink-missing-for-shlib libmumble.so.* + +# qmake sets the soname to libmumble1. Since no application will ever link +# with this library, that doesn't matter. +mumble: package-name-doesnt-match-sonames libmumble* diff --git a/scripts/binserver.pl b/scripts/binserver.pl index 53430862a..cf007e77c 100644 --- a/scripts/binserver.pl +++ b/scripts/binserver.pl @@ -43,6 +43,7 @@ $files{"README"}="README"; $files{"CHANGES"}="CHANGES"; $files{"INSTALL"}="INSTALL"; $files{"murmur.pl"}="scripts/murmur.pl"; +$files{"weblist.pl"}="scripts/weblist.pl"; $files{"murmur.ini"}="scripts/murmur.ini"; my $tar = new Archive::Tar(); diff --git a/src/mumble/Settings.cpp b/src/mumble/Settings.cpp index b3936c3c4..e24abe01a 100644 --- a/src/mumble/Settings.cpp +++ b/src/mumble/Settings.cpp @@ -71,7 +71,16 @@ Settings::Settings() { iDXOutputDelay = 5; +#ifdef TTS_ESPEAK + qsFestival=QLatin1String("/usr/bin/espeak"); + qsFestivalPattern=QLatin1String("%1\n"); +#else qsFestival=QLatin1String("/usr/bin/festival --batch --pipe"); + qsFestivalPattern=QLatin1String("(SayText \"%1\")"); + qsFestivalSearch=QLatin1String("\""); + qsFestivalReplace=QLatin1String("\\\""); +#endif + qsALSAInput=QLatin1String("default"); qsALSAOutput=QLatin1String("default"); @@ -166,6 +175,7 @@ void Settings::load() { SAVELOAD(qbaDXOutput, "directsound/output"); SAVELOAD(qsFestival, "tts/festival"); + SAVELOAD(qsFestivalPattern, "tts/pattern"); SAVELOAD(bTTS, "tts/enable"); SAVELOAD(iTTSVolume, "tts/volume"); SAVELOAD(iTTSThreshold, "tts/threshold"); @@ -273,6 +283,7 @@ void Settings::save() { SAVELOAD(qbaDXOutput, "directsound/output"); SAVELOAD(qsFestival, "tts/festival"); + SAVELOAD(qsFestivalPattern, "tts/pattern"); SAVELOAD(bTTS, "tts/enable"); SAVELOAD(iTTSVolume, "tts/volume"); SAVELOAD(iTTSThreshold, "tts/threshold"); diff --git a/src/mumble/Settings.h b/src/mumble/Settings.h index 8f41eb1ec..cbd6a87b1 100644 --- a/src/mumble/Settings.h +++ b/src/mumble/Settings.h @@ -68,7 +68,7 @@ struct Settings { int iDXOutputDelay; - QString qsFestival; + QString qsFestival, qsFestivalPattern, qsFestivalSearch, qsFestivalReplace; QString qsALSAInput, qsALSAOutput; QString qsPulseAudioInput, qsPulseAudioOutput; bool bPulseAudioEcho; diff --git a/src/mumble/TextToSpeech_unix.cpp b/src/mumble/TextToSpeech_unix.cpp index 3dac82267..3afb7ab52 100644 --- a/src/mumble/TextToSpeech_unix.cpp +++ b/src/mumble/TextToSpeech_unix.cpp @@ -53,7 +53,9 @@ TextToSpeechPrivate::~TextToSpeechPrivate() { void TextToSpeechPrivate::say(const QString &txt) { QString text = txt; - qpFestival.write(QString::fromLatin1("(SayText \"%1\")").arg(text.replace(QLatin1String("\""),QLatin1String("\\\""))).toLatin1()); + if (! g.s.qsFestivalSearch.isEmpty()) + text.replace(QRegExp(g.s.qsFestivalSearch),g.s.qsFestivalReplace); + qpFestival.write(g.s.qsFestivalPattern.arg(text).toUtf8()); } void TextToSpeechPrivate::setVolume(int) { |