Commit Graph

5749 Commits

Author SHA1 Message Date
Septarius
247fe17dbd
FIX(client): Debug Assertion Failed in getPlugins
Expression: invalid comparator

Thrown when opening the Settings window.
This started happening when I had multiple shortcuts defined and running in debug mode.

std::sort requires strict weak ordering. This fixes the compare to provide it.
2021-05-10 16:15:17 -06:00
Septarius
643377dcd6
REFAC(client): Add and register stream operators
to the Input structs

Step 1 to fix Windows clients loading / saving shortcuts since 3dc7b00d09

Adds the stream operators to the Input structs and a call to register them in Settings.cpp
The metatypes have to be registered in Settings.cpp because it runs before GlobalShortcuts are initialized. Without being registered it will not load the Input buttons.
2021-05-10 16:14:21 -06:00
Jan Klass
66865e9d18 TRANSLATION: Update translation files 2021-05-08 12:12:13 +02:00
Hosted Weblate
cc7e8b94ef TRANSLATION: Update Hungarian translation
Currently translated at 79.4% (1601 of 2015 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: ViBE <vibe@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/hu/
Translation: Mumble/Mumble Client
2021-05-08 12:03:23 +02:00
Hosted Weblate
9817bbd47b TRANSLATION: Update Italian translation
Currently translated at 100.0% (2015 of 2015 strings)

Co-authored-by: Alessandro Mandelli <mandelli.alessandro@ngi.it>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/it/
Translation: Mumble/Mumble Client
2021-05-08 12:03:13 +02:00
Hosted Weblate
4b1d952e9e TRANSLATION: Update Japanese translation
Currently translated at 66.4% (1340 of 2017 strings)

Co-authored-by: Yuuto Nakagawa <root@eric-lightning.info>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/ja/
Translation: Mumble/Mumble Client
2021-05-08 12:03:13 +02:00
Hosted Weblate
09fc11b88e TRANSLATION: Update Polish translation
Currently translated at 100.0% (2017 of 2017 strings)

Co-authored-by: Matthaiks <kitynska@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/pl/
Translation: Mumble/Mumble Client
2021-05-08 12:03:12 +02:00
Hosted Weblate
941250f830 TRANSLATION: Update Turkish translation
Currently translated at 100.0% (2017 of 2017 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Oğuz Ersen <oguzersen@protonmail.com>
Co-authored-by: udo pton <udopton@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/tr/
Translation: Mumble/Mumble Client
2021-05-08 12:03:12 +02:00
Hosted Weblate
b76ea7feac TRANSLATION: Update Chinese (Simplified) translation
Currently translated at 100.0% (2017 of 2017 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: deluxghost <deluxghost@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/zh_Hans/
Translation: Mumble/Mumble Client
2021-05-08 12:03:03 +02:00
Hosted Weblate
f199249948 TRANSLATION: Update Dutch translation
Currently translated at 99.9% (2014 of 2015 strings)

Co-authored-by: Gert-dev <qnyasgjhapqyuhoibr@kiabws.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/nl/
Translation: Mumble/Mumble Client
2021-05-08 12:02:58 +02:00
Robert Adam
5b7f362c56
Merge PR #4969: FEAT(client): Removed classic theme
Having to maintain the old legacy theme of Mumble was becoming a burden
as new icons would have to be created two times in order to fit both
theme variants. That never happened and thus the new icons looked very
out-of-place in the Classic theme. Besides the classic theme was also
missing several icons altogether already.

Thus it has been concluded to remove the Classic theme.

Furthermore this PR adds some aliases that were missing in both themes which fixes #4937
2021-05-07 21:30:00 +02:00
Robert Adam
6495b33cf0 FEAT(client): Removed classic theme
Having to maintain the old legacy theme of Mumble was becoming a burden
as new icons would have to be created two times in order to fit both
theme variants. That never happened and thus the new icons looked very
out-of-place in the Classic theme. Besides the classic theme was also
missing several icons altogether already.

Thus it has been concluded to remove the Classic theme.
2021-05-07 10:23:00 +02:00
Robert Adam
0b8ca10198
Merge PR #4958: FEAT(client): Global shortcut to toggle TalkingUI 2021-05-07 10:22:11 +02:00
Robert Adam
490579bd27
Merge PR #4954: CHANGE(client): Default min volume to 25%
The minimum volume setting determines how much a user's audio will fade
out with increasing in-game distance when positional audio is enabled.
Having this at 80% yields a basically non-noticeable effect leading to a
couple of reports of volume fading not working at all.

Thus this commit changes the default to 25% which should be an audible
difference. It is not set to 0% in order to not run into situations in
which users don't hear each other at all and then thinking that
positional audio is completely broken.

For anyone who wants a realistic audio experience though, this should be
set to 0%.

Furthermore the tooltip for this setting was changed as well.
2021-05-07 08:02:04 +02:00
Hosted Weblate
2d722e240a
TRANSLATION: Update Hungarian translation
Currently translated at 78.3% (1579 of 2015 strings)

Co-authored-by: ViBE <vibe@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/hu/
Translation: Mumble/Mumble Client
2021-05-01 19:31:20 +02:00
Hosted Weblate
3b3f05b9a1
TRANSLATION: Update Polish translation
Currently translated at 100.0% (2015 of 2015 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Matthaiks <kitynska@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/pl/
Translation: Mumble/Mumble Client
2021-05-01 19:31:19 +02:00
Hosted Weblate
60938093ec
TRANSLATION: Update Portuguese (Portugal) translation
Currently translated at 95.2% (1919 of 2015 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: ssantos <ssantos@web.de>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/pt_PT/
Translation: Mumble/Mumble Client
2021-05-01 19:31:19 +02:00
Hosted Weblate
5d9e3e0f0a
TRANSLATION: Update Turkish translation
Currently translated at 92.7% (1868 of 2015 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: udo pton <udopton@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/tr/
Translation: Mumble/Mumble Client
2021-05-01 19:31:19 +02:00
Hosted Weblate
51c4fba7f4
TRANSLATION: Update Chinese (Simplified) translation
Currently translated at 100.0% (2015 of 2015 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: deluxghost <deluxghost@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/zh_Hans/
Translation: Mumble/Mumble Client
2021-05-01 19:31:19 +02:00
Robert Adam
a8372779c3 TRANSLATION: Update translation files 2021-04-30 20:25:59 +02:00
Robert Adam
de8bfcd0dd FEAT(client): Global shortcut to toggle TalkingUI 2021-04-30 20:25:44 +02:00
Robert Adam
d22c5f0f45 TRANSLATION: Update translation files 2021-04-29 08:11:41 +02:00
Robert Adam
26820e4c26 CHANGE(client): Tooltip for min. volume setting
The tooltip for the minimum volume setting (positional audio) was more
directed towards a developer than to a user. Thus it has been changed.
2021-04-29 08:11:29 +02:00
Hosted Weblate
86fdd80bfc
TRANSLATION: Update Dutch translation
Currently translated at 99.9% (2015 of 2016 strings)

Co-authored-by: Gert-dev <qnyasgjhapqyuhoibr@kiabws.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/nl/
Translation: Mumble/Mumble Client
2021-04-28 17:39:04 +02:00
Hosted Weblate
163b95d3ee
TRANSLATION: Update Russian translation
Currently translated at 98.5% (1984 of 2014 strings)

Co-authored-by: Nikita Epifanov <nikgreens@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/ru/
Translation: Mumble/Mumble Client
2021-04-28 17:39:03 +02:00
Robert Adam
91f76464c5
Merge PR #4949: FIX/FEAT(client): Improvements for using --multiple 2021-04-28 17:38:51 +02:00
Davide Beatrici
c54363aa98
Merge PR #4941: FEAT(client): Implement raw input, get rid of hooks and DirectInput (Windows) 2021-04-28 08:25:07 +02:00
Robert Adam
0e43686049 CHANGE(client): Default min volume to 25%
The minimum volume setting determines how much a user's audio will fade
out with increasing in-game distance when positional audio is enabled.
Having this at 80% yields a basically non-noticeable effect leading to a
couple of reports of volume fading not working at all.

Thus this commit changes the default to 25% which should be an audible
difference. It is not set to 0% in order to not run into situations in
which users don't hear each other at all and then thinking that
positional audio is completely broken.

For anyone who wants a realistic audio experience though, this should be
set to 0%.
2021-04-28 08:09:50 +02:00
Davide Beatrici
50f4e6db03 TRANSLATION: Update translation files 2021-04-28 06:28:33 +02:00
Davide Beatrici
3dc7b00d09 FEAT(client): Implement raw input, get rid of hooks and DirectInput (Windows)
Fixes #4039.

Several users complained about the global shortcuts engine on Windows, mainly because it affects the keyboard and mouse behavior for all applications:

1. It reportedly causes the polling rate to drop significantly.
2. Causes accessibility programs such as NVDA to read Mumble's UI slow. Workaround implemented in a310c7f.
3. Using the debugger's "pause" function is nearly impossible: the OS has to wait for the callback to timeout before registering the input, causing a consistent and heavy slowdown.

Disabling hooks fixes all issues described above, however it only leaves DirectInput for standard devices (i.e. not relying on XInput and G-keys).

This commit completely rewrites GlobalShortcutWin, implementing raw input and getting rid of hooks and DirectInput.

Controllers are supported, but only basic buttons are handled for now. Support for analog input (including d-pad) will be added in the future.
XInput can still be enabled, in order for input from triggers and d-pad on Xbox controllers to be registered.

As a bonus, the main thread doesn't wait for the input processing function(s) to return anymore.
The reason why this wasn't the case before is because we needed to know whether to block the message (returning true) from reaching other applications ("suppress" feature).
That cannot work with raw input due to its nature. Returning true simply tells Windows that we didn't process the message.
2021-04-28 00:56:14 +02:00
Hosted Weblate
35eb43b7a9 TRANSLATION: Update Polish translation
Currently translated at 100.0% (2016 of 2016 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Matthaiks <kitynska@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/pl/
Translation: Mumble/Mumble Client
2021-04-27 22:08:16 +02:00
Hosted Weblate
61449222cc TRANSLATION: Update Chinese (Simplified) translation
Currently translated at 100.0% (2016 of 2016 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: deluxghost <deluxghost@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/zh_Hans/
Translation: Mumble/Mumble Client
2021-04-27 22:08:12 +02:00
Robert Adam
590bb2a6b0 TRANSLATION: Update translation files 2021-04-27 18:04:45 +02:00
Robert Adam
ac5c8b76f8 FEAT(client): Expose flag for default cert path
At startup, the settings for a Mumble instance are loaded (either
using the default location or the "--config" file that was supplied).
Then Mumble checks to see if a valid certificate was loaded. If it
wasn't, it looks for a certificate in a hardcoded path
(QStandardPaths::DocumentsLocation). If there is a certificate there,
it uses it. If not, it creates a new cert and saves it to that
hardcoded path.

This all means that when you run a second instance for the first time,
there will be no certificate in the supplied "--config", so it will use
the certificate in the hardcoded path, which is almost certainly the
certificate that the other mumble instance is using. Connecting to a
server with this certificate will authenticate you as the user who has
that certificate registered. This is probably not what you want.

This commit fixes this issue by adding a CLI option that allows the user
to specify the default certificate directory.
2021-04-27 18:04:43 +02:00
Hosted Weblate
550853c97c
TRANSLATION: Update German translation
Currently translated at 96.6% (1948 of 2016 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Robert Adam <dev@robert-adam.de>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/de/
Translation: Mumble/Mumble Client
2021-04-26 21:59:31 +02:00
Robert Adam
260215ade9
Merge PR #4948: REFAC(client): Transmission mode change events
Previously handling the change of transmission mode was done in many
different places causing code duplication.

This commit factors the common functionality out into its own function
and creates a new event for when the transmission mode is changed.
2021-04-26 21:59:21 +02:00
Robert Adam
6f0b334bb2 FIX(client): Auto-connect not working for --multiple
"--config" is parsed before the main argument parsing loop. Then these
arguments are captured a second time in the else clause and shoved
into the "url" variable.

Having a valid url (the path to a config is a valid file URL) causes the
app to post an OpenURLEvent. This is pretty harmless, it just causes the
settings to load again. But the bigger problem is that
Global::get().mw->on_qaServerConnect_triggered(true) is not called. So,
even if you have autoconnect enabled, launching mumble with "--multiple
--config PATH" won't actually autoconnect.

This commit fixes this by skipping over the "--config" arguments in the
main parsing loop.
2021-04-26 21:09:28 +02:00
Robert Adam
619a5248ec REFAC(client): Transmission mode change events
Previously handling the change of transmission mode was done in many
different places causing code duplication.

This commit factors the common functionality out into its own function
and creates a new event for when the transmission mode is changed.
2021-04-26 20:38:37 +02:00
Matthaiks
4b1411dad2 TRANSLATION: Update Polish translation
Currently translated at 100.0% (1973 of 1973 strings)

Translation: Mumble/Mumble Client
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/pl/
2021-04-26 08:46:56 +02:00
Gert-dev
2331691e35 TRANSLATION: Update Dutch translation
Currently translated at 100.0% (1973 of 1973 strings)

Translation: Mumble/Mumble Client
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/nl/
2021-04-26 08:46:56 +02:00
Hosted Weblate
b87e331584 TRANSLATION: Update Finnish translation
Currently translated at 97.1% (1916 of 1973 strings)

Co-authored-by: janne ojanperä <janne.ojanpera@iki.fi>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/fi/
Translation: Mumble/Mumble Client
2021-04-26 08:46:33 +02:00
Hosted Weblate
c090d4f532 TRANSLATION: Update Polish translation
Currently translated at 100.0% (1973 of 1973 strings)

Co-authored-by: Matthaiks <kitynska@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/pl/
Translation: Mumble/Mumble Client
2021-04-26 08:46:05 +02:00
Hosted Weblate
7df040fd77 TRANSLATION: Update Russian translation
Currently translated at 98.9% (1953 of 1973 strings)

TRANSLATION: Update Russian translation

Currently translated at 98.9% (1953 of 1973 strings)

Co-authored-by: Nikita Epifanov <nikgreens@protonmail.com>
Co-authored-by: Timofey X <vuki03@mail.ru>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/ru/
Translation: Mumble/Mumble Client
2021-04-26 08:46:05 +02:00
Hosted Weblate
b639d575dd TRANSLATION: Update Chinese (Simplified) translation
Currently translated at 100.0% (1973 of 1973 strings)

Co-authored-by: deluxghost <deluxghost@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/zh_Hans/
Translation: Mumble/Mumble Client
2021-04-26 08:46:05 +02:00
Hosted Weblate
4f83d48c5e TRANSLATION: Update Swedish translation
Currently translated at 100.0% (1973 of 1973 strings)

Co-authored-by: Shjosan <shjosan@kakmix.co>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/sv/
Translation: Mumble/Mumble Client
2021-04-26 08:46:05 +02:00
Philipp Kern
36a4cced91 TRANSLATION: Update translation files 2021-04-20 21:53:12 +02:00
Philipp Kern
80461598a5 FEAT(client): Implement a mute cue
The mute cue is played when speech is detected while the local client is
muted. This reminds the user that they are still muted, which is
especially useful when the overlay/client indication is not available
(e.g. in full-screen games).

This currently reuses the existing "audio on" cue.

Implements #4866
2021-04-20 21:53:12 +02:00
Robert Adam
923045ac60 FORMAT: Run clang-format 10 on all source files 2021-04-16 21:05:52 +02:00
Robert Adam
d4a5fc1047
Merge PR #3743: FEAT(client): Plugin framework
This commit introduces a new plugin framework into the codebase of the
Mumble client. Note that "plugin" here really refers to a (more or less)
general purpose plugin and is therefore not to be confused with the
previously available positional data plugins (only responsible for
fetching positional data from a running game and passing that to
Mumble).

The plugin interface is written in C, removing the compiler-dependence
the old "plugins" had. Instead plugins can now be written in an
arbitrary language as long as that language is capable of being compiled
into a shared library and also being capable of being C-compatible.

As already indicated a plugin is essentially a shared library that
provides certain functions that allow Mumble to interface with it.

Inside Mumble the so-called PluginManager is responsible for managing
the plugins and relaying events to the respective callbacks. Plugins
themselves can also interact with Mumble on their own initiative by
using the provided API functions.

Fixes #2455
Fixes #2148
Fixes #1594
Fixes #2051
Fixes #3742
Fixes #4575
Fixes #4751
2021-04-16 20:51:23 +02:00
Robert Adam
5db2400af5 TRANSLATION: Update translation files 2021-04-16 20:15:45 +02:00