Commit Graph

6408 Commits

Author SHA1 Message Date
Davide Beatrici
4587e75de2 REFAC(client): Get rid of launcher and DLL on Windows 2023-10-25 02:33:48 +02:00
Thomas Windt
c12990b7fd MAINT(server): remove unnecessary creation of application dir
See https://github.com/mumble-voip/mumble/issues/6077#issuecomment-1756893381 for more information on why this does nothing useful
2023-10-11 12:41:48 +02:00
Thomas Windt
89ba6acff7 FIX(server,settings,log): announce if settings file is not present
Apparently, QSettings does not care if the specified settings file exists or not.
Therefore, no keys will be loaded into the settings as if the file was empty.
We specifically check for the missing file to not reference a ghost file in the logs.

Fixes #6077
2023-10-11 12:40:14 +02:00
Robert Adam
5b83d0fe45
Merge PR #6170: REFAC(plugins): Unified Mumble plugin headers
Having different include files that are needed (and which are inter-dependent) to create your own plugin, makes things harder than it needs to be.

Therefore, all plugin header files (those for the "new" (1.4) plugin framework anyway) have been combined into one header file. Thus, developers now only have to download a single file and include that instead of having to figure out what files to download and what to include where.

Taking the chance, the version number has been removed from the header file's name. This allows one to track changes made to the API via git (which is not quite as easy if you create a new file every time you make a change).
2023-10-06 08:59:01 +02:00
Davide Beatrici
9672bf6c15 FIX(client): Replace deprecated Qt::SystemLocaleDate and Qt::DefaultLocaleShortDate 2023-10-01 14:37:22 +02:00
Davide Beatrici
4f593ed18c FIX(client): Use memset() to initialize VLA
src/mumble/PulseAudio.cpp:581:24: error: variable-sized object may not be initialized
                unsigned char buffer[bytes] = {};
                                     ^~~~~
2023-09-26 15:12:29 +02:00
Jason E. Hale
19e01f7255 BUILD(cmake): Fix detection of unbundled GSL
Microsoft.GSL exports the Microsoft.GSL::GSL target. If the namespace
isn't specified, the detection moves on the else() block, and while
it still gets detected by FindMSGSL.cmake, a false warning is emitted
saying that the version is less than 3.0.
2023-08-18 10:18:50 -04:00
Robert Adam
4a4c6ac203 REFAC(plugins): Use macros for C API wrapper 2023-07-27 20:37:26 +02:00
Robert Adam
2b35c0c28f REFAC(plugins): Unified Mumble plugin headers
Having different include files that are needed (and which are
inter-dependent) to create your own plugin, makes things harder than it
needs to be.

Therefore, all plugin header files (those for the "new" (1.4) plugin
framework anyway) have been combined into one header file. Thus,
developers now only have to download a single file and include that
instead of having to figure out what files to download and what to
include where.

Taking the chance, the version number has been removed from the header
file's name. This allows one to track changes made to the API via git
(which is not quite as easy if you create a new file every time you make
a change).
2023-07-27 19:39:30 +02:00
nJ3ahxac
bcbf86ecab FIX(client): Performance degradation around speex
Elements of a vector were failing to be cleared correctly which
created performance issues.

A nuance with speex was also causing the library to fail to call
a destroy callback.

Fixes #6150
2023-06-22 02:18:45 +10:00
Robert Adam
82bcd1eb3d
Merge PR #6134: FEAT(client): Positional audio improvements 2023-05-14 09:30:02 +02:00
Robert Adam
8d7e1b52c2 FIX(client,positional-audio): Prevent min distance >= max distance
This kind of setup seems nonsensical and is therefore prevented by
automatically adapting the other threshold accordingly.
2023-05-13 12:34:17 +02:00
Robert Adam
6516fd0101 CHANGE(client): Set min volume for pos. audio to 0
While in 0e43686049 it was argued that
this setting should not be set to zero in order to avoid "bug" reports
of audio not working, because the volume of the audio has been zero due
to positional audio, setting this to anything but zero seems like
non-sense for such a feature.
Anything > 0 will lead to the player always being able to hear EVERY
player on the map, regardless of their position, whereas basically the
whole point of positional audio (in a "pure" sense) is to not have this
overlap of a million voices on a full game servers.
2023-05-13 11:25:35 +02:00
Robert Adam
a8d733520b FEAT(client): Increase max positional audio thresholds
Instead of limiting them to 50m (minimum distance) and 1000m (maximum
distance), manual entry into the spinboxes now allows up to 1000m (min)
and 10000m (max).
Note that the slider's max values remain unchanged as those defaults
seem to be appropriate for most contexts in which positional audio is
used.

