This flag makes sure that the verbose output of running the test cases
is not shown, unless the test fails. In that case the full output is
displayed (for that test case).
Previously all source files were added to a single executable file
(library on Windows). This makes reusing the source files (e.g. linking
them to test cases) close to impossible.
Therefore, this commit changes this by compiling all source files into
an object library that can be used for the aforementioned
executable/library but also be reused (e.g. in tests).
Previously settings were only saved upon Mumble's exit. This commit
makes sure that the settings are also saved to file every time, the user
accepts the settings window. That way settings are guaranteed to survive
potential crashes or other hard-exits of Mumble (e.g. Ctrl+C, Task
manager, etc.).
The Database::setShortcut function is used to save server-specific
shortcuts to the DB. However, at the same time it also deletes these
shortcuts from the passed list. This is a very unintuitive side-effect
of this function that also prevents saving shortcuts intermediately
instead of only upon disconnecting from a server (at which point we
indeed want to remove server-specific shortcuts).
Therefore, this commit removes this side-effect and instead explicitly
removes these shortcuts on disconnecting from a server.
We save a flag into our settings that indicates whether Mumble has quit
normally at the time the settings were saved. If upon loading, we don't
find this flag set, we have to assume that this may be because Mumble
has crashed the last time. Since the crash may be caused by changed
settings, we offer the user the possibility to load the backup settings
instead.
Previously we used different formats on different platforms (registry on
Windows, plists on macOS, ini files on Linux). This commit makes sure
that the same format is used on all platforms, regardless of the used
OS.
In this process a few unneeded settings have been removed and the
settings migration path has been tidied up as well (the code from
main.cpp was moved to Settings.cpp and the original uiUpdateCounter
variable was completely removed and replaced with logic inside the
routines handling the JSON (de)serialization of settings.
The old settings should be overtaken without issues and converted into
the new format on-the-fly without the user taking any notice of this.
From that on, the JSON settings file will be used instead.
Fixes#1940
In the installer refactor (88e1786) these registry keys were removed, so new installs did not register a URL protocol and users weren't able to use mumble:// links.
This is a direct translation of Files.wxs to equivalent WixSharp code.
Closes#5473
In the installer refactor (88e1786849) these registry keys were removed, so new installs did not register a URL protocol and users weren't able to use `mumble://` links.
This is a translation of the registry values from `Files.wxs` to equivalent WixSharp code.
Closes#5473
As request in #2453, this commit implements the industry standard
for microphone hold time for voice activation detection. The calculation
that yields hold time (s) from the iVoiceHold setting is described and
comments are added to describe the function of related fields.
Implements #2453.
The bundled version is 0.7.0 and versions >0.7.x are NOT supported.
At least on OpenBSD (only packaging 0.11.x), the built would fail.
Yield and error at configure time with this fix.
CMake's find_package() function accepts an optional version argument
but Mumble's find_pkg() wrapper does not (treating it as package), so
roll our own check/error:
-- celt found | Version: 0.11.1
CMake Error at src/mumble/CMakeLists.txt:677 (message):
CELT 0.7.x is required, found 0.11.1!
Relates to #4476.
Encourage OS package maintainers to run tests by packaging=ON implying
tests=ON.
Keep online-tests=OFF by default since it is common practise for
packages to be built in unprivileged environments, e.g. without network.
This is dead code since
```
commit c5644c7d73
Author: Robert Adam <dev@robert-adam.de>
Date: Thu May 7 08:14:09 2020 +0200
3rdparty: Removed sbcelt submodule as it is not used and broken
```
The bundled version is 0.7.0 and versions >0.7.x are NOT supported.
At least on OpenBSD (only packaging 0.11.x), the built would fail.
Yield and error at configure time with this fix.
CMake's `find_package()` function accepts an optional `version` argument
but Mumble's `find_pkg()` wrapper does not (treating it as package), so
roll our own check/error:
```
-- celt found | Version: 0.11.1
CMake Error at src/mumble/CMakeLists.txt:677 (message):
CELT 0.7.x is required, found 0.11.1!
```
Relates to #4476.
Encourage OS package maintainers to run tests by `packaging=ON` implying
`tests=ON`.
Keep `online-tests=OFF` by default since it is common practise for
packages to be built in unprivileged environments, e.g. without network.
The library is readily available in OpenBSD's version of X[0].
Follow suit with Linux in enabling.
Noticed by the warning upon startup:
```
-<W>2022-01-21 02:30:40.548 GlobalShortcutX: No XInput support, falling back to polled input. This wastes a lot of CPU resources, so please enable one of the other methods.
+<W>2022-01-21 02:34:00.159 GlobalShortcutX: Using XI2 2.4
```
0: https://xenocara.org/
This changes the appstream id to info.mumble.Mumble, which is correct in regards to the specification.
This mostly upstreams the appstream metadata that was previously used for flatpak.
The clampFloatSample function is only used when rnnoise support is enabled, when it isn't this the presence of the function (since it is static) causes a -Wunused-function warning which ultimately ends up causing a build error due to -Werror.
As per POSIX.1-2008, the correct header to include for poll(3) is
poll.h. Including sys/poll.h instead of poll.h causes the following
warning message on Alpine Linux:
/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
1 | #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
Due to -Werror, this ultimately causes the build to fail.
As per POSIX, basename(3) is defined in libgen.h. Without including this header file the code presently does not compile (on musl) due to -Werror and a -Wimplicit-function-declaration warning.
As request in #2453, this commit implements the industry standard
for microphone hold time for voice activation detection. The calculation
that yields hold time (s) from the iVoiceHold setting is described and
comments are added to describe the function of related fields.
Implements #2453.
As per POSIX, basename(3) is defined in libgen.h. Without including
this header file the code presently does not compile (on musl) due to
`-Werror` and a `-Wimplicit-function-declaration` warning.
The clampFloatSample function is only used when rnnoise support is
enabled, when it isn't this the presence of the function (since it is
static) causes a `-Wunused-function` warning which ultimately ends up
causing a build error due to `-Werror`.
As per POSIX.1-2008, the correct header to include for poll(3) is
poll.h. Including sys/poll.h instead of poll.h causes the following
warning message on Alpine Linux:
/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
1 | #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
Due to `-Werror`, this ultimately causes the build to fail.
The concept of RELEASE_ID was dropped with PR #5401 in commit 6caa808e6.
Thus, drop its leftovers from the documentation.
Signed-off-by: Felix Singer <felixsinger@posteo.net>
This file hasn't been updated in ages and is therefore removed.
Consequently the corresponding script is also removed.
The actual changes can be taken from the git commit history or (more
compact) in the changelogs published with out releases.
This file is not used anymore, since GitHub has a dedicated tab of
listing all contributions. Therefore, we now remove the AUTHORS file in
favor of that.
As a consequence, we also remove the generate-AUTHORS.py script.
GNUInstallDirs is already used in cmake/install-paths.cmake. This fixes
arch-independent files ending up in $prefix/share instead of /usr/share.
This is required on multiarch/cross layouts setting the prefix to e.g.
/usr/x86_64-pc-linux-gnu or /usr/i686-pc-linux-gnu.
GNUInstallDirs is already used in cmake/install-paths.cmake. This fixes
arch-independent files ending up in $prefix/share instead of /usr/share.
This is required on multiarch/cross layouts setting the prefix to e.g.
/usr/x86_64-pc-linux-gnu or /usr/i686-pc-linux-gnu.