This reverts commit 7d0b933.
The issue with theses changes is that they cause
AudioInput::encodeAudioframe from no longer being called if the user is
muted. The functionality packed inside the mentioned function relies on
being continually being called even if there is no audio to send.
Thus no longer calling them affects the following things (maybe more):
local user's talking state (can get stuck in a certain state)
Audio cues for begin/end of a transmission
Idle actions
Framesize stuffing when using Opus
Resetting of certain variables (iBitrate)
Clearing/Handling of whisper targets (for last audio frame)
Properly updating bPreviousVoice
In order to use the changes originally made by that commit, the audio
system has to be refactored first so that these things no longer rely on
this function being called continuously.
Ref: #171
Old workaround for parts of this issue: #4018
If the font size for the TalkingUI was set to something different than
100%, the TalkingUI's icon sizes would be incorrect.
This is due to the icon size being initialized to the widget's
font-size. This doesn't seem to have been affected by inherited
StyleSheets right after construction and therefore they'd always report
the default font-size.
This commit fixes this by explicitly setting the icon-size after an
entry is created.
In this context the method of calculating the current line height has
been overhauled as well as this would also depend on when the respective
function was called. This is probably due to Qt not having stored the
display's DPI correctly yet and thus the conversion from point size to
pixel size is flawed.
Since the ini file would be removed or overwritten by installs,
upgrades, and uninstalls it should be created at app runtime or manually
copied to the install path after install.
Since the ini file would be removed or overwritten by installs,
upgrades, and uninstalls it should be created at app runtime or manually
copied to the install path after install.
If the font size for the TalkingUI was set to something different than
100%, the TalkingUI's icon sizes would be incorrect.
This is due to the icon size being initialized to the widget's
font-size. This doesn't seem to have been affected by inherited
StyleSheets right after construction and therefore they'd always report
the default font-size.
This commit fixes this by explicitly setting the icon-size after an
entry is created.
In this context the method of calculating the current line height has
been overhauled as well as this would also depend on when the respective
function was called. This is probably due to Qt not having stored the
display's DPI correctly yet and thus the conversion from point size to
pixel size is flawed.
This reverts commit 7d0b933a7e.
The issue with theses changes is that they cause
AudioInput::encodeAudioframe from no longer being called if the user is
muted. The functionality packed inside the mentioned function relies on
being continually being called even if there is no audio to send.
Thus no longer calling them affects the following things (maybe more):
- local user's talking state (can get stuck in a certain state)
- Audio cues for begin/end of a transmission
- Idle actions
- Framesize stuffing when using Opus
- Resetting of certain variables (iBitrate)
- Clearing/Handling of whisper targets (for last audio frame)
- Properly updating bPreviousVoice
In order to use the changes originally made by that commit, the audio
system has to be refactored first so that these things no longer rely on
this function being called continuously.
Ref: #171
Old workaround for parts of this issue: #4018
- Remove CPack and previous WiX installer projects and sources
- Add toolset for WixSharp to facilitate client and server builds
individually or collectively.
- Add multilanguage build with packaging=ON and translations=ON, and
standard build with packaging=ON. Builds are also aware of client and
server option settings.
- Add correct LICENSE to installer
Fixes: #4488
WixSharp: https://github.com/oleg-shilo/wixsharp
If a system for instance uses -z,now in their default build flags (as
Arch Linux does), it will overwrite the -z,lazy flag which however is
needed in order for the overlay to work with games that are not directly
linked with OpenGL.
By using the BEFORE keyword in cmake, we can prevent this from
happening.
This commit can be viewed as a follow-up for #3307.
Fixes#3296
If a system for instance uses -z,now in their default build flags (as
Arch Linux does), it will overwrite the -z,lazy flag which however is
needed in order for the overlay to work with games that are not directly
linked with OpenGL.
By using the BEFORE keyword in cmake, we can prevent this from
happening.
This commit can be viewed as a follow-up for #3307.
Fixes#3296
Remove CPack and previous WiX installer projects and sources
Add toolset and for WixSharp to facilitate client and server builds
individually or collectively.
Add multilanguage build with packaging=ON and translations=ON, and
standard build with packaging=ON. Builds are also aware of client and
server option settings.
Add correct LICENSE to installer
As things are now, 'systemctl start murmur' hangs and eventually times
out.
The problem is that in the unit file, both Type=forking and
PIDFile=/run/murmur/murmur.pid are specified. In this scenario systemd
will wait for the PID file to appear. However, it will never appear
there, as murmur does setuid on its own before writing the pid file,
and thus lacks the rights to write to /run, and even if it had the rights,
it doesn't try to create a missing directory anyway.
Switch to Type=exec and foreground mode to fix this. systemd services
don't really need forking behaviour anyway, and in fact handling
forking servers requires some extra hoops to jump through on the
systemd side.
This change also makes murmur (when run with murmur.service) to log
to the systemd journal instead of log files.
Although the unit file has been broken for a long time, Debian-based
distros still use the /etc/init.d/mumble-server wrapped with
systemd-sysv-generator, and haven't noticed the problem.
Before this commit, the code on the server made sure that a
ChannelListener would always receive audio that was being shouted to a
channel. It didn't respect though if the shout was actually restricted
to be received by only a specific group.
This patch now makes sure that listeners are also checked for their
group so that a listener that doesn't belong to the target group (if one
is set) won't receive the audio either.
The race condition was that the channel of a user could be modified
and before it gets updated in the TalkingUI as well, the talking state
of that user changes. Then inside the talkingStateChanged function the
code would assume that the TalkingUIUser is in the container representing
the current channel of that user but in fact in the TalkingUI this user
is still in its own channel, causing the user-search to return nullptr
which then yields a SegFault as soon as the returned pointer gets
dereferenced.
The race condition was that the channel of a user could be modified
and before it gets updated in the TalkingUI as well, the talking state
of that user changes. Then inside the talkingStateChanged function the
code would assume that the TalkingUIUser is in the container representing
the current channel of that user but in fact in the TalkingUI this user
is still in its own channel, causing the user-search to return nullptr
which then yields a SegFault as soon as the returned pointer gets
dereferenced.
Before this commit, the code on the server made sure that a
ChannelListener would always receive audio that was being shouted to a
channel. It didn't respect though if the shout was actually restricted
to be received by only a specific group.
This patch now makes sure that listeners are also checked for their
group so that a listener that doesn't belong to the target group (if one
is set) won't receive the audio either.
We used EQUAL to compare the option's value to a String. This however does not work as according to
the cmake documentation on EQUAL says
"True if the given string or variable’s value is a valid number and equal to that on the right."
As we are not comparing numbers but "real Strings", we have to use STREQUAL instead.
When building on CentOS 8 with default flags which includes Wall flag,
build stops because array n[3] is not initialized. Initialize it to have all
values to be zero.
Now that Travis CI decided to stop offering their services for free, we
had to look for an alternative solution. GitHub Actions seems to fit the
picture really well and has the benefit of being tightly integrated into
GitHub (obviously).
For now only shared builds for Ubuntu 18.04 and 20.04 are included. The
scripts and the framework for also including static builds is part of
this commit as well but as it stands the static build always failed and
therefore it was given up upon for now.
Adding support for other OS will require a few tweaks and a couple of
new scripts but in general the framework was built with this kind of
extension in mind.
When building on CentOS 8 with default flags which includes Wall flag,
build stops because array n[3] is not initialized. Initialize it to have all
values to be zero.
Now that Travis CI decided to stop offering their services for free, we
had to look for an alternative solution. GitHub Actions seems to fit the
picture really well and has the benefit of being tightly integrated into
GitHub (obviously).
For now only shared builds for Ubuntu 18.04 and 20.04 are included. The
scripts and the framework for also including static builds is part of
this commit as well but as it stands the static build always failed and
therefore it was given up upon for now.
Adding support for other OS will require a few tweaks and a couple of
new scripts but in general the framework was built with this kind of
extension in mind.
Part 1
The Dockerfile contained instructions at the wrong position causing it
to not work properly (it didn't install the necessary dependencies).
Fixes#4600
Part 2
Don't install qtcreator via Dockerfile
The Qt Creator IDE should not be needed in the Docker image at all.
By default this library is needed as the option overlay-xcompile
defaults to ON. Therefore we should list g++-multilib as a dependency
directly and only mention how to get rid of this dependency, not the
other way around.
This will probably avoid some confusion on the reader's side.
By default this library is needed as the option overlay-xcompile
defaults to ON. Therefore we should list g++-multilib as a dependency
directly and only mention how to get rid of this dependency, not the
other way around.
This will probably avoid some confusion on the reader's side.
The issue of cmake finding an incompatible OpenSSL version was
encountered on macOS in #4486, which is why the problem is also
explicitly mentioned in the macOS instructions.