Fixes #6132
2023-05-13 11:15:09 +02:00
Robert Adam
9ac970dac1 TRANSLATION: Update translation files 2023-05-07 09:53:40 +02:00
Green Sky
610399a49f FIX(client): Improve logging of plugin loading errors 2023-05-07 09:52:38 +02:00
Green Sky
e46cbc1921
FIX(server): Actually use the settings provided pluginmessagelimit and -burst 2023-04-26 13:41:22 +02:00
Hosted Weblate
57338e291d
TRANSLATION: Update Turkish translation
Currently translated at 100.0% (2109 of 2109 strings)

Co-authored-by: John Doe <thraex@numericable.fr>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/tr/
Translation: Mumble/Mumble Client
2023-04-20 20:14:58 +02:00
Hosted Weblate
4f435381c4
TRANSLATION: Update Finnish translation
Currently translated at 100.0% (2109 of 2109 strings)

TRANSLATION: Update Finnish translation

Currently translated at 100.0% (2109 of 2109 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/fi/
Translation: Mumble/Mumble Client
2023-04-20 20:14:58 +02:00
Hosted Weblate
29259e5f42
TRANSLATION: Update German translation
Currently translated at 100.0% (2109 of 2109 strings)

TRANSLATION: Update German translation

Currently translated at 100.0% (2109 of 2109 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
2023-04-20 20:14:58 +02:00
Hosted Weblate
a0de78c165
TRANSLATION: Update Portuguese (Brazil) translation
Currently translated at 92.6% (1954 of 2109 strings)

TRANSLATION: Update Portuguese (Brazil) translation

Currently translated at 92.6% (1954 of 2109 strings)

TRANSLATION: Update Portuguese (Brazil) translation

Currently translated at 92.3% (1947 of 2109 strings)

TRANSLATION: Update Portuguese (Brazil) translation

Currently translated at 92.0% (1942 of 2109 strings)

Co-authored-by: Daimar Stein <570cxat11@relay.firefox.com>
Co-authored-by: Felipe Nogueira <contato.fnog@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kett Lovahr <vagnerlunes@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/pt_BR/
Translation: Mumble/Mumble Client
2023-04-20 20:14:58 +02:00
Hosted Weblate
f2514f5f99
TRANSLATION: Update French translation
Currently translated at 100.0% (2109 of 2109 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: John Doe <thraex@numericable.fr>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/fr/
Translation: Mumble/Mumble Client
2023-04-20 20:14:58 +02:00
Hosted Weblate
d4c92a497d
TRANSLATION: Update English (United Kingdom) translation
Currently translated at 22.3% (472 of 2109 strings)

Co-authored-by: Andi Chandler <andi@gowling.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/en_GB/
Translation: Mumble/Mumble Client
2023-04-20 20:14:58 +02:00
Hosted Weblate
89e6af0109
TRANSLATION: Update Swedish translation
Currently translated at 100.0% (2109 of 2109 strings)

TRANSLATION: Update Swedish translation

Currently translated at 99.7% (2104 of 2109 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Luna Jernberg <droidbittin@gmail.com>
Co-authored-by: Shjosan <shjosan@kakmix.co>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/sv/
Translation: Mumble/Mumble Client
2023-04-20 20:14:58 +02:00
Hosted Weblate
9f396f3ef1
TRANSLATION: Update Norwegian Bokmål translation
Currently translated at 90.0% (1899 of 2109 strings)

Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/nb_NO/
Translation: Mumble/Mumble Client
2023-04-20 20:14:58 +02:00
Hosted Weblate
2a09bc6baa
TRANSLATION: Update Polish translation
Currently translated at 100.0% (2109 of 2109 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
2023-04-20 20:14:57 +02:00
Hosted Weblate
6c70fb00a0
TRANSLATION: Update Ukrainian translation
Currently translated at 7.4% (158 of 2109 strings)

Co-authored-by: Artem Bondarenko <artej11@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/uk/
Translation: Mumble/Mumble Client
2023-04-20 20:14:57 +02:00
Hosted Weblate
eb381febf7
TRANSLATION: Update Portuguese (Portugal) translation
Currently translated at 91.0% (1921 of 2109 strings)

Co-authored-by: Felipe Nogueira <contato.fnog@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/pt_PT/
Translation: Mumble/Mumble Client
2023-04-20 20:14:57 +02:00
Hosted Weblate
28a46d78fa
TRANSLATION: Update Chinese (Simplified) translation
Currently translated at 100.0% (2109 of 2109 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
2023-04-20 20:14:57 +02:00
Hosted Weblate
4785b8b195
TRANSLATION: Update Dutch translation
Currently translated at 99.9% (2108 of 2109 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: latex <latex@disroot.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/nl/
Translation: Mumble/Mumble Client
2023-04-20 20:14:57 +02:00
Robert Adam
b0b47cda3b BUILD(cmake): Improve LTO handling
Instead of having a fixed setting that affects all build modes, we now
set LTO only for release builds (but then for all targets). This has the
advantage that a dev doesn't have to switch LTO on and off when
switching between Release and Debug builds.
2023-04-20 19:37:37 +02:00
Robert Adam
e99c7c815d MAINT: Update Tracy to v0.9.1 2023-04-18 18:39:42 +02:00
Robert Adam
24b9276d97 FIX(client): PipeWire crash
When destroying the PipeWire object we first destroyed the thread loop
and then the stream, but this has to be done in reverse order in order
to avoid crashes.

Fixes #6101
2023-04-11 13:50:47 +02:00
Hartmnt
635d71960f FIX(server): Add ACL cache invalidation after user id is set
The ACL for group 'auth' depends on the user (db) id.
Previously, code paths using checks for 'auth' ACLs in msgAuthenticate
would not work correctly, because the ACL cache still contained
a state where the id was not set.

This commit adds cache invalidation after the user id is set, allowing
to correctly apply the 'auth' ACL in later parts of msgAuthenticate.
It also overhauls the general control flow regarding tokens and ACL
cache.

Fixes #5907
2023-04-01 12:23:38 +02:00
Hosted Weblate
9b0c6b3087 TRANSLATION: Update Turkish translation
Currently translated at 100.0% (2109 of 2109 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/tr/
Translation: Mumble/Mumble Client
2023-02-16 19:09:47 +01:00
Hosted Weblate
41b3383e5e TRANSLATION: Update Finnish translation
Currently translated at 100.0% (2109 of 2109 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
2023-02-16 19:09:46 +01:00
Hosted Weblate
7c21414c1f TRANSLATION: Update German translation
Currently translated at 100.0% (2109 of 2109 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Vri 🌈 <weblate@vrifox.cc>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/de/
Translation: Mumble/Mumble Client
2023-02-16 19:07:57 +01:00
Hosted Weblate
623fe843e0 TRANSLATION: Update Portuguese (Brazil) translation
Currently translated at 92.1% (1940 of 2105 strings)

Co-authored-by: Felipe Nogueira <contato.fnog@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/pt_BR/
Translation: Mumble/Mumble Client
2023-02-16 19:07:57 +01:00
Hosted Weblate
ba269bcc4a TRANSLATION: Update French translation
Currently translated at 100.0% (2109 of 2109 strings)

TRANSLATION: Update French translation

Currently translated at 100.0% (2109 of 2109 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: John Doe <thraex@numericable.fr>
Co-authored-by: Mayeul Cantan <mayeul.cantan@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/fr/
Translation: Mumble/Mumble Client
2023-02-16 19:07:57 +01:00
Hosted Weblate
18b1b7124b TRANSLATION: Update Greek translation
Currently translated at 100.0% (2105 of 2105 strings)

Co-authored-by: Athanasios Plastiras <Tha14@users.noreply.github.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/el/
Translation: Mumble/Mumble Client
2023-02-16 19:07:55 +01:00
Hosted Weblate
d3820a0191 TRANSLATION: Update Swedish translation
Currently translated at 100.0% (2105 of 2105 strings)

TRANSLATION: Update Swedish translation

Currently translated at 99.9% (2104 of 2105 strings)

TRANSLATION: Update Swedish translation

Currently translated at 97.8% (2059 of 2105 strings)

TRANSLATION: Update Swedish translation

Currently translated at 97.8% (2059 of 2105 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kristoffer Grundström <swedishsailfishosuser@tutanota.com>
Co-authored-by: Robert Adam <dev@robert-adam.de>
Co-authored-by: conkt <conkt@joel.ps>
Translate-URL: https://hosted.weblate.org/projects/mumble/mumble-client/sv/
Translation: Mumble/Mumble Client
2023-02-16 19:06:09 +01:00
Hosted Weblate
f6edff7a63 TRANSLATION: Update Polish translation
Currently translated at 100.0% (2109 of 2109 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
2023-02-16 18:57:21 +01:00
Hosted Weblate
6a865ee705 TRANSLATION: Update Chinese (Simplified) translation
Currently translated at 100.0% (2109 of 2109 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
2023-02-16 18:57:21 +01:00
Robert Adam
d5bcac5102
Merge PR #6064: FIX(client, server): Remove unreachable -V flag 2023-02-16 18:52:37 +01:00
Robert Adam
4d1398d017 TRANSLATION: Update translation files 2023-02-16 17:56:58 +01:00
Robert Adam
9dd7fae8c0 FIX(client, server): Remove unreachable -V flag
Via #5599 support for the --version CLI flag was added. Additionally, a
short-form -V was also added. However, as it turns out Mumble doesn't
consider the casing of CLI arguments and therefore passing -V instead
triggers the code path for -v (small "v") which enables verbose output.

As this option can't be used anyway, it has now been removed and the
help text was adapted accordingly.

Fixes #6037
2023-02-16 17:56:41 +01:00
Robert Adam
8f47e18e76 FIX(server): Send enter restriction updates to correct user
Instead of flooding the client that issued the ACL change with messages
about other user's enter capabilities of the modified channel, we now
send those messages to the clients that actually care about this
information (the information affecting themselves).
2023-02-14 17:54:35 +01:00
Robert Adam
19696d6ca0 FIX(server): Potential crash due to missing locks
Not taking the qmCache mutex while accessing acCache can lead to
concurrent modification errors, that can cause the server to crash.
Therefore, we now make sure that we hold the mutex before accessing
acCache.

We re-take the lock in every iteration in order to ensure the voice
thread is not stalled by bigger loops over channel or users (the
voice-thread needs to take permissions into account for e.g. linked
channels). For this, we accept the overhead of re-taking the lock in
every iteration in the control thread.
2023-02-14 17:54:04 +01:00
Hartmnt
648fe27692 FIX(client): Send empty buffer in PA write_callback instead of nothing
When applying the settings, Mumble will restart the AudioSystems for
input and output. During this time, if a PulseAudio write_callback
happens, Mumble will write nothing and just return.
However, this behavior will cause PulseAudio to never request a callback
again, disabling audio output for the user until mumble is restarted.
( See: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1132 )

This commit instead changes the code to return an empty buffer in that
case instead, such that PulseAudio will continue to send Mumble
write_callbacks and keep audio output intact.

Special thanks to GitHub User WGH- who found out about this fix and
originally posted the patch in the Mumble issue tracker.

Reverts 0cd23554a #3316

Fixes #4883

Co-Authored-By: WGH <wgh@torlan.ru>
2023-02-02 19:13:12 +00:00
Robert Adam
38926750ff BUILD(cmake): Fix server-only builds
In #6002 the dbus option was removed and on Linux systems DBus was
unconditionally enabled. However, in the server's cmake file a
copy&paste error was introduced that would produce an error if the
client was not built alongside the server.

This commit fixes this error and therefore makes server-only
builds possible again.
2023-01-14 13:37:01 +01:00