From dc7980d53845c8e7f2b27c00b1ddbacf91ef80fd Mon Sep 17 00:00:00 2001 From: Thorvald Natvig Date: Fri, 20 Oct 2006 13:25:19 +0000 Subject: [PATCH] DirectInput workaround for keyboards with thousands of buttons. git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@410 05730e5d-ab1b-0410-a4ac-84af385074fa --- GlobalShortcut_win.cpp | 22 ++--- GlobalShortcut_win.h | 2 +- mumble_de.ts | 188 ++++++++++++++++++++--------------------- 3 files changed, 107 insertions(+), 105 deletions(-) diff --git a/GlobalShortcut_win.cpp b/GlobalShortcut_win.cpp index f050338b1..8f36f6670 100644 --- a/GlobalShortcut_win.cpp +++ b/GlobalShortcut_win.cpp @@ -109,13 +109,15 @@ void DirectInputKeyWidget::displayKeys() { QStringList keys; foreach(qpButton button, qlButtons) { - QString device=QString("O:"); + QString device=QString::number(button.first.Data1,16) + ":"; QString name=QString("Unknown"); + InputDevice *id = gsw->qhInputDevices[button.first]; if (button.first == GUID_SysMouse) device=QString("M:"); else if ((button.first == GUID_SysKeyboard) || (button.first.Data1 == 0)) device=QString("K:"); - InputDevice *id = gsw->qhInputDevices[button.first]; + else if (id) + device=id->name+":"; if (id) { name=id->qhNames[button.second]; } @@ -231,6 +233,7 @@ BOOL GlobalShortcutWin::EnumDevicesCB(LPCDIDEVICEINSTANCE pdidi, LPVOID pContext QString sname = QString::fromUtf16(reinterpret_cast(pdidi->tszInstanceName)); InputDevice *id = new InputDevice; + id->name = name; id->guid = pdidi->guidInstance; if (FAILED(hr = cbgsw->pDI->CreateDevice(pdidi->guidInstance, &id->pDID, NULL))) @@ -281,6 +284,8 @@ BOOL GlobalShortcutWin::EnumDevicesCB(LPCDIDEVICEINSTANCE pdidi, LPVOID pContext if(FAILED(hr = id->pDID->SetProperty(DIPROP_BUFFERSIZE, &dipdw.diph))) qFatal("GlobalShortcutWin::SetProperty"); + qWarning("Adding device %s %s %s:%d", qPrintable(QUuid(id->guid).toString()),qPrintable(name),qPrintable(sname),id->qhNames.count()); + cbgsw->qhInputDevices[id->guid] = id; } else { id->pDID->Release(); @@ -401,9 +406,9 @@ void GlobalShortcutWin::timeTicked() { if (!bIgnoreActive) { if (rgdod[j].dwData & 0x80) { gsw->iButtonsDown++; - id->activeMap[rgdod[j].dwOfs] = true; + id->activeMap.insert(rgdod[j].dwOfs); pressed = true; - } else if (id->activeMap[rgdod[j].dwOfs]) { + } else if (id->activeMap.contains(rgdod[j].dwOfs)) { gsw->iButtonsDown--; if (gsw->iButtonsDown == 0) pressed = true; @@ -449,8 +454,7 @@ void GlobalShortcutWin::timeTicked() { void GlobalShortcutWin::resetMap() { foreach(InputDevice *id, qhInputDevices) { - for(int i=0;i<256;i++) - id->activeMap[i]=false; + id->activeMap.clear(); } bIgnoreActive = true; iButtonsDown = 0; @@ -459,10 +463,8 @@ void GlobalShortcutWin::resetMap() { QList GlobalShortcutWin::getCurrentButtons() { QList buttons; foreach(InputDevice *id, qhInputDevices) { - foreach(DWORD ofs, id->qhTypeToOfs) { - if (id->activeMap[ofs]) { - buttons << qpButton(id->guid, id->qhOfsToType[ofs]); - } + foreach(DWORD ofs, id->activeMap) { + buttons << qpButton(id->guid, id->qhOfsToType[ofs]); } } return buttons; diff --git a/GlobalShortcut_win.h b/GlobalShortcut_win.h index ecfd9bc0f..cb3eb6e03 100644 --- a/GlobalShortcut_win.h +++ b/GlobalShortcut_win.h @@ -62,7 +62,7 @@ struct InputDevice { QMultiHash qmhOfsToShortcut; // Buttons active since last reset - unsigned char activeMap[256]; + QSet activeMap; }; class DirectInputKeyWidget : public QLineEdit { diff --git a/mumble_de.ts b/mumble_de.ts index 4ab0329a9..5980b27bc 100644 --- a/mumble_de.ts +++ b/mumble_de.ts @@ -65,7 +65,7 @@ Applies to sub-channels - Betrifft Unterkanäle + Betrifft Unterkanäle @@ -150,7 +150,7 @@ This button will cancel all changes and closes the dialog without updating the ACLs or groups on the server. - Dieser Button macht alle Änderungen rückgängig und schließt den Dialog ohne ACLs oder Gruppen auf dem Server zu aktualisieren. + Dieser Button macht alle Änderungen rückgängig und schließt den Dialog ohne ACLs oder Gruppen auf dem Server zu aktualisieren. @@ -170,7 +170,7 @@ This sets whether or not the ACL up the chain of parent channels are applied to this object. Only those entries that are marked in the parent as "Apply to sub-channels" will be inherited. - Dies legt fest ob ACL am Anfang der Kette von Elternkanälen betreffen dieses Object. Nur solche Einträge die in den Eltern als "Betrifft Unterkanäle" markiert sind, werden beerbt. + Dies legt fest ob ACL am Anfang der Kette von Elternkanälen dieses Objekt betrifft. Nur solche Einträge die in den Eltern als "Betrifft Unterkanäle" markiert sind, werden beerbt. @@ -225,12 +225,12 @@ Entry should apply to sub-channels. - Eintrag sollte Unterkanäle betreffen. + Eintrag sollte Unterkanäle betreffen. This makes the entry apply to sub-channels of this channel. - Dies lässt den Eintrag Unterkanäle des Kanals betreffen. + Dies lässt den Eintrag Unterkanäle des Kanals betreffen. @@ -240,7 +240,7 @@ This controls which group of users this entry applies to.<br />Note that the group is evaluated in the context of the channel the entry is used in. For example, the default ACL on the Root channel gives <i>Write</i> permission to the <i>admin</i> group. This entry, if inherited by a channel, will give a user write privileges if he belongs to the <i>admin</i> group in that channel, even if he doesn't belong to the <i>admin</i> group in the channel where the ACL originated.<br />If a group name starts with a !, its membership is negated, and if it starts with a ~, it is evaluated in the channel the ACL was defined in, rather than the channel the ACL is active in. Order is important; <i>!~in</i> is valid, but <i>~!in</i> is not.<br />A few special predefined groups are:<br /><b>all</b> - Everyone will match.<br /><b>auth</b> - All authenticated users will match.<br /><b>sub,a,b,c</b> - User currently in a sub-channel minimum <i>a</i> common parents, and between <i>b</i> and <i>c</i> channels down the chain. See the website for more extensive documentation on this one.<br /><b>in</b> - Users currently in the channel will match (convenience for <i>sub,0,0,0</i>).<br /><b>out</b> - Users outside the channel will match (convenience for <i>!sub,0,0,0</i>).<br />Note that an entry applies to either a user or a group, not both. - Dies kontrolliert welche Gruppe von Nutzern dieser Eintrag betrifft.<br />Die Gruppen werden im Kontext des Kanals ausgewertet in dem sich der Eintrag befindet. Zum Beispiel gibt der Standard ACL in den Wurzelkanälen <i>Schreib</i>-Rechte der <i>Admin</i>-Gruppe. Dieser Eintrag gibt den Nutzern - wenn von einem Kanal geerbt - Schreibrecht, wenn er zur Gruppe der <i>Admin</i>s in diesem Kanal gehört, selbst wenn er nicht zu der <i>Admin</i>-Gruppe gehört woher der ACL eigentlich stammt.<br />Beginnt ein Gruppenname mit einem "!", wird die Mitgliedschaft negiert und wenn es mit einem "~" beginnt, wird es in dem Kanal ausgewertet in dem die ACL definiert wurde. Die Reihenfolge ist wichtig; <i>!~in</i> ist gültig, <i>~!in</i> jedoch nicht. Einige wenige spezielle vordefinierte Gruppen sind: <br /><b>all</b> - Jeder trifft zu.<br /><b>auth</b> - Alle authentifizierten Nutzer treffen zu.<br /><b>in</b> - Nutzer im Channel treffen zu.<br /><b>out</b> - Nutzer außerhalb des Kanals treffen zu.<br />Ein Eintrag trifft dabei entweder auf einen Nutzer oder eine Gruppe zu, nicht auf beide. + Dies kontrolliert welche Gruppe von Nutzern dieser Eintrag betrifft.<br />Die Gruppen werden im Kontext des Kanals ausgewertet in dem sich der Eintrag befindet. Zum Beispiel gibt der Standard ACL in den Wurzelkanälen <i>Schreib</i>-Rechte der <i>Admin</i>-Gruppe. Dieser Eintrag gibt den Nutzern - wenn von einem Kanal geerbt - Schreibrecht, wenn er zur Gruppe der <i>Admin</i>s in diesem Kanal gehört, selbst wenn er nicht zu der <i>Admin</i>-Gruppe gehört woher der ACL eigentlich stammt.<br />Beginnt ein Gruppenname mit einem "!", wird die Mitgliedschaft negiert und wenn es mit einem "~" beginnt, wird es in dem Kanal ausgewertet in dem die ACL definiert wurde. Die Reihenfolge ist wichtig; <i>!~in</i> ist gültig, <i>~!in</i> jedoch nicht. Einige wenige spezielle vordefinierte Gruppen sind: <br /><b>all</b> - Jeder trifft zu.<br /><b>auth</b> - Alle authentifizierten Nutzer treffen zu.<br /><b>in</b> - Nutzer im Channel treffen zu.<br /><b>out</b> - Nutzer außerhalb des Kanals treffen zu.<br />Ein Eintrag trifft dabei entweder auf einen Nutzer oder eine Gruppe zu, nicht auf beide. @@ -305,12 +305,12 @@ Make group inheritable to sub-channels - Gruppe zu Unterkanal vererbbar machen + Gruppe zu Unterkanal vererbbar machen This makes this group inheritable to sub-channels. If the group is non-inheritable, sub-channels are still free to create a new group with the same name. - Dies macht die Gruppe zu Unterkanälen vererbbar. Ist die Gruppe nicht-vererbbar, können Unterkanäle Gruppen mit demselben Namen erstellen. + Dies macht die Gruppe zu Unterkanälen vererbbar. Ist die Gruppe nicht-vererbbar, können Unterkanäle Gruppen mit demselben Namen erstellen. @@ -345,7 +345,7 @@ Mumble - Edit ACL for %1 - + Mumble - ACL von %1 editieren @@ -373,7 +373,7 @@ This will configure the input channels for ASIO. Make sure you select at least one channel as microphone and speaker. <i>Microphone</i> should be where your microphone is attached, and <i>Speaker</i> should be a channel that samples "What you hear".<br />For example, on the Audigy 2 ZS, a good selection for Microphone would be "Mic L" while Speaker should be "Mix L" and "Mix R" - Dies konfiguriert die Eingangskanäle für ASIO. Es muss sichergestellt werden, dass wenigstens ein Kanal als Mikrofon und Lautsprecher ausgewählt wurde. <br />Eine gute Auswahl für eine Audigy 2 ZS wäre für Mikrofon "Mic L", während es für die Lautsprecher "Mix L" und "Mix R" sein sollte + Dies konfiguriert die Eingangskanäle für ASIO. Es muss sichergestellt werden, dass wenigstens ein Kanal als Mikrofon und Lautsprecher ausgewählt wurde. <br />Eine gute Auswahl für eine Audigy 2 ZS wäre für Mikrofon "Mic L", während es für die Lautsprecher "Mix L" und "Mix R" sein sollte @@ -488,12 +488,12 @@ &Query - + &Abfragen &Configure - + &Konfigurieren @@ -519,7 +519,7 @@ <h3>Mumble v0.9.4</h3><p>Copyright 2005-2006 Thorvald Natvig<br />slicer@users.sourceforge.net</p><p><b>A voice-chat utility for gamers</b></p><p><tt>http://mumble.sourceforge.net/</tt></p> - <h3>Mumble v0.9.4</h3><p>Copyright 2005-2006 Thorvald Natvig<br />slicer@users.sourceforge.net</p><p>Deutsche Übersetzung von Matthias Vogelgesang<br /> m0ta@users.sourceforge.net</p><p><b>Ein Voicechat-Programm für Spieler</b></p><p><tt>http://mumble.sourceforge.net/</tt></p> + <h3>Mumble v0.9.4</h3><p>Copyright 2005-2006 Thorvald Natvig<br />slicer@users.sourceforge.net</p><p>Deutsche Übersetzung von Matthias Vogelgesang<br /> m0ta@users.sourceforge.net</p><p><b>Ein Voicechat-Programm für Spieler</b></p><p><tt>http://mumble.sourceforge.net/</tt></p> @@ -645,7 +645,7 @@ <b>This selects how long after a perceived stop in speech transmission should continue.</b><br />Set this higher if your voice breaks up when you speak (seen by a rapidly blinking voice icon next to your name).<br />Only makes sense when used with Voice Activity transmission. - <b>Dies wählt aus, wie lange nach Beenden der Sprache noch übertragen werden soll.</b><br />Höhere Werte nutzen, wenn die Stimme plötzlich abbricht wenn man spricht (erkennbar an einem flackerndem Voice-Icon neben dem Namen).<br />Dies ist nur bei Stimmaktivierungs-Übertragung sinnvoll. + <b>Dies wählt aus, wie lange nach Beenden des Gesprächs noch übertragen werden soll.</b><br />Höhere Werte nutzen, wenn die Stimme plötzlich abbricht (erkennbar an einem flackerndem Voice-Icon neben dem Namen).<br />Dies ist nur bei Stimmaktivierungs-Übertragung sinnvoll. @@ -750,7 +750,7 @@ <b>Maximum amplification of input.</b><br />Mumble normalizes the input volume before compressing, and this sets how much it's allowed to amplify.<br />The actual level is continually updated based on your current speech pattern, but it will never go above the level specified here.<br />If the <i>Microphone loudness</i> level of the audio statistics hover around 100%, you probably want to set this to 2.0 or so, but if, like most people, you are unable to reach 100%, set this to something much higher.<br />Ideally, set it so <i>Microphone Loudness * Amplification Factor >= 100</i>, even when you're speaking really soft.<br /><br />Note that there is no harm in setting this to maximum, but Mumble will start picking up other conversations if you leave it to auto-tune to that level. - <b>Maximale Verstärkung des Eingangs.</b><br />Mumble normalisiert die Eingangslautstärke vor der Kompression, wobei dies einstellt wie stark verstärkt werden darf.<br />Der tatsächliche Level wird kontinuierlich vom Sprachmuster abhängig aktualisiert, aber niemals höher als hier festgelegt.<br />Wenn das Mikrofonlautstärkelevel in den Audiostatistiken um 100% liegt, sollte man dies auf 2.0 setzenm für Leute die dies kaum erreichen, muss es deutlich höher angesetzt werden.<br />Idealerweise sollte es so gesetzt werden: <i>Mikrofon Lautstärke * Verstärkungsfaktor >= 100</i>, selbst wenn man wirklich leise spricht.<br />Es ist nicht schädlich dies auf das Maximum zu setzen, aber Mumble wird auch andere Gespräche aufnehmen. + <b>Maximale Verstärkung des Eingangs.</b><br />Mumble normalisiert die Eingangslautstärke vor der Kompression, wobei dies einstellt wie sehr verstärkt werden darf.<br />Der tatsächliche Level wird kontinuierlich, vom Sprachmuster abhängig, aktualisiert; allerdings nie höher als hier festgelegt.<br />Wenn die Mikrofonlautstärke in den Audiostatistiken um 100% liegt, sollte man dies auf 2.0 setzen. Für Leute die dies kaum erreichen, muss es deutlich höher angesetzt werden.<br />Idealerweise sollte es folgendermaßen gesetzt werden: <i>Mikrofon Lautstärke * Verstärkungsfaktor >= 100</i>, selbst wenn man wirklich leise spricht.<br />Es ist nicht schädlich dies auf das Maximum zu setzen, aber Mumble wird auch Umgebungsgeräusche aufnehmen. @@ -833,12 +833,12 @@ This shows the peak power in the last frame (20 ms) of the speakers. Unless you are using a multi-channel sampling method (such as ASIO) with speaker channels configured, this will be 0. If you have such a setup configured, and this still shows 0 while you're playing audio from other programs, your setup is not working. - Dies zeigt die Spitzenpower im letzten Frame (20ms) des Lautsprechers an. Solange keine Multikanal Sampling Methode (wie ASIO) genutzt wird, wird dieser Wert 0 sein. Hat man solch ein Setup konfiguriert und der Wert ist trotzdem 0 während man Klänge von anderen Programmen abspielt, arbeit das Setup nicht korrekt. + Dies zeigt die Spitzenpower im letzten Frame (20ms) des Lautsprechers an. Solange keine Multikanal Sampling Methode (wie ASIO) genutzt wird, wird dieser Wert 0 sein. Hat man solch ein Setup konfiguriert und der Wert ist trotzdem 0 während man Klänge von anderen Programmen abspielt, arbeit das Setup nicht korrekt. This shows the peak power in the last frame (20 ms) after all processing. Ideally, this should be -96 dB when you're not talking. In reality, a sound studio should see -60 dB, and you should hopefully see somewhere around -20 dB. When you are talking, this should rise to somewhere between -5 and -10 dB.<br />If you are using echo cancellation, and this rises to more than -15 dB when you're not talking, your setup is not working, and you'll annoy other players with echoes. - Dies zeigt die Spitzenpower im letzten Frame (20ms) nach dem Processing an. Im Idealfall sollte dies -96 dB betragen, wann man nicht spricht. Die Realität zeigt, dass man in einem Tonstudio etwa -60 dB und zuhause -20 dB erwarten kann. When man spricht, sollte dies bis auf -5 bis -10 dB ansteigen.<br />Nutzt man Echoauslöschung und der Wert steigt auf mehr als -15 dB wenn man nicht spricht, arbeitet das Setup nicht korrekt und man stört andere Spieler mit Echos. + Dies zeigt die Spitzenpower im letzten Frame (20ms) nach dem Processing an. Im Idealfall sollte dies -96 dB betragen, wann man nicht spricht. Die Realität zeigt, dass man in einem Tonstudio etwa -60 dB und zuhause -20 dB erwarten kann. When man spricht, sollte dies auf -5 bis -10 dB ansteigen.<br />Nutzt man Echoauslöschung und der Wert steigt auf mehr als -15 dB wenn man nicht spricht, sind die Audioeinstellungen nicht korrekt und man stört andere Spieler mit Echos. @@ -868,7 +868,7 @@ This is the probability that the last frame (20 ms) was speech and not environment noise.<br />Voice activity transmission depends on this being right. The trick with this is that the middle of a sentence is always detected as speech; the problem is the pauses between words and the start of speech. It's hard to distinguish a sigh from a word starting with 'h'.<br />If this is in bold font, it means Mumble is currently transmitting (if you're connected). - Dies ist die Wahrscheinlichkeit, dass der letzte Frame (20ms) war Sprache und kein Umgebungsgeräusch.<br />Die Stimmaktivierungserkennung hängt davon ab, wie es eingestellt ist. Der Trick ist, dass die Mitte eines Satzes immer als Sprache erkannt wird; problematisch sind Pausen zwischen Wörtern und der Anfang des Satzes.<br />Ist dies fett geschrieben, bedeutet es, dass Mumble gerade übertragt (wenn man verbunden ist). + Dies ist die Wahrscheinlichkeit, dass der letzte Frame (20ms) Sprache und kein Umgebungsgeräusch war.<br />Die Stimmaktivierungserkennung hängt davon ab, wie es eingestellt ist. Der Trick ist, dass die Mitte eines Satzes immer als Sprache erkannt wird; problematisch sind Pausen zwischen Wörtern und der Anfang des Satzes.<br />Ist dies fett geschrieben, bedeutet dies, dass Mumble gerade übertragt (wenn man verbunden ist). @@ -888,7 +888,7 @@ This shows the power spectrum of the current input signal (red line) and the current noise estimate (filled blue).<br />All amplitudes are multiplied by 30 to show the interesting parts (how much more signal than noise is present in each waveband).<br />This is probably only of interest if you're trying to fine-tune noise conditions on your microphone. Under good conditions, there should be just a tiny flutter of blue at the bottom. If the blue is more than halfway up on the graph, you have a seriously noisy environment. - Dies zeigt das Powerspektrum des Eingangssignals (rote Linie) und die Geräuschabschätzung (blau gefüllt) an.<br />Alle Amplituden werden mit 30 multipliziert um anzuzeigen wieviel mehr Signal als Geräusch im Wellenband vorhanden ist.<br />Dies ist vermutlich nur von Interesse, wenn man die Geräuschbedingungen des Mikrofones finetuned. Unter guten Voraussetzungen sollte nur eine winzige blaue Stelle unten zu sehen sein. Ist mehr als die Hälfte des Graphen blau, hat man eine schwierige Geräuschkulisse. + Dies zeigt das Powerspektrum des Eingangssignals (rote Linie) und die Geräuschabschätzung (blau gefüllt) an.<br />Alle Amplituden werden mit 30 multipliziert um anzuzeigen wieviel mehr Signal als Geräusch im Wellenband vorhanden ist.<br />Dies ist vermutlich nur von Interesse, wenn man die Geräuschbedingungen des Mikrofones präzise einstellt. Unter guten Voraussetzungen sollte nur eine winzige blaue Stelle unten zu sehen sein. Ist mehr als die Hälfte des Graphen blau, hat man eine ungünstige Geräuschkulisse. @@ -898,7 +898,7 @@ This shows the weights of the echo canceller, with time increasing downwards and frequency increasing to the right.<br />Ideally, this should be black, indicating no echo exists at all. More commonly, you'll have one or more horizontal stripes of bluish color representing time delayed echo. You should be able to see the weights updated in real time.<br />Please note that as long as you have nothing to echo off, you won't see much useful data here. Play some music and things should stabilize. <br />You can choose to view the real or imaginary parts of the frequency-domain weights, or alternately the computed modulus and phase. The most useful of these will likely be modulus, which is the amplitude of the echo, and shows you how much of the outgoing signal is being removed at that time step. The other viewing modes are mostly useful to people who want to tune the echo cancellation algorithms.<br />Please note: If the entire image fluctuates massively while in modulus mode, the echo canceller fails to find any correlation whatsoever between the two input sources (speakers and microphone). Either you have a very long delay on the echo, or one of the input sources is configured wrong. - Dies zeigt die Gewichte des Echoauslöschers, mit der Zeit auf der Y- und der Frequenz auf der X-Achse.<br />Idealerweise sollte dies schwarz sein, was kein Echo bedeutet. Normalerweise hat man einen oder mehrere horizontale Streifen von blauer Farbe, die das zeitverzögerte Echo darstellen. Man sollte sehen, wie die Gewichte in Echtzeit aktualisiert werden.<br />So lange man keine Echoquelle hat, wird man keine nützlichen Daten hier sehen, weshalb man etwas Musik abspielen sollte.<br />Man kann zwischen Real- und Imaginäranteilen des Frequenzdomänen-Gewischte oder alternativ den berechneten Modulus und Phase auswählen. Am nützlichsten ist hierbei Modulus, was die Amplitude des Echos angibt und anzeigt wieviel vom ausgehenden Signal bei diesem Zeitschritt entfernt wird. Die anderen Ansichten sind nützlich für diejenigen die den Echoauslöschungs-Algorithmus finetunen wollen.<br />Achtung: Wenn das Gesamtbild im Modulus-Modus massiv fluktuiert, kann der Echoauslöscher keine Korrelation zwischen den beiden Eingangsquellen (Lautsprecher und Mikrofon) finden. Entweder hat man eine lange Verzögerung des Echos oder eine der Eingangsquellen sind falsch konfiguriert. + Dies zeigt die Gewichte des Echoauslöschers, mit der Zeit auf der Y- und der Frequenz auf der X-Achse.<br />Idealerweise sollte dies schwarz sein, was kein Echo bedeutet. Normalerweise hat man einen oder mehrere horizontale Streifen von blauer Farbe, die das zeitverzögerte Echo darstellen. Man sollte sehen, wie die Gewichte in Echtzeit aktualisiert werden.<br />So lange man keine Echoquelle hat, wird man keine nützlichen Daten hier sehen, weshalb man etwas Musik abspielen sollte.<br />Man kann zwischen Real- und Imaginäranteilen des Frequenzdomänen-Gewischte oder alternativ den berechneten Modulus und Phase auswählen. Am nützlichsten ist hierbei Modulus, was die Amplitude des Echos angibt und anzeigt wieviel vom ausgehenden Signal bei diesem Zeitschritt entfernt wird. Die anderen Ansichten sind nützlich für diejenigen die den Echoauslöschungs-Algorithmus finetunen wollen.<br />Achtung: Wenn das Gesamtbild im Modulus-Modus massiv fluktuiert, kann der Echoauslöscher keine Korrelation zwischen den beiden Eingangsquellen (Lautsprecher und Mikrofon) herstellen. Entweder hat man eine lange Verzögerung des Echos oder eine der Eingangsquellen sind falsch konfiguriert. @@ -951,7 +951,7 @@ Mumble - Edit Bans - + Mumble - Bans editieren @@ -1064,7 +1064,7 @@ This represents the permission to traverse the channel. If a user is denied this privilege, he will be unable to access this channel and any sub-channels in any way, regardless of other permissions in the sub-channels. - Dies repräsentiert Rechte um den Channel zu durchlaufen. Wenn ein Benutzer dieses Privileg nicht hat, kann er auf keinen Kanal oder irgendeinen Unterkanal zugreifen, egal welche Rechte er in den Unterkanälen hat. + Dies repräsentiert Rechte um den Channel zu durchlaufen. Wenn ein Benutzer dieses Privileg nicht hat, kann er auf keinen Kanal oder Unterkanal zugreifen, egal welche Rechte er in den Unterkanälen hat. @@ -1079,7 +1079,7 @@ This represents the permission to speak in a channel with flagged speech. This works exactly like the <i>speak</i> privilege, but applies to packets spoken with AltPushToTalk held down. This may be used to broadcast to a hierarchy of channels without linking. - Dies repräsentiert das Recht in einem Kanal mit belegter Sprache zu sprechen. Dies funktioniert genauso wie das <i>Sprechen</i>-Privileg, betrifft aber Pakete gesprochen mit Alt-Push-To-Talk. Es wird genutzt um Sprache in einer Hierarchie von Kanälen zu verbreiten ohne sie zu verbinden. + Dies repräsentiert das Recht in einem Kanal mit belegter Sprache zu sprechen. Dies funktioniert genauso wie das <i>Sprechen</i>-Privileg, betrifft aber Pakete gesprochen mit Alt-Push-To-Talk. Es wird genutzt um Sprache in einer Hierarchie von Kanälen zu verbreiten ohne sie zu verbinden. @@ -1094,7 +1094,7 @@ This represents the permission to make sub-channels. The player making the sub-channel will be added to the admin group of the sub-channel. - Dies repräsentiert das Recht Unterkanäle zu erstellen. Der Spieler der den Unterkanal erstellt, gehört automatisch zur Admingruppe des Kanals. + Dies repräsentiert das Recht Unterkanäle zu erstellen. Der Spieler der den Unterkanal erstellt, gehört automatisch zur Admingruppe des Kanals. @@ -1223,7 +1223,7 @@ Opening chosen DirectSound Input failed. Default device will be used. - Öffnen des DirectSound Eingangsgerätes gescheitert. Standardeinstellungen werden benutzt. + Öffnen des DirectSound Eingangsgerätes gescheitert. Standardgerät wird benutzt. @@ -1246,7 +1246,7 @@ Opening chosen DirectSound Output failed. Default device will be used. - Öffnen des DirectSound Ausgabegerätes gescheitert. Standardeinstellungen werden benutzt. + Öffnen des DirectSound Ausgabegerätes gescheitert. Standardgerät wird benutzt. @@ -1289,7 +1289,7 @@ This sets the output device to use, which is where you have connected your speakers or your headset. - Dies legt das Ausgabegerät fest, welches mit Lautsprechern oder Headset verbunden ist. + Dies legt das Ausgabegerät fest, welches mit Lautsprechern oder Headset verbunden ist. @@ -1304,7 +1304,7 @@ Output Delay - Asugabeverzögerung + Ausgabeverzögerung @@ -1314,7 +1314,7 @@ This sets the amount of data to prebuffer in the DirectSound buffer. Experiment with different values and set it to the lowest which doesn't cause rapid jitter in the sound. - Dies legt die Menge an Daten fest, die für den DirectSound-Puffer vorgepuffert werden sollen. Es sollte der niedrigste Wert gewählt werden, der noch keinen Jitter im Sound produziert. + Dies legt die Menge an Daten fest, die für den DirectSound-Puffer vorgepuffert werden sollen. Es sollte der niedrigste Wert gewählt werden, der noch kein Knacken im Sound produziert. @@ -1480,7 +1480,7 @@ der möglichen Orte initialisieren. <b>This is the global shortcut bound to %1</b><br />Click this field and then the desired key/button combo to rebind. Double-click to clear. - <b>Der globale Shortcut ist an %1 gebunden</b><br />Dieses Feld anklicken und dann die gewünschte Taste/Button drücken zum neubinden. Doppelklicken zum löschen. + <b>Der globale Shortcut ist an %1 gebunden</b><br />Dieses Feld anklicken und dann die gewünschte Taste/Button drücken zum neubinden. Doppelklicken zum löschen. @@ -1488,27 +1488,27 @@ der möglichen Orte initialisieren. Shortcuts - Shortcuts + Abkürzungen Function - Funktion + Funktion Shortcut - Shortcut + Abkürzung Shortcut bound to %1. - Shortcut an %1 gebunden. + Abkürzung an %1 gebunden. <b>This is the global shortcut bound to %1</b><br />Click this field and then the desired key combo to rebind. Double-click to clear. - <b>Der globale Shortcut ist an %1 gebunden</b><br />Dieses Feld anklicken und dann die gewünschte Taste/Button drücken zum neubinden. Doppelklicken zum löschen. + <b>Die globale Abkürzung ist an %1 gebunden</b><br />Dieses Feld anklicken und dann die gewünschte Taste/Button drücken zum neubinden. Doppelklicken zum löschen. @@ -1521,92 +1521,92 @@ der möglichen Orte initialisieren. Debug - + Debug Critical - + Kritisch Warning - + Warnung Information - + Information Server Connected - + Server verbunden Server Disconnected - + Serververbindung abgebrochen Player Joined Server - + Spieler betrat Server Player Left Server - + Spieler verließ Server Player kicked (you or by you) - + Spieler gekickt (du oder von dir) Player kicked - + Spieler gekickt You self-muted/deafened - + Selbst stumm-/taubgestellt Other self-muted/deafened - + Anderer stumm-/taubgestellt Player muted (you) - + Spieler stummgestellt (dich) Player muted (by you) - + Spieler stummgestellt (durch dich) Player muted (other) - + Spieler stummgestellt (jemand anderes) Player Joined Channel - + Spieler betrat Kanal Player Left Channel - + Spieler verließ Kanal Permission Denied - + Erlaubnis verweigert @@ -1697,17 +1697,17 @@ der möglichen Orte initialisieren. &Ban lists - &Banliste + &Banliste Edit ban lists on server - Banlisten auf Server editieren + Banlisten auf Server editieren This lets you edit the server-side IP ban lists. - Dies lässt die serverseitige IP Banliste editieren. + Hierdurch lässt sich die serverseitige IP Banliste editieren. @@ -1792,7 +1792,7 @@ der möglichen Orte initialisieren. This adds a new sub-channel to the currently selected channel. - Dies fügt dem aktuell gewählten Kanal einen Unterkanal hinzu. + Dies fügt dem aktuell gewählten Kanal einen Unterkanal hinzu. @@ -1807,7 +1807,7 @@ der möglichen Orte initialisieren. This removes a channel and all sub-channels. - Dies entfernt einen Kanal und all seine Unterkanäle. + Dies entfernt einen Kanal und all seine Unterkanäle. @@ -1882,7 +1882,7 @@ der möglichen Orte initialisieren. This will reset the audio preprocessor, including noise cancellation, automatic gain and voice activity detection. If something suddenly worsens the audio environment (like dropping the microphone) and it was temporary, use this to avoid having to wait for the preprocessor to readjust. - Setzt den Audio-Präprozessor zurück, unter anderem Geräuschunterdrückung, automatisches Gain und Stimmaktivierungserkennung. Wenn etwas plötzlich die Audioumgebung verschlechtert (z.B. das Mikrofon fallen zu lassen), kann dies benutzt werden um den Präprozessor sofort neu auszurichten. + Setzt den Audio-Präprozessor zurück: unter anderem Geräuschunterdrückung, automatisches Gain und Stimmaktivierungserkennung. Wenn etwas plötzlich die Audioumgebung verschlechtert (z.B. das Mikrofon fallen lassen), kann dies benutzt werden um den Präprozessor sofort neu auszurichten. @@ -1927,7 +1927,7 @@ der möglichen Orte initialisieren. Enable or disable the text-to-speech engine. Only messages enabled for TTS in the Configuration dialog will actually be spoken. - Text-To-Speech-Engine ein oder ausschalten. Nur Nachrichten die im Konfigurationsdialog entsprechend aktiviert sind werden tatsächlich gesprochen. + Text-To-Speech-Engine ein oder ausschalten. Nur Nachrichten die im Konfigurationsdialog entsprechend aktiviert sind werden tatsächlich gesprochen. @@ -2017,7 +2017,7 @@ der möglichen Orte initialisieren. &About Qt - Über &Qt + Über &Qt @@ -2082,7 +2082,7 @@ der möglichen Orte initialisieren. C&onfigure - K&onfiguration + K&onfiguration @@ -2122,7 +2122,7 @@ der möglichen Orte initialisieren. Unmuted and undeafened. - Stumm- und Taubstellen ausgeschalten. + Stumm- und Taubstellen ausgeschalten. @@ -2277,7 +2277,7 @@ der möglichen Orte initialisieren. %1 moved out by %2. - %1 von %2 rausgeschoben. + %1 von %2 rausgeschoben. @@ -2308,84 +2308,84 @@ der möglichen Orte initialisieren. Push-to-Talk Global Shortcut - + Push-To-Talk Reset Audio Processor Global Shortcut - + Audio Prozessor zurücksetzen Toggle Mute Self Global Shortcut - + Selbst stummstellen umschalten Toggle Deafen Self Global Shortcut - + Selbst taubstellen umschalten Force Center Position Global Shortcut - + Erzwinge Mittelposition Chan Parent Global Shortcut - + Kanal Eltern Chan Sub#%1 Global Shortcut - + Kanal Sub#%1 Chan All Subs Global Shortcut - + Kanal alle Subs Push-to-Mute Global Shortcut - + Push-To-Mute Join Channel Global Shortcut - + Kanal betreten Toggle Overlay Global Shortcut - + Overlay umschalten Alt Push-to-Talk Global Shortcut - + Alt Push-To-Talk Unlink Plugin Global Shortcut - + Plugin ausklinken Are you sure you want to delete %1 and all its sub-channels? - + Sicher %1 und all seine Unterkanäle zu löschen? @@ -2401,9 +2401,9 @@ der möglichen Orte initialisieren. - the library (mumble_ol.dll) wasn't found in the directory you ran Mumble from - you're on an OS earlier than WinXP SP2 - you do not have the August 2006 updated version of DX9.0c - Konnte Overlaybibliothek nicht laden. Dies bedeutet: + Konnte Overlaybibliothek nicht laden. Dies bedeutet: - Die Bibliothek (mumble_ol.dll) wurde nicht in dem Verzeichnis gefunden in dem mumble gestartet wurde -- Es wird ein früheres OS als WinXP SP2 genutzt +- Es wird ein älteres OS als WinXP SP2 genutzt - Die August 2006 Version von DX9.0c wurde nicht installiert @@ -2437,7 +2437,7 @@ der möglichen Orte initialisieren. This sets whether the overlay is enabled or not. This setting is only checked with D3D9 applications are started, so make sure Mumble is running and this option is on before you start the application.<br />Please note that if you start the application after starting Mumble, or if you disable the overlay while running, there is no safe way to restart the overlay without also restarting the application. - Dies legt fest ob das Overlay angeschalten ist oder nicht. Diese Einstellung ist nur aktiviert wenn D3D9-Anwendungen gestartet sind, somit muss sichergestellt werden, dass Mumble läuft und die Einstellungen gesetzt ist, bevor die Anwendung gestartet wurde.<br />Achtung: Wird die Anwendung nach Mumble gestartet oder das Overlay während des Betriebs abgestellt, gibt es keinen sicheren Weg das Overlay wieder zu aktivieren außer die Anwendung neu zu starten. + Dies legt fest ob das Overlay angeschalten ist oder nicht. Diese Einstellung ist nur aktiviert wenn D3D9-Anwendungen gestartet sind, somit muss sichergestellt werden, dass Mumble läuft und die Einstellungen gesetzt ist, bevor die Anwendung gestartet wurde.<br />Achtung: Wird die Anwendung nach Mumble gestartet oder das Overlay während des Betriebs abgestellt, gibt es keinen sicheren Weg das Overlay wieder zu aktivieren außer die Anwendung neu zu starten. @@ -2467,7 +2467,7 @@ der möglichen Orte initialisieren. <b>This sets who to show in the in-game overlay.</b><br />If many people are connected to the same channel, the overlay list might be very long. Use this to shorten it.<br /><i>No one</i> - Don't show anyone (but leave overlay running).<br /><i>Only talking</i> - Only show talking people.<br /><i>Everyone</i> - Show everyone. - <b>Dies legt fest, wer im Ingame-Overlay angezeigt wird.</b><br />Falls viele Leute im selben Kanal sind, könnte die Overlayliste sehr lang werden. Mit diesen Einstellungen kann sie gekürzt werden.<i>Niemand</i> - Zeige niemanden an (aber lass das Overlay laufen).<br /><i>Nur Sprechende</i> - Nur sprechende Leute.<br /><i>Jeder</i> - Zeige jeden an. + <b>Dies legt fest, wer im Ingame-Overlay angezeigt wird.</b><br />Falls viele Leute im selben Kanal sind, könnte die Overlayliste sehr lang werden. Mit diesen Einstellungen kann sie gekürzt werden.<i>Niemand</i> - Zeige niemanden an (aber lass das Overlay laufen).<br /><i>Nur Sprechende</i> - Nur sprechende Leute.<br /><i>Jeder</i> - Zeige jeden an. @@ -2582,7 +2582,7 @@ der möglichen Orte initialisieren. This sets the maximum width of names shown, relative to the height. If you set this to 100%, no line of text will be wider than it is high. At 500%, no line will be more than 5 times wider than its height, and so on. - Dies setzt die maximale Breite der angezeigten Namen relativ zur Höhe. Wird es auf 100% gesetzt, ist keine Zeile Text breiter als hoch. Bei 500%, ist keine Zeile mehr als fünf mal breiter als hoch. + Dies legt die maximale Breite der angezeigten Namen relativ zur Höhe fest. Wird es auf 100% gesetzt, ist keine Zeile Text breiter als hoch. Bei 500%, ist keine Zeile mehr als fünf mal breiter als hoch. @@ -2660,12 +2660,12 @@ der möglichen Orte initialisieren. Name - + Name Flags - + Attribute @@ -2688,7 +2688,7 @@ der möglichen Orte initialisieren. This enables plugins for supported games to fetch your in-game position and transmit that with each voice packet. This enables other players to hear your voice in-game from the direction your character is in relation to their own. - Dies aktiviert Plugins für unterstützte Spiele, um Ingame-Positionen zu ermitteln und diese mit jedem Sprachpaket zu übertragen. Dies lässt andere Spieler die eigene Stimme aus der Richtung hören in der sich der Spielcharakter befindet. + Dies aktiviert Plugins für unterstützte Spiele, um Ingame-Positionen zu ermitteln und diese mit jedem Sprachpaket zu übertragen. Dies lässt andere Spieler die eigene Stimme aus der Richtung hören in der sich der sprechende Spielcharakter befindet. @@ -2728,7 +2728,7 @@ der möglichen Orte initialisieren. Plugin has no configure function. - Plugin hat keine Konfigurationsfunktion. + Plugin hat keine Konfigurationsfunktion. @@ -2738,27 +2738,27 @@ der möglichen Orte initialisieren. Link to Game and Transmit Position - + Mit Spiel verbinden und Position übertragen &Reload plugins - + Plugins &neuladen &About - Ü&ber + Ü&ber &Configure - + &Konfigurieren Plugin has no about function. - Plugin hat keine Über-Funktion. + Plugin hat keine Über-Funktion. @@ -2809,7 +2809,7 @@ der möglichen Orte initialisieren. Mumble failed to retrieve version information from the SourceForge server. - Konnte Versionsinformation nicht vom Server ermitteln. + Konnte Versionsinformation nicht vom SourceForge-Server ermitteln. @@ -2817,7 +2817,7 @@ der möglichen Orte initialisieren. Press Shortcut - Shortcut drücken + Shortcut drücken