Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRobert Adam <krzmbrzl@gmail.com>2021-03-01 20:01:11 +0300
committerRobert Adam <krzmbrzl@gmail.com>2021-03-02 12:15:01 +0300
commit59ae429972c16c377135bcccfee646b7df446933 (patch)
treed4d82f96756f95255970f165195f3fde71273c40 /src
parent86710dab6202794bb14a26aff76e303c99c7dc43 (diff)
MAINT: Update copyright notice to 2021
This was done by running scripts/updateLicenseHeaders.py and then manually editing the LICENSE file.
Diffstat (limited to 'src')
-rw-r--r--src/ACL.cpp2
-rw-r--r--src/ACL.h2
-rw-r--r--src/Ban.cpp2
-rw-r--r--src/Ban.h2
-rw-r--r--src/ByteSwap.h2
-rw-r--r--src/Channel.cpp2
-rw-r--r--src/Channel.h2
-rw-r--r--src/ChannelListener.cpp2
-rw-r--r--src/ChannelListener.h2
-rw-r--r--src/Connection.cpp2
-rw-r--r--src/Connection.h2
-rw-r--r--src/CryptState.h2
-rw-r--r--src/EnvUtils.cpp2
-rw-r--r--src/EnvUtils.h2
-rw-r--r--src/FFDHE.cpp2
-rw-r--r--src/FFDHE.h2
-rw-r--r--src/FFDHETable.h2
-rw-r--r--src/Group.cpp2
-rw-r--r--src/Group.h2
-rw-r--r--src/HTMLFilter.cpp2
-rw-r--r--src/HTMLFilter.h2
-rw-r--r--src/HostAddress.cpp2
-rw-r--r--src/HostAddress.h2
-rw-r--r--src/License.cpp2
-rw-r--r--src/License.h2
-rw-r--r--src/LogEmitter.cpp2
-rw-r--r--src/LogEmitter.h2
-rw-r--r--src/Message.h2
-rw-r--r--src/Mumble.proto2
-rw-r--r--src/Net.cpp2
-rw-r--r--src/Net.h2
-rw-r--r--src/OSInfo.cpp2
-rw-r--r--src/OSInfo.h2
-rw-r--r--src/PacketDataStream.h2
-rw-r--r--src/PasswordGenerator.cpp2
-rw-r--r--src/PasswordGenerator.h2
-rw-r--r--src/PlatformCheck.cpp2
-rw-r--r--src/PlatformCheck.h2
-rw-r--r--src/QtUtils.cpp2
-rw-r--r--src/SSL.cpp2
-rw-r--r--src/SSL.h2
-rw-r--r--src/SSLCipherInfo.cpp44
-rw-r--r--src/SSLCipherInfo.h40
-rw-r--r--src/SSLCipherInfoTable.h2
-rw-r--r--src/SSLLocks.cpp2
-rw-r--r--src/SSLLocks.h2
-rw-r--r--src/SelfSignedCertificate.cpp2
-rw-r--r--src/SelfSignedCertificate.h2
-rw-r--r--src/ServerAddress.cpp2
-rw-r--r--src/ServerAddress.h2
-rw-r--r--src/ServerResolver.cpp2
-rw-r--r--src/ServerResolver.h2
-rw-r--r--src/ServerResolverRecord.cpp2
-rw-r--r--src/ServerResolverRecord.h2
-rw-r--r--src/SignalCurry.h2
-rw-r--r--src/SpeechFlags.h2
-rw-r--r--src/Timer.cpp2
-rw-r--r--src/Timer.h2
-rw-r--r--src/UnresolvedServerAddress.cpp2
-rw-r--r--src/UnresolvedServerAddress.h2
-rw-r--r--src/User.cpp2
-rw-r--r--src/User.h2
-rw-r--r--src/Utils.h2
-rw-r--r--src/Version.cpp2
-rw-r--r--src/Version.h2
-rw-r--r--src/crypto/CryptState.h2
-rw-r--r--src/crypto/CryptStateOCB2.cpp2
-rw-r--r--src/crypto/CryptStateOCB2.h2
-rw-r--r--src/crypto/CryptographicHash.cpp2
-rw-r--r--src/crypto/CryptographicHash.h2
-rw-r--r--src/crypto/CryptographicRandom.cpp2
-rw-r--r--src/crypto/CryptographicRandom.h2
-rw-r--r--src/licenses.h5
-rw-r--r--src/mumble/ACLEditor.cpp2
-rw-r--r--src/mumble/ACLEditor.h2
-rw-r--r--src/mumble/ALSAAudio.cpp2
-rw-r--r--src/mumble/ALSAAudio.h2
-rw-r--r--src/mumble/ASIOInput.cpp2
-rw-r--r--src/mumble/ASIOInput.h2
-rw-r--r--src/mumble/About.cpp2
-rw-r--r--src/mumble/About.h2
-rw-r--r--src/mumble/AppNap.h2
-rw-r--r--src/mumble/AppNap.mm2
-rw-r--r--src/mumble/ApplicationPalette.h2
-rw-r--r--src/mumble/ApplicationPaletteTemplate.h2
-rw-r--r--src/mumble/Audio.cpp2
-rw-r--r--src/mumble/Audio.h2
-rw-r--r--src/mumble/AudioConfigDialog.cpp2
-rw-r--r--src/mumble/AudioConfigDialog.h2
-rw-r--r--src/mumble/AudioInput.cpp2
-rw-r--r--src/mumble/AudioInput.h2
-rw-r--r--src/mumble/AudioOutput.cpp2
-rw-r--r--src/mumble/AudioOutput.h2
-rw-r--r--src/mumble/AudioOutputSample.cpp2
-rw-r--r--src/mumble/AudioOutputSample.h2
-rw-r--r--src/mumble/AudioOutputSpeech.cpp2
-rw-r--r--src/mumble/AudioOutputSpeech.h2
-rw-r--r--src/mumble/AudioOutputUser.cpp2
-rw-r--r--src/mumble/AudioOutputUser.h2
-rw-r--r--src/mumble/AudioStats.cpp2
-rw-r--r--src/mumble/AudioStats.h2
-rw-r--r--src/mumble/AudioWizard.cpp2
-rw-r--r--src/mumble/AudioWizard.h2
-rw-r--r--src/mumble/BanEditor.cpp2
-rw-r--r--src/mumble/BanEditor.h2
-rw-r--r--src/mumble/CELTCodec.cpp2
-rw-r--r--src/mumble/CELTCodec.h2
-rw-r--r--src/mumble/CELTCodec_sbcelt.cpp2
-rw-r--r--src/mumble/Cert.cpp2
-rw-r--r--src/mumble/Cert.h2
-rw-r--r--src/mumble/ClientUser.cpp2
-rw-r--r--src/mumble/ClientUser.h2
-rw-r--r--src/mumble/ConfigDialog.cpp2
-rw-r--r--src/mumble/ConfigDialog.h2
-rw-r--r--src/mumble/ConfigWidget.cpp2
-rw-r--r--src/mumble/ConfigWidget.h2
-rw-r--r--src/mumble/ConnectDialog.cpp2
-rw-r--r--src/mumble/ConnectDialog.h2
-rw-r--r--src/mumble/CoreAudio.h2
-rw-r--r--src/mumble/CoreAudio.mm2
-rw-r--r--src/mumble/CrashReporter.cpp2
-rw-r--r--src/mumble/CrashReporter.h2
-rw-r--r--src/mumble/CustomElements.cpp2
-rw-r--r--src/mumble/CustomElements.h2
-rw-r--r--src/mumble/DBus.cpp2
-rw-r--r--src/mumble/DBus.h2
-rw-r--r--src/mumble/Database.cpp2
-rw-r--r--src/mumble/Database.h2
-rw-r--r--src/mumble/DeveloperConsole.cpp2
-rw-r--r--src/mumble/DeveloperConsole.h2
-rw-r--r--src/mumble/G15LCDEngine_helper.cpp2
-rw-r--r--src/mumble/G15LCDEngine_helper.h2
-rw-r--r--src/mumble/G15LCDEngine_lglcd.cpp2
-rw-r--r--src/mumble/G15LCDEngine_lglcd.h2
-rw-r--r--src/mumble/G15LCDEngine_unix.cpp2
-rw-r--r--src/mumble/G15LCDEngine_unix.h2
-rw-r--r--src/mumble/GKey.cpp304
-rw-r--r--src/mumble/GKey.h128
-rw-r--r--src/mumble/Global.cpp2
-rw-r--r--src/mumble/Global.h2
-rw-r--r--src/mumble/GlobalShortcut.cpp2
-rw-r--r--src/mumble/GlobalShortcut.h2
-rw-r--r--src/mumble/GlobalShortcut_macx.h2
-rw-r--r--src/mumble/GlobalShortcut_macx.mm2
-rw-r--r--src/mumble/GlobalShortcut_unix.cpp2
-rw-r--r--src/mumble/GlobalShortcut_unix.h2
-rw-r--r--src/mumble/GlobalShortcut_win.cpp2
-rw-r--r--src/mumble/GlobalShortcut_win.h2
-rw-r--r--src/mumble/JackAudio.cpp2
-rw-r--r--src/mumble/JackAudio.h2
-rw-r--r--src/mumble/LCD.cpp2
-rw-r--r--src/mumble/LCD.h2
-rw-r--r--src/mumble/ListenerLocalVolumeDialog.cpp2
-rw-r--r--src/mumble/ListenerLocalVolumeDialog.h2
-rw-r--r--src/mumble/Log.cpp2
-rw-r--r--src/mumble/Log.h2
-rw-r--r--src/mumble/Log_macx.mm2
-rw-r--r--src/mumble/Log_unix.cpp2
-rw-r--r--src/mumble/Log_win.cpp2
-rw-r--r--src/mumble/LookConfig.cpp2
-rw-r--r--src/mumble/LookConfig.h2
-rw-r--r--src/mumble/MainWindow.cpp2
-rw-r--r--src/mumble/MainWindow.h2
-rw-r--r--src/mumble/ManualPlugin.cpp2
-rw-r--r--src/mumble/ManualPlugin.h2
-rw-r--r--src/mumble/Markdown.cpp2
-rw-r--r--src/mumble/Markdown.h2
-rw-r--r--src/mumble/Messages.cpp2
-rw-r--r--src/mumble/MumbleApplication.cpp2
-rw-r--r--src/mumble/MumbleApplication.h2
-rw-r--r--src/mumble/NetworkConfig.cpp2
-rw-r--r--src/mumble/NetworkConfig.h2
-rw-r--r--src/mumble/OSS.cpp2
-rw-r--r--src/mumble/OSS.h2
-rw-r--r--src/mumble/OpusCodec.cpp2
-rw-r--r--src/mumble/OpusCodec.h2
-rw-r--r--src/mumble/Overlay.cpp2
-rw-r--r--src/mumble/Overlay.h2
-rw-r--r--src/mumble/OverlayClient.cpp2
-rw-r--r--src/mumble/OverlayClient.h2
-rw-r--r--src/mumble/OverlayConfig.cpp2
-rw-r--r--src/mumble/OverlayConfig.h2
-rw-r--r--src/mumble/OverlayEditor.cpp2
-rw-r--r--src/mumble/OverlayEditor.h2
-rw-r--r--src/mumble/OverlayEditorScene.cpp2
-rw-r--r--src/mumble/OverlayEditorScene.h2
-rw-r--r--src/mumble/OverlayPositionableItem.cpp174
-rw-r--r--src/mumble/OverlayPositionableItem.h66
-rw-r--r--src/mumble/OverlayText.cpp2
-rw-r--r--src/mumble/OverlayText.h2
-rw-r--r--src/mumble/OverlayUser.cpp2
-rw-r--r--src/mumble/OverlayUser.h2
-rw-r--r--src/mumble/OverlayUserGroup.cpp2
-rw-r--r--src/mumble/OverlayUserGroup.h2
-rw-r--r--src/mumble/Overlay_macx.mm2
-rw-r--r--src/mumble/Overlay_unix.cpp2
-rw-r--r--src/mumble/Overlay_win.cpp2
-rw-r--r--src/mumble/Overlay_win.h112
-rw-r--r--src/mumble/PAAudio.cpp2
-rw-r--r--src/mumble/PAAudio.h2
-rw-r--r--src/mumble/PTTButtonWidget.cpp2
-rw-r--r--src/mumble/PTTButtonWidget.h2
-rw-r--r--src/mumble/PathListWidget.cpp184
-rw-r--r--src/mumble/PathListWidget.h80
-rw-r--r--src/mumble/Plugins.cpp2
-rw-r--r--src/mumble/Plugins.h2
-rw-r--r--src/mumble/PulseAudio.cpp2
-rw-r--r--src/mumble/PulseAudio.h2
-rw-r--r--src/mumble/RichTextEditor.cpp2
-rw-r--r--src/mumble/RichTextEditor.h2
-rw-r--r--src/mumble/Screen.cpp2
-rw-r--r--src/mumble/Screen.h2
-rw-r--r--src/mumble/ServerHandler.cpp2
-rw-r--r--src/mumble/ServerHandler.h2
-rw-r--r--src/mumble/Settings.cpp2
-rw-r--r--src/mumble/Settings.h2
-rw-r--r--src/mumble/SharedMemory.cpp2
-rw-r--r--src/mumble/SharedMemory.h2
-rw-r--r--src/mumble/SharedMemory_unix.cpp2
-rw-r--r--src/mumble/SharedMemory_win.cpp2
-rw-r--r--src/mumble/SocketRPC.cpp2
-rw-r--r--src/mumble/SocketRPC.h2
-rw-r--r--src/mumble/SvgIcon.cpp2
-rw-r--r--src/mumble/SvgIcon.h2
-rw-r--r--src/mumble/TalkingUI.cpp2
-rw-r--r--src/mumble/TalkingUI.h2
-rw-r--r--src/mumble/TalkingUIComponent.h2
-rw-r--r--src/mumble/TalkingUIContainer.cpp2
-rw-r--r--src/mumble/TalkingUIContainer.h2
-rw-r--r--src/mumble/TalkingUIEntry.cpp2
-rw-r--r--src/mumble/TalkingUIEntry.h2
-rw-r--r--src/mumble/TalkingUISelection.cpp2
-rw-r--r--src/mumble/TalkingUISelection.h2
-rw-r--r--src/mumble/TaskList.cpp2
-rw-r--r--src/mumble/TaskList.h2
-rw-r--r--src/mumble/TextMessage.cpp2
-rw-r--r--src/mumble/TextMessage.h2
-rw-r--r--src/mumble/TextToSpeech.cpp2
-rw-r--r--src/mumble/TextToSpeech.h2
-rw-r--r--src/mumble/TextToSpeech_macx.mm2
-rw-r--r--src/mumble/TextToSpeech_unix.cpp2
-rw-r--r--src/mumble/TextToSpeech_win.cpp2
-rw-r--r--src/mumble/ThemeInfo.cpp2
-rw-r--r--src/mumble/ThemeInfo.h2
-rw-r--r--src/mumble/Themes.cpp2
-rw-r--r--src/mumble/Themes.h2
-rw-r--r--src/mumble/Tokens.cpp2
-rw-r--r--src/mumble/Tokens.h2
-rw-r--r--src/mumble/Usage.cpp2
-rw-r--r--src/mumble/Usage.h2
-rw-r--r--src/mumble/UserEdit.cpp2
-rw-r--r--src/mumble/UserEdit.h2
-rw-r--r--src/mumble/UserInformation.cpp2
-rw-r--r--src/mumble/UserInformation.h2
-rw-r--r--src/mumble/UserListModel.cpp2
-rw-r--r--src/mumble/UserListModel.h2
-rw-r--r--src/mumble/UserLocalNicknameDialog.cpp2
-rw-r--r--src/mumble/UserLocalNicknameDialog.h2
-rw-r--r--src/mumble/UserLocalVolumeDialog.cpp2
-rw-r--r--src/mumble/UserLocalVolumeDialog.h2
-rw-r--r--src/mumble/UserLockFile.h2
-rw-r--r--src/mumble/UserLockFile_win.cpp2
-rw-r--r--src/mumble/UserModel.cpp2
-rw-r--r--src/mumble/UserModel.h2
-rw-r--r--src/mumble/UserView.cpp2
-rw-r--r--src/mumble/UserView.h2
-rw-r--r--src/mumble/VersionCheck.cpp2
-rw-r--r--src/mumble/VersionCheck.h2
-rw-r--r--src/mumble/ViewCert.cpp2
-rw-r--r--src/mumble/ViewCert.h2
-rw-r--r--src/mumble/VoiceRecorder.cpp2
-rw-r--r--src/mumble/VoiceRecorder.h2
-rw-r--r--src/mumble/VoiceRecorderDialog.cpp2
-rw-r--r--src/mumble/VoiceRecorderDialog.h2
-rw-r--r--src/mumble/WASAPI.cpp2
-rw-r--r--src/mumble/WASAPI.h2
-rw-r--r--src/mumble/WASAPINotificationClient.cpp2
-rw-r--r--src/mumble/WASAPINotificationClient.h2
-rw-r--r--src/mumble/WebFetch.cpp2
-rw-r--r--src/mumble/WebFetch.h2
-rw-r--r--src/mumble/WinGUIDs.cpp2
-rw-r--r--src/mumble/XMLTools.cpp402
-rw-r--r--src/mumble/XMLTools.h76
-rw-r--r--src/mumble/XboxInput.cpp138
-rw-r--r--src/mumble/XboxInput.h168
-rw-r--r--src/mumble/Zeroconf.cpp2
-rw-r--r--src/mumble/Zeroconf.h2
-rw-r--r--src/mumble/main.cpp2
-rw-r--r--src/mumble/mumble_pch.hpp2
-rw-r--r--src/mumble/os_early_win.cpp2
-rw-r--r--src/mumble/os_macx.mm2
-rw-r--r--src/mumble/os_unix.cpp2
-rw-r--r--src/mumble/os_win.cpp2
-rw-r--r--src/mumble/widgets/CompletablePage.cpp2
-rw-r--r--src/mumble/widgets/MUComboBox.cpp2
-rw-r--r--src/mumble/widgets/MUComboBox.h2
-rw-r--r--src/mumble/widgets/MultiStyleWidgetWrapper.cpp2
-rw-r--r--src/mumble/widgets/MultiStyleWidgetWrapper.h2
-rw-r--r--src/mumble_exe/Overlay.cpp2
-rw-r--r--src/mumble_exe/mumble_exe.cpp2
-rw-r--r--src/murmur/About.cpp2
-rw-r--r--src/murmur/About.h2
-rw-r--r--src/murmur/Cert.cpp2
-rw-r--r--src/murmur/DBus.cpp2
-rw-r--r--src/murmur/DBus.h2
-rw-r--r--src/murmur/Messages.cpp2
-rw-r--r--src/murmur/Meta.cpp2
-rw-r--r--src/murmur/Meta.h2
-rw-r--r--src/murmur/Murmur.ice2
-rw-r--r--src/murmur/MurmurGRPCImpl.cpp2
-rw-r--r--src/murmur/MurmurGRPCImpl.h2
-rw-r--r--src/murmur/MurmurI.h2
-rw-r--r--src/murmur/MurmurIce.cpp2
-rw-r--r--src/murmur/MurmurIce.h2
-rw-r--r--src/murmur/MurmurIceWrapper.cpp5
-rw-r--r--src/murmur/MurmurRPC.proto2
-rw-r--r--src/murmur/PBKDF2.cpp2
-rw-r--r--src/murmur/PBKDF2.h2
-rw-r--r--src/murmur/RPC.cpp2
-rw-r--r--src/murmur/Register.cpp2
-rw-r--r--src/murmur/Server.cpp2
-rw-r--r--src/murmur/Server.h2
-rw-r--r--src/murmur/ServerDB.cpp2
-rw-r--r--src/murmur/ServerDB.h2
-rw-r--r--src/murmur/ServerUser.cpp2
-rw-r--r--src/murmur/ServerUser.h2
-rw-r--r--src/murmur/Tray.cpp2
-rw-r--r--src/murmur/Tray.h2
-rw-r--r--src/murmur/UnixMurmur.cpp2
-rw-r--r--src/murmur/UnixMurmur.h2
-rw-r--r--src/murmur/Zeroconf.cpp2
-rw-r--r--src/murmur/Zeroconf.h2
-rw-r--r--src/murmur/main.cpp2
-rw-r--r--src/murmur/murmur_pch.h2
-rw-r--r--src/murmur_grpcwrapper_protoc_plugin/main.cpp2
-rw-r--r--src/tests/Benchmark.cpp5
-rw-r--r--src/tests/Collections.cpp5
-rw-r--r--src/tests/Emit.cpp5
-rw-r--r--src/tests/Hash.cpp5
-rw-r--r--src/tests/Lock.cpp5
-rw-r--r--src/tests/OverlayTest.cpp5
-rw-r--r--src/tests/ProtoBuf.cpp5
-rw-r--r--src/tests/ProtoBuf.proto5
-rw-r--r--src/tests/Resample.cpp5
-rw-r--r--src/tests/TestCrypt/TestCrypt.cpp2
-rw-r--r--src/tests/TestCryptographicHash/TestCryptographicHash.cpp2
-rw-r--r--src/tests/TestCryptographicRandom/TestCryptographicRandom.cpp2
-rw-r--r--src/tests/TestFFDHE/TestFFDHE.cpp2
-rw-r--r--src/tests/TestLink.cpp5
-rw-r--r--src/tests/TestPacketDataStream/TestPacketDataStream.cpp2
-rw-r--r--src/tests/TestPasswordGenerator/TestPasswordGenerator.cpp2
-rw-r--r--src/tests/TestSSLLocks/TestSSLLocks.cpp2
-rw-r--r--src/tests/TestSelfSignedCertificate/TestSelfSignedCertificate.cpp2
-rw-r--r--src/tests/TestServerAddress/TestServerAddress.cpp2
-rw-r--r--src/tests/TestServerResolver/TestServerResolver.cpp2
-rw-r--r--src/tests/TestStdAbs/TestStdAbs.cpp2
-rw-r--r--src/tests/TestTimer/TestTimer.cpp2
-rw-r--r--src/tests/TestUnresolvedServerAddress/TestUnresolvedServerAddress.cpp2
-rw-r--r--src/tests/TestXMLTools/TestXMLTools.cpp2
-rw-r--r--src/win.h2
360 files changed, 1353 insertions, 1293 deletions
diff --git a/src/ACL.cpp b/src/ACL.cpp
index 25264bcda..521f96fdd 100644
--- a/src/ACL.cpp
+++ b/src/ACL.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/ACL.h b/src/ACL.h
index 91bd49a64..a9fe48a02 100644
--- a/src/ACL.h
+++ b/src/ACL.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/Ban.cpp b/src/Ban.cpp
index 3681dceeb..d33e13c47 100644
--- a/src/Ban.cpp
+++ b/src/Ban.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/Ban.h b/src/Ban.h
index 4dd4e2afd..5178350a5 100644
--- a/src/Ban.h
+++ b/src/Ban.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/ByteSwap.h b/src/ByteSwap.h
index 24e00b2d2..a35e27b55 100644
--- a/src/ByteSwap.h
+++ b/src/ByteSwap.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/Channel.cpp b/src/Channel.cpp
index 934f1710f..914a876aa 100644
--- a/src/Channel.cpp
+++ b/src/Channel.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/Channel.h b/src/Channel.h
index 3f0921523..37a0e81da 100644
--- a/src/Channel.h
+++ b/src/Channel.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/ChannelListener.cpp b/src/ChannelListener.cpp
index b20f8a55f..382637aee 100644
--- a/src/ChannelListener.cpp
+++ b/src/ChannelListener.cpp
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/ChannelListener.h b/src/ChannelListener.h
index 6f8b7192f..3a03722ae 100644
--- a/src/ChannelListener.h
+++ b/src/ChannelListener.h
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/Connection.cpp b/src/Connection.cpp
index 8e0f2d52a..62283c782 100644
--- a/src/Connection.cpp
+++ b/src/Connection.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/Connection.h b/src/Connection.h
index 600551105..36aeb175f 100644
--- a/src/Connection.h
+++ b/src/Connection.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/CryptState.h b/src/CryptState.h
index 91d37515b..6333211f4 100644
--- a/src/CryptState.h
+++ b/src/CryptState.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/EnvUtils.cpp b/src/EnvUtils.cpp
index b9b720927..507df81c8 100644
--- a/src/EnvUtils.cpp
+++ b/src/EnvUtils.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/EnvUtils.h b/src/EnvUtils.h
index 7242b1c44..b5a5da102 100644
--- a/src/EnvUtils.h
+++ b/src/EnvUtils.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/FFDHE.cpp b/src/FFDHE.cpp
index 648b5086f..fe9dcb4f9 100644
--- a/src/FFDHE.cpp
+++ b/src/FFDHE.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/FFDHE.h b/src/FFDHE.h
index 22122f6ef..241b5df9b 100644
--- a/src/FFDHE.h
+++ b/src/FFDHE.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/FFDHETable.h b/src/FFDHETable.h
index 517942146..9f5533fb6 100644
--- a/src/FFDHETable.h
+++ b/src/FFDHETable.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/Group.cpp b/src/Group.cpp
index ea24d0906..40e0b7702 100644
--- a/src/Group.cpp
+++ b/src/Group.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/Group.h b/src/Group.h
index ca95f139e..93167e2a8 100644
--- a/src/Group.h
+++ b/src/Group.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/HTMLFilter.cpp b/src/HTMLFilter.cpp
index cb7724a74..ace7a24c3 100644
--- a/src/HTMLFilter.cpp
+++ b/src/HTMLFilter.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/HTMLFilter.h b/src/HTMLFilter.h
index b99237051..8465b593c 100644
--- a/src/HTMLFilter.h
+++ b/src/HTMLFilter.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/HostAddress.cpp b/src/HostAddress.cpp
index 72a635685..119225c0f 100644
--- a/src/HostAddress.cpp
+++ b/src/HostAddress.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/HostAddress.h b/src/HostAddress.h
index 841eaa1cb..19634df63 100644
--- a/src/HostAddress.h
+++ b/src/HostAddress.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/License.cpp b/src/License.cpp
index a91db263f..9cc969708 100644
--- a/src/License.cpp
+++ b/src/License.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2016-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/License.h b/src/License.h
index c4b57f343..a429d774b 100644
--- a/src/License.h
+++ b/src/License.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2016-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/LogEmitter.cpp b/src/LogEmitter.cpp
index 2fe2d7f7e..ba2a76bac 100644
--- a/src/LogEmitter.cpp
+++ b/src/LogEmitter.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/LogEmitter.h b/src/LogEmitter.h
index 499b5fc9e..60eb9bbbe 100644
--- a/src/LogEmitter.h
+++ b/src/LogEmitter.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/Message.h b/src/Message.h
index 1ba8cbfc3..dcb5a9206 100644
--- a/src/Message.h
+++ b/src/Message.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/Mumble.proto b/src/Mumble.proto
index 473a1d920..3075c6928 100644
--- a/src/Mumble.proto
+++ b/src/Mumble.proto
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/Net.cpp b/src/Net.cpp
index cf2082eb3..1e8864bbc 100644
--- a/src/Net.cpp
+++ b/src/Net.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/Net.h b/src/Net.h
index 9cf594dd5..09b0f8db2 100644
--- a/src/Net.h
+++ b/src/Net.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/OSInfo.cpp b/src/OSInfo.cpp
index e665ddb62..722e9066c 100644
--- a/src/OSInfo.cpp
+++ b/src/OSInfo.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2021 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/OSInfo.h b/src/OSInfo.h
index b25a1852b..bf5133637 100644
--- a/src/OSInfo.h
+++ b/src/OSInfo.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2021 The Mumble Developers. All rights reserved.
+// Copyright 2008-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/PacketDataStream.h b/src/PacketDataStream.h
index 4349dd68d..9daf9fd9e 100644
--- a/src/PacketDataStream.h
+++ b/src/PacketDataStream.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/PasswordGenerator.cpp b/src/PasswordGenerator.cpp
index b0412670f..74ed130da 100644
--- a/src/PasswordGenerator.cpp
+++ b/src/PasswordGenerator.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/PasswordGenerator.h b/src/PasswordGenerator.h
index 15a350075..ff03b94a4 100644
--- a/src/PasswordGenerator.h
+++ b/src/PasswordGenerator.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/PlatformCheck.cpp b/src/PlatformCheck.cpp
index 448cb44cd..a72b282ef 100644
--- a/src/PlatformCheck.cpp
+++ b/src/PlatformCheck.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/PlatformCheck.h b/src/PlatformCheck.h
index 100db94e5..319bd0fec 100644
--- a/src/PlatformCheck.h
+++ b/src/PlatformCheck.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/QtUtils.cpp b/src/QtUtils.cpp
index a248af742..f710238fd 100644
--- a/src/QtUtils.cpp
+++ b/src/QtUtils.cpp
@@ -1,4 +1,4 @@
-// Copyright 2021 The Mumble Developers. All rights reserved.
+// Copyright 2016-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/SSL.cpp b/src/SSL.cpp
index d44aa84a3..147206b84 100644
--- a/src/SSL.cpp
+++ b/src/SSL.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/SSL.h b/src/SSL.h
index 7f4b5703b..cedafca5e 100644
--- a/src/SSL.h
+++ b/src/SSL.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/SSLCipherInfo.cpp b/src/SSLCipherInfo.cpp
index d04ba864c..4d3c2b7a4 100644
--- a/src/SSLCipherInfo.cpp
+++ b/src/SSLCipherInfo.cpp
@@ -1,22 +1,22 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
-// Use of this source code is governed by a BSD-style license
-// that can be found in the LICENSE file at the root of the
-// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-
-#include "SSLCipherInfo.h"
-
-// Include SSLCipherInfoTable generated by 'cipherinfo.py'.
-#include "SSLCipherInfoTable.h"
-
-#include <cstring>
-
-const SSLCipherInfo *SSLCipherInfoLookupByOpenSSLName(const char *openSslCipherName) {
- int len = sizeof(cipher_info_lookup_table) / sizeof(*cipher_info_lookup_table);
- for (int i = 0; i < len; i++) {
- const SSLCipherInfo *ci = &cipher_info_lookup_table[i];
- if (!strcmp(ci->openssl_name, openSslCipherName)) {
- return ci;
- }
- }
- return nullptr;
-}
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
+#include "SSLCipherInfo.h"
+
+// Include SSLCipherInfoTable generated by 'cipherinfo.py'.
+#include "SSLCipherInfoTable.h"
+
+#include <cstring>
+
+const SSLCipherInfo *SSLCipherInfoLookupByOpenSSLName(const char *openSslCipherName) {
+ int len = sizeof(cipher_info_lookup_table) / sizeof(*cipher_info_lookup_table);
+ for (int i = 0; i < len; i++) {
+ const SSLCipherInfo *ci = &cipher_info_lookup_table[i];
+ if (!strcmp(ci->openssl_name, openSslCipherName)) {
+ return ci;
+ }
+ }
+ return nullptr;
+}
diff --git a/src/SSLCipherInfo.h b/src/SSLCipherInfo.h
index 53a637a9b..f0f93ea92 100644
--- a/src/SSLCipherInfo.h
+++ b/src/SSLCipherInfo.h
@@ -1,20 +1,20 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
-// Use of this source code is governed by a BSD-style license
-// that can be found in the LICENSE file at the root of the
-// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-
-#ifndef MUMBLE_SSLCIPHERINFO_H_
-#define MUMBLE_SSLCIPHERINFO_H_
-
-struct SSLCipherInfo {
- const char *openssl_name;
- const char *rfc_name;
- const char *encryption;
- const char *key_exchange_verbose;
- const bool forward_secret;
- const char *message_authentication;
-};
-
-const SSLCipherInfo *SSLCipherInfoLookupByOpenSSLName(const char *openSslCipherName);
-
-#endif
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
+#ifndef MUMBLE_SSLCIPHERINFO_H_
+#define MUMBLE_SSLCIPHERINFO_H_
+
+struct SSLCipherInfo {
+ const char *openssl_name;
+ const char *rfc_name;
+ const char *encryption;
+ const char *key_exchange_verbose;
+ const bool forward_secret;
+ const char *message_authentication;
+};
+
+const SSLCipherInfo *SSLCipherInfoLookupByOpenSSLName(const char *openSslCipherName);
+
+#endif
diff --git a/src/SSLCipherInfoTable.h b/src/SSLCipherInfoTable.h
index 461d6acdf..14e2c2db6 100644
--- a/src/SSLCipherInfoTable.h
+++ b/src/SSLCipherInfoTable.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2015-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/SSLLocks.cpp b/src/SSLLocks.cpp
index b2681c071..5d70f385b 100644
--- a/src/SSLLocks.cpp
+++ b/src/SSLLocks.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/SSLLocks.h b/src/SSLLocks.h
index 11eecba2f..3c2a014fc 100644
--- a/src/SSLLocks.h
+++ b/src/SSLLocks.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/SelfSignedCertificate.cpp b/src/SelfSignedCertificate.cpp
index a68058205..9a45db3c7 100644
--- a/src/SelfSignedCertificate.cpp
+++ b/src/SelfSignedCertificate.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/SelfSignedCertificate.h b/src/SelfSignedCertificate.h
index 6ce84723b..b85a8752b 100644
--- a/src/SelfSignedCertificate.h
+++ b/src/SelfSignedCertificate.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/ServerAddress.cpp b/src/ServerAddress.cpp
index 5eda76ec3..fb5f24e4d 100644
--- a/src/ServerAddress.cpp
+++ b/src/ServerAddress.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/ServerAddress.h b/src/ServerAddress.h
index 2d8430bba..14a58c286 100644
--- a/src/ServerAddress.h
+++ b/src/ServerAddress.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/ServerResolver.cpp b/src/ServerResolver.cpp
index 544677e54..137d10343 100644
--- a/src/ServerResolver.cpp
+++ b/src/ServerResolver.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/ServerResolver.h b/src/ServerResolver.h
index e67faed7e..2f9366a5c 100644
--- a/src/ServerResolver.h
+++ b/src/ServerResolver.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/ServerResolverRecord.cpp b/src/ServerResolverRecord.cpp
index be743597e..3e0341b32 100644
--- a/src/ServerResolverRecord.cpp
+++ b/src/ServerResolverRecord.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/ServerResolverRecord.h b/src/ServerResolverRecord.h
index baf5bf7be..689f3c765 100644
--- a/src/ServerResolverRecord.h
+++ b/src/ServerResolverRecord.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/SignalCurry.h b/src/SignalCurry.h
index 1b5d9d3e0..a02ade02c 100644
--- a/src/SignalCurry.h
+++ b/src/SignalCurry.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/SpeechFlags.h b/src/SpeechFlags.h
index c79def1ab..d42db9e0d 100644
--- a/src/SpeechFlags.h
+++ b/src/SpeechFlags.h
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/Timer.cpp b/src/Timer.cpp
index 1311edf7b..09b886695 100644
--- a/src/Timer.cpp
+++ b/src/Timer.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/Timer.h b/src/Timer.h
index b7ea31f24..ebfc9889b 100644
--- a/src/Timer.h
+++ b/src/Timer.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/UnresolvedServerAddress.cpp b/src/UnresolvedServerAddress.cpp
index 9b578980a..8e63aabe6 100644
--- a/src/UnresolvedServerAddress.cpp
+++ b/src/UnresolvedServerAddress.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/UnresolvedServerAddress.h b/src/UnresolvedServerAddress.h
index 595d12181..285389bfd 100644
--- a/src/UnresolvedServerAddress.h
+++ b/src/UnresolvedServerAddress.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/User.cpp b/src/User.cpp
index 52cfb9824..893ccc5ae 100644
--- a/src/User.cpp
+++ b/src/User.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/User.h b/src/User.h
index 469cc8d45..7c8f018ec 100644
--- a/src/User.h
+++ b/src/User.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/Utils.h b/src/Utils.h
index 233214764..eb572ff5a 100644
--- a/src/Utils.h
+++ b/src/Utils.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2019-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/Version.cpp b/src/Version.cpp
index 0de54c702..348ec9988 100644
--- a/src/Version.cpp
+++ b/src/Version.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2010-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/Version.h b/src/Version.h
index bd89a881a..79b197ee0 100644
--- a/src/Version.h
+++ b/src/Version.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/crypto/CryptState.h b/src/crypto/CryptState.h
index e050ea63b..9da84a582 100644
--- a/src/crypto/CryptState.h
+++ b/src/crypto/CryptState.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/crypto/CryptStateOCB2.cpp b/src/crypto/CryptStateOCB2.cpp
index 1e6a99109..7cd1be047 100644
--- a/src/crypto/CryptStateOCB2.cpp
+++ b/src/crypto/CryptStateOCB2.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/crypto/CryptStateOCB2.h b/src/crypto/CryptStateOCB2.h
index 8c34fd49a..53d4b4b6a 100644
--- a/src/crypto/CryptStateOCB2.h
+++ b/src/crypto/CryptStateOCB2.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/crypto/CryptographicHash.cpp b/src/crypto/CryptographicHash.cpp
index ee8b154ee..1c3fcee71 100644
--- a/src/crypto/CryptographicHash.cpp
+++ b/src/crypto/CryptographicHash.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/crypto/CryptographicHash.h b/src/crypto/CryptographicHash.h
index 7be32088c..6dc28f7bd 100644
--- a/src/crypto/CryptographicHash.h
+++ b/src/crypto/CryptographicHash.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/crypto/CryptographicRandom.cpp b/src/crypto/CryptographicRandom.cpp
index 74c99f321..0c2405d43 100644
--- a/src/crypto/CryptographicRandom.cpp
+++ b/src/crypto/CryptographicRandom.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/crypto/CryptographicRandom.h b/src/crypto/CryptographicRandom.h
index 4ff9c3bd9..37a89f2d9 100644
--- a/src/crypto/CryptographicRandom.h
+++ b/src/crypto/CryptographicRandom.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/licenses.h b/src/licenses.h
index 1087b89c8..4a8da93a3 100644
--- a/src/licenses.h
+++ b/src/licenses.h
@@ -1,3 +1,8 @@
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
/*
* This file was auto-generated by scripts/mklic.pl
* DO NOT EDIT IT MANUALLY
diff --git a/src/mumble/ACLEditor.cpp b/src/mumble/ACLEditor.cpp
index c2f729c9d..b9f932687 100644
--- a/src/mumble/ACLEditor.cpp
+++ b/src/mumble/ACLEditor.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ACLEditor.h b/src/mumble/ACLEditor.h
index b28b2643b..444cc12e6 100644
--- a/src/mumble/ACLEditor.h
+++ b/src/mumble/ACLEditor.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ALSAAudio.cpp b/src/mumble/ALSAAudio.cpp
index 886bd3d4d..ec3828509 100644
--- a/src/mumble/ALSAAudio.cpp
+++ b/src/mumble/ALSAAudio.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ALSAAudio.h b/src/mumble/ALSAAudio.h
index af0bd0725..89ae364de 100644
--- a/src/mumble/ALSAAudio.h
+++ b/src/mumble/ALSAAudio.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ASIOInput.cpp b/src/mumble/ASIOInput.cpp
index 456ef810d..4f3150506 100644
--- a/src/mumble/ASIOInput.cpp
+++ b/src/mumble/ASIOInput.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ASIOInput.h b/src/mumble/ASIOInput.h
index bfda5714c..8478b2c65 100644
--- a/src/mumble/ASIOInput.h
+++ b/src/mumble/ASIOInput.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/About.cpp b/src/mumble/About.cpp
index ce4ac2bf5..abf406a47 100644
--- a/src/mumble/About.cpp
+++ b/src/mumble/About.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/About.h b/src/mumble/About.h
index cde7bb633..8a5664044 100644
--- a/src/mumble/About.h
+++ b/src/mumble/About.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/AppNap.h b/src/mumble/AppNap.h
index 32efc0a06..3e45a65e7 100644
--- a/src/mumble/AppNap.h
+++ b/src/mumble/AppNap.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2010-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/AppNap.mm b/src/mumble/AppNap.mm
index e3648f9f1..d034a1b95 100644
--- a/src/mumble/AppNap.mm
+++ b/src/mumble/AppNap.mm
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ApplicationPalette.h b/src/mumble/ApplicationPalette.h
index 88eb82fd8..96c4bbeaf 100644
--- a/src/mumble/ApplicationPalette.h
+++ b/src/mumble/ApplicationPalette.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2014-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ApplicationPaletteTemplate.h b/src/mumble/ApplicationPaletteTemplate.h
index 5c841aefd..403fa4b22 100644
--- a/src/mumble/ApplicationPaletteTemplate.h
+++ b/src/mumble/ApplicationPaletteTemplate.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2014-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Audio.cpp b/src/mumble/Audio.cpp
index 051055a8d..2710e267d 100644
--- a/src/mumble/Audio.cpp
+++ b/src/mumble/Audio.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Audio.h b/src/mumble/Audio.h
index 9503be75b..19c804fc7 100644
--- a/src/mumble/Audio.h
+++ b/src/mumble/Audio.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/AudioConfigDialog.cpp b/src/mumble/AudioConfigDialog.cpp
index 418929782..224b48616 100644
--- a/src/mumble/AudioConfigDialog.cpp
+++ b/src/mumble/AudioConfigDialog.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/AudioConfigDialog.h b/src/mumble/AudioConfigDialog.h
index 03dda6673..d1749609f 100644
--- a/src/mumble/AudioConfigDialog.h
+++ b/src/mumble/AudioConfigDialog.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/AudioInput.cpp b/src/mumble/AudioInput.cpp
index 392474143..4e1790afe 100644
--- a/src/mumble/AudioInput.cpp
+++ b/src/mumble/AudioInput.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/AudioInput.h b/src/mumble/AudioInput.h
index 59568e0df..a9eeee903 100644
--- a/src/mumble/AudioInput.h
+++ b/src/mumble/AudioInput.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/AudioOutput.cpp b/src/mumble/AudioOutput.cpp
index bdd34f7b8..cb0ff6f62 100644
--- a/src/mumble/AudioOutput.cpp
+++ b/src/mumble/AudioOutput.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/AudioOutput.h b/src/mumble/AudioOutput.h
index 6567cc8e8..73838e606 100644
--- a/src/mumble/AudioOutput.h
+++ b/src/mumble/AudioOutput.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/AudioOutputSample.cpp b/src/mumble/AudioOutputSample.cpp
index 6dbd7696f..4c3659de6 100644
--- a/src/mumble/AudioOutputSample.cpp
+++ b/src/mumble/AudioOutputSample.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2011-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/AudioOutputSample.h b/src/mumble/AudioOutputSample.h
index 135127ac8..607dd730a 100644
--- a/src/mumble/AudioOutputSample.h
+++ b/src/mumble/AudioOutputSample.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2008-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/AudioOutputSpeech.cpp b/src/mumble/AudioOutputSpeech.cpp
index 56b2c434b..bc48ed858 100644
--- a/src/mumble/AudioOutputSpeech.cpp
+++ b/src/mumble/AudioOutputSpeech.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2011-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/AudioOutputSpeech.h b/src/mumble/AudioOutputSpeech.h
index bf3b4489f..09ffb2480 100644
--- a/src/mumble/AudioOutputSpeech.h
+++ b/src/mumble/AudioOutputSpeech.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/AudioOutputUser.cpp b/src/mumble/AudioOutputUser.cpp
index 071ce7169..7b3081fb4 100644
--- a/src/mumble/AudioOutputUser.cpp
+++ b/src/mumble/AudioOutputUser.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/AudioOutputUser.h b/src/mumble/AudioOutputUser.h
index e93472330..0b574b605 100644
--- a/src/mumble/AudioOutputUser.h
+++ b/src/mumble/AudioOutputUser.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/AudioStats.cpp b/src/mumble/AudioStats.cpp
index c2642455d..798759ad5 100644
--- a/src/mumble/AudioStats.cpp
+++ b/src/mumble/AudioStats.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/AudioStats.h b/src/mumble/AudioStats.h
index 5df5ae438..25a52a86f 100644
--- a/src/mumble/AudioStats.h
+++ b/src/mumble/AudioStats.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/AudioWizard.cpp b/src/mumble/AudioWizard.cpp
index bf580ede6..ebbf55d48 100644
--- a/src/mumble/AudioWizard.cpp
+++ b/src/mumble/AudioWizard.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/AudioWizard.h b/src/mumble/AudioWizard.h
index f5b411819..3740628b8 100644
--- a/src/mumble/AudioWizard.h
+++ b/src/mumble/AudioWizard.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/BanEditor.cpp b/src/mumble/BanEditor.cpp
index a2fc046a2..98bbe1e74 100644
--- a/src/mumble/BanEditor.cpp
+++ b/src/mumble/BanEditor.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/BanEditor.h b/src/mumble/BanEditor.h
index 5dee4422c..7f92b36f8 100644
--- a/src/mumble/BanEditor.h
+++ b/src/mumble/BanEditor.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/CELTCodec.cpp b/src/mumble/CELTCodec.cpp
index 2472cfdc2..38cb1f4c3 100644
--- a/src/mumble/CELTCodec.cpp
+++ b/src/mumble/CELTCodec.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/CELTCodec.h b/src/mumble/CELTCodec.h
index c25e6c3fd..426d86b52 100644
--- a/src/mumble/CELTCodec.h
+++ b/src/mumble/CELTCodec.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/CELTCodec_sbcelt.cpp b/src/mumble/CELTCodec_sbcelt.cpp
index 1226d2404..2fc89c7e8 100644
--- a/src/mumble/CELTCodec_sbcelt.cpp
+++ b/src/mumble/CELTCodec_sbcelt.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2012-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Cert.cpp b/src/mumble/Cert.cpp
index e2b939b99..76c96b0b9 100644
--- a/src/mumble/Cert.cpp
+++ b/src/mumble/Cert.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Cert.h b/src/mumble/Cert.h
index 6dc39d47d..03eade166 100644
--- a/src/mumble/Cert.h
+++ b/src/mumble/Cert.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ClientUser.cpp b/src/mumble/ClientUser.cpp
index 6655cf76e..724603335 100644
--- a/src/mumble/ClientUser.cpp
+++ b/src/mumble/ClientUser.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ClientUser.h b/src/mumble/ClientUser.h
index ec080c63b..4e4c9fabc 100644
--- a/src/mumble/ClientUser.h
+++ b/src/mumble/ClientUser.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ConfigDialog.cpp b/src/mumble/ConfigDialog.cpp
index 134dfb7a9..5e7fa5ade 100644
--- a/src/mumble/ConfigDialog.cpp
+++ b/src/mumble/ConfigDialog.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ConfigDialog.h b/src/mumble/ConfigDialog.h
index 528c3c7dd..0bf3596df 100644
--- a/src/mumble/ConfigDialog.h
+++ b/src/mumble/ConfigDialog.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ConfigWidget.cpp b/src/mumble/ConfigWidget.cpp
index 015a25685..752663c5c 100644
--- a/src/mumble/ConfigWidget.cpp
+++ b/src/mumble/ConfigWidget.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ConfigWidget.h b/src/mumble/ConfigWidget.h
index 12a5a4029..c3be4379c 100644
--- a/src/mumble/ConfigWidget.h
+++ b/src/mumble/ConfigWidget.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ConnectDialog.cpp b/src/mumble/ConnectDialog.cpp
index d5d2fea8d..b20533946 100644
--- a/src/mumble/ConnectDialog.cpp
+++ b/src/mumble/ConnectDialog.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ConnectDialog.h b/src/mumble/ConnectDialog.h
index 414cc9b88..ae6bce4df 100644
--- a/src/mumble/ConnectDialog.h
+++ b/src/mumble/ConnectDialog.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/CoreAudio.h b/src/mumble/CoreAudio.h
index 5caaab57a..774228f94 100644
--- a/src/mumble/CoreAudio.h
+++ b/src/mumble/CoreAudio.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/CoreAudio.mm b/src/mumble/CoreAudio.mm
index 135ace3a7..a438cb108 100644
--- a/src/mumble/CoreAudio.mm
+++ b/src/mumble/CoreAudio.mm
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/CrashReporter.cpp b/src/mumble/CrashReporter.cpp
index c83c5198f..3b62b8891 100644
--- a/src/mumble/CrashReporter.cpp
+++ b/src/mumble/CrashReporter.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/CrashReporter.h b/src/mumble/CrashReporter.h
index db8010a9a..69d497185 100644
--- a/src/mumble/CrashReporter.h
+++ b/src/mumble/CrashReporter.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/CustomElements.cpp b/src/mumble/CustomElements.cpp
index c36342f41..adea56ae4 100644
--- a/src/mumble/CustomElements.cpp
+++ b/src/mumble/CustomElements.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/CustomElements.h b/src/mumble/CustomElements.h
index de225c185..83c373422 100644
--- a/src/mumble/CustomElements.h
+++ b/src/mumble/CustomElements.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/DBus.cpp b/src/mumble/DBus.cpp
index d984663d3..5220de498 100644
--- a/src/mumble/DBus.cpp
+++ b/src/mumble/DBus.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/DBus.h b/src/mumble/DBus.h
index 4ac47a22b..ff0ce58b7 100644
--- a/src/mumble/DBus.h
+++ b/src/mumble/DBus.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Database.cpp b/src/mumble/Database.cpp
index 10f40d407..89d7eadaf 100644
--- a/src/mumble/Database.cpp
+++ b/src/mumble/Database.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Database.h b/src/mumble/Database.h
index 4bed1914d..e19d36bdd 100644
--- a/src/mumble/Database.h
+++ b/src/mumble/Database.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/DeveloperConsole.cpp b/src/mumble/DeveloperConsole.cpp
index 56f5c776d..4a1ee9ed8 100644
--- a/src/mumble/DeveloperConsole.cpp
+++ b/src/mumble/DeveloperConsole.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2016-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/DeveloperConsole.h b/src/mumble/DeveloperConsole.h
index 99914c4bb..6ece41840 100644
--- a/src/mumble/DeveloperConsole.h
+++ b/src/mumble/DeveloperConsole.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2016-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/G15LCDEngine_helper.cpp b/src/mumble/G15LCDEngine_helper.cpp
index e8ea5904a..b2cb862c4 100644
--- a/src/mumble/G15LCDEngine_helper.cpp
+++ b/src/mumble/G15LCDEngine_helper.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2008-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/G15LCDEngine_helper.h b/src/mumble/G15LCDEngine_helper.h
index e4c19802f..79b415706 100644
--- a/src/mumble/G15LCDEngine_helper.h
+++ b/src/mumble/G15LCDEngine_helper.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/G15LCDEngine_lglcd.cpp b/src/mumble/G15LCDEngine_lglcd.cpp
index 05b9e931e..f72f46ef5 100644
--- a/src/mumble/G15LCDEngine_lglcd.cpp
+++ b/src/mumble/G15LCDEngine_lglcd.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2008-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/G15LCDEngine_lglcd.h b/src/mumble/G15LCDEngine_lglcd.h
index a82b228c0..cf43e5fb0 100644
--- a/src/mumble/G15LCDEngine_lglcd.h
+++ b/src/mumble/G15LCDEngine_lglcd.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/G15LCDEngine_unix.cpp b/src/mumble/G15LCDEngine_unix.cpp
index 8765287e3..5520eeb71 100644
--- a/src/mumble/G15LCDEngine_unix.cpp
+++ b/src/mumble/G15LCDEngine_unix.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/G15LCDEngine_unix.h b/src/mumble/G15LCDEngine_unix.h
index f5409c4dc..038b2d4b4 100644
--- a/src/mumble/G15LCDEngine_unix.h
+++ b/src/mumble/G15LCDEngine_unix.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/GKey.cpp b/src/mumble/GKey.cpp
index 71206360c..cafba9784 100644
--- a/src/mumble/GKey.cpp
+++ b/src/mumble/GKey.cpp
@@ -1,152 +1,152 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
-// Use of this source code is governed by a BSD-style license
-// that can be found in the LICENSE file at the root of the
-// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-
-/* SPECIFICATION
- * The code interfacing with the Logitech G-Keys DLL was implemented using the
- * following spec:
- *
- * The G-keys DLL lives in
- * "C:\Program Files\Logitech Gaming Software\SDK\G-key\x64\LogitechGkey.dll" for x64 and
- * "C:\Program Files\Logitech Gaming Software\SDK\G-key\x86\LogitechGkey.dll" for x86.
- *
- * Its location can also be read from the registry, using the following keys:
- *
- * x86:
- * "HKEY_CLASSES_ROOT\CLSID\{7bded654-f278-4977-a20f-6e72a0d07859}\ServerBinary"
- *
- * x64:
- * "HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{7bded654-f278-4977-a20f-6e72a0d07859}\ServerBinary"
- *
- * The registry keys are needed if a user installed the Logitech Gaming
- * Software in a non-standard location.
- *
- * The DLL has an init function, it's called "LogiGkeyInit". It takes a
- * pointer, but the parameter must always be nullptr. The function returns a BOOL
- * as a status code.
- *
- * The DLL also has a shutdown function, called "LogiGkeyShutdown". It takes
- * no parameters and does not return anything.
- *
- * You can poll for button states with the DLL using the functions
- * "LogiGkeyIsMouseButtonPressed" and "LogiGkeyIsKeyboardGkeyPressed".
- *
- * The function "LogiGkeyIsMouseButtonPressed" takes a single int parameter, a
- * button number. Mouse button numbers run from 6 up to and including 20. The
- * function returns a BOOL that is true if the button is pressed, and false if
- * not.
- *
- * The function "LogiGkeyIsKeyboardGkeyPressed" takes two int parameters, a
- * button number and a mode number. Keyboard button numbers run from 1 up to
- * and including 29. The mode number can 1, 2 or 3. The mode checks the button
- * state in a specific mode. Typically, one queries all buttons for all modes,
- * so one ends up with 29*3 calls to the function. The function returns a BOOL
- * that is true if the button in the given mode is pressed, and false if not.
- *
- * There are also two functions, "LogiGkeyGetMouseButtonString" and
- * "LogiGkeyGetKeyboardGkeyString". They take the same parameters as the
- * polling functions above, but do not check whether the button is pressed or
- * not. Instead, they return the name of the button being queried as a pointer
- * to a NUL-terminated array of wchar_t's. Presumably, the pointer will be
- * nullptr if the name cannot be retrieved or translated.
- */
-
-/* USAGE
- * In order to use the gkeys on a logitech keyboard, any user must have the
- * Logitech Gaming Software version 8.55+ installed on their computer. Then
- * (re)start mumble. When mumble initializes the library, the LGS (Logitech
- * Gaming Software) will create a profile called "mumble", featuring the mumble
- * icon. In LGS, right click this icon, and select either "Set as Default" or
- * "Set as Persistent". (See "What are persistent and default profiles?" in the
- * LGS help by clicking on the "?" icon on the LGS window, or at
- * http://www.logitech.com/assets/51813/3/lgs-guide.pdf). If mumble is not set
- * as the default or persistent profile, then your keys will not be active
- * unless mumble is the active window.
- */
-
-#include "GKey.h"
-
-#ifdef Q_CC_GNU
-# define RESOLVE(var) \
- { \
- var = reinterpret_cast< __typeof__(var) >(qlLogiGkey.resolve(#var)); \
- bValid = bValid && var; \
- }
-#else
-# define RESOLVE(var) \
- { \
- *reinterpret_cast< void ** >(&var) = static_cast< void * >(qlLogiGkey.resolve(#var)); \
- bValid = bValid && var; \
- }
-#endif
-
-const QUuid GKeyLibrary::quMouse = QUuid(QString::fromLatin1(GKEY_MOUSE_GUID));
-const QUuid GKeyLibrary::quKeyboard = QUuid(QString::fromLatin1(GKEY_KEYBOARD_GUID));
-
-GKeyLibrary::GKeyLibrary() {
- QStringList alternatives;
-
- HKEY key = nullptr;
- DWORD type = 0;
- WCHAR wcLocation[510];
- DWORD len = 510;
- if (RegOpenKeyEx(GKEY_LOGITECH_DLL_REG_HKEY, GKEY_LOGITECH_DLL_REG_PATH, 0, KEY_READ, &key) == ERROR_SUCCESS) {
- LONG err = RegQueryValueEx(key, L"", nullptr, &type, reinterpret_cast< LPBYTE >(wcLocation), &len);
- if (err == ERROR_SUCCESS && type == REG_SZ) {
- QString qsLocation = QString::fromUtf16(reinterpret_cast< ushort * >(wcLocation), len / 2);
- qWarning("GKeyLibrary: Found ServerBinary with libLocation = \"%s\", len = %lu", qPrintable(qsLocation),
- static_cast< unsigned long >(len));
- alternatives << qsLocation;
- } else {
- qWarning("GKeyLibrary: Error looking up ServerBinary (Error: 0x%lx, Type: 0x%lx, len: %lu)",
- static_cast< unsigned long >(err), static_cast< unsigned long >(type),
- static_cast< unsigned long >(len));
- }
- }
-
- alternatives << QString::fromLatin1(GKEY_LOGITECH_DLL_DEFAULT_LOCATION);
- foreach (const QString &lib, alternatives) {
- qlLogiGkey.setFileName(lib);
-
- if (qlLogiGkey.load()) {
- bValid = true;
- break;
- }
- }
-
- RESOLVE(LogiGkeyInit);
- RESOLVE(LogiGkeyShutdown);
- RESOLVE(LogiGkeyIsMouseButtonPressed);
- RESOLVE(LogiGkeyIsKeyboardGkeyPressed);
- RESOLVE(LogiGkeyGetMouseButtonString);
- RESOLVE(LogiGkeyGetKeyboardGkeyString);
-
- if (bValid)
- bValid = LogiGkeyInit(nullptr);
-}
-
-GKeyLibrary::~GKeyLibrary() {
- if (LogiGkeyShutdown)
- LogiGkeyShutdown();
-}
-
-bool GKeyLibrary::isValid() const {
- return bValid;
-}
-
-bool GKeyLibrary::isMouseButtonPressed(int button) {
- return LogiGkeyIsMouseButtonPressed(button);
-}
-
-bool GKeyLibrary::isKeyboardGkeyPressed(int key, int mode) {
- return LogiGkeyIsKeyboardGkeyPressed(key, mode);
-}
-
-QString GKeyLibrary::getMouseButtonString(int button) {
- return QString::fromWCharArray(LogiGkeyGetMouseButtonString(button));
-}
-
-QString GKeyLibrary::getKeyboardGkeyString(int key, int mode) {
- return QString::fromWCharArray(LogiGkeyGetKeyboardGkeyString(key, mode));
-}
+// Copyright 2015-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
+/* SPECIFICATION
+ * The code interfacing with the Logitech G-Keys DLL was implemented using the
+ * following spec:
+ *
+ * The G-keys DLL lives in
+ * "C:\Program Files\Logitech Gaming Software\SDK\G-key\x64\LogitechGkey.dll" for x64 and
+ * "C:\Program Files\Logitech Gaming Software\SDK\G-key\x86\LogitechGkey.dll" for x86.
+ *
+ * Its location can also be read from the registry, using the following keys:
+ *
+ * x86:
+ * "HKEY_CLASSES_ROOT\CLSID\{7bded654-f278-4977-a20f-6e72a0d07859}\ServerBinary"
+ *
+ * x64:
+ * "HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{7bded654-f278-4977-a20f-6e72a0d07859}\ServerBinary"
+ *
+ * The registry keys are needed if a user installed the Logitech Gaming
+ * Software in a non-standard location.
+ *
+ * The DLL has an init function, it's called "LogiGkeyInit". It takes a
+ * pointer, but the parameter must always be nullptr. The function returns a BOOL
+ * as a status code.
+ *
+ * The DLL also has a shutdown function, called "LogiGkeyShutdown". It takes
+ * no parameters and does not return anything.
+ *
+ * You can poll for button states with the DLL using the functions
+ * "LogiGkeyIsMouseButtonPressed" and "LogiGkeyIsKeyboardGkeyPressed".
+ *
+ * The function "LogiGkeyIsMouseButtonPressed" takes a single int parameter, a
+ * button number. Mouse button numbers run from 6 up to and including 20. The
+ * function returns a BOOL that is true if the button is pressed, and false if
+ * not.
+ *
+ * The function "LogiGkeyIsKeyboardGkeyPressed" takes two int parameters, a
+ * button number and a mode number. Keyboard button numbers run from 1 up to
+ * and including 29. The mode number can 1, 2 or 3. The mode checks the button
+ * state in a specific mode. Typically, one queries all buttons for all modes,
+ * so one ends up with 29*3 calls to the function. The function returns a BOOL
+ * that is true if the button in the given mode is pressed, and false if not.
+ *
+ * There are also two functions, "LogiGkeyGetMouseButtonString" and
+ * "LogiGkeyGetKeyboardGkeyString". They take the same parameters as the
+ * polling functions above, but do not check whether the button is pressed or
+ * not. Instead, they return the name of the button being queried as a pointer
+ * to a NUL-terminated array of wchar_t's. Presumably, the pointer will be
+ * nullptr if the name cannot be retrieved or translated.
+ */
+
+/* USAGE
+ * In order to use the gkeys on a logitech keyboard, any user must have the
+ * Logitech Gaming Software version 8.55+ installed on their computer. Then
+ * (re)start mumble. When mumble initializes the library, the LGS (Logitech
+ * Gaming Software) will create a profile called "mumble", featuring the mumble
+ * icon. In LGS, right click this icon, and select either "Set as Default" or
+ * "Set as Persistent". (See "What are persistent and default profiles?" in the
+ * LGS help by clicking on the "?" icon on the LGS window, or at
+ * http://www.logitech.com/assets/51813/3/lgs-guide.pdf). If mumble is not set
+ * as the default or persistent profile, then your keys will not be active
+ * unless mumble is the active window.
+ */
+
+#include "GKey.h"
+
+#ifdef Q_CC_GNU
+# define RESOLVE(var) \
+ { \
+ var = reinterpret_cast< __typeof__(var) >(qlLogiGkey.resolve(#var)); \
+ bValid = bValid && var; \
+ }
+#else
+# define RESOLVE(var) \
+ { \
+ *reinterpret_cast< void ** >(&var) = static_cast< void * >(qlLogiGkey.resolve(#var)); \
+ bValid = bValid && var; \
+ }
+#endif
+
+const QUuid GKeyLibrary::quMouse = QUuid(QString::fromLatin1(GKEY_MOUSE_GUID));
+const QUuid GKeyLibrary::quKeyboard = QUuid(QString::fromLatin1(GKEY_KEYBOARD_GUID));
+
+GKeyLibrary::GKeyLibrary() {
+ QStringList alternatives;
+
+ HKEY key = nullptr;
+ DWORD type = 0;
+ WCHAR wcLocation[510];
+ DWORD len = 510;
+ if (RegOpenKeyEx(GKEY_LOGITECH_DLL_REG_HKEY, GKEY_LOGITECH_DLL_REG_PATH, 0, KEY_READ, &key) == ERROR_SUCCESS) {
+ LONG err = RegQueryValueEx(key, L"", nullptr, &type, reinterpret_cast< LPBYTE >(wcLocation), &len);
+ if (err == ERROR_SUCCESS && type == REG_SZ) {
+ QString qsLocation = QString::fromUtf16(reinterpret_cast< ushort * >(wcLocation), len / 2);
+ qWarning("GKeyLibrary: Found ServerBinary with libLocation = \"%s\", len = %lu", qPrintable(qsLocation),
+ static_cast< unsigned long >(len));
+ alternatives << qsLocation;
+ } else {
+ qWarning("GKeyLibrary: Error looking up ServerBinary (Error: 0x%lx, Type: 0x%lx, len: %lu)",
+ static_cast< unsigned long >(err), static_cast< unsigned long >(type),
+ static_cast< unsigned long >(len));
+ }
+ }
+
+ alternatives << QString::fromLatin1(GKEY_LOGITECH_DLL_DEFAULT_LOCATION);
+ foreach (const QString &lib, alternatives) {
+ qlLogiGkey.setFileName(lib);
+
+ if (qlLogiGkey.load()) {
+ bValid = true;
+ break;
+ }
+ }
+
+ RESOLVE(LogiGkeyInit);
+ RESOLVE(LogiGkeyShutdown);
+ RESOLVE(LogiGkeyIsMouseButtonPressed);
+ RESOLVE(LogiGkeyIsKeyboardGkeyPressed);
+ RESOLVE(LogiGkeyGetMouseButtonString);
+ RESOLVE(LogiGkeyGetKeyboardGkeyString);
+
+ if (bValid)
+ bValid = LogiGkeyInit(nullptr);
+}
+
+GKeyLibrary::~GKeyLibrary() {
+ if (LogiGkeyShutdown)
+ LogiGkeyShutdown();
+}
+
+bool GKeyLibrary::isValid() const {
+ return bValid;
+}
+
+bool GKeyLibrary::isMouseButtonPressed(int button) {
+ return LogiGkeyIsMouseButtonPressed(button);
+}
+
+bool GKeyLibrary::isKeyboardGkeyPressed(int key, int mode) {
+ return LogiGkeyIsKeyboardGkeyPressed(key, mode);
+}
+
+QString GKeyLibrary::getMouseButtonString(int button) {
+ return QString::fromWCharArray(LogiGkeyGetMouseButtonString(button));
+}
+
+QString GKeyLibrary::getKeyboardGkeyString(int key, int mode) {
+ return QString::fromWCharArray(LogiGkeyGetKeyboardGkeyString(key, mode));
+}
diff --git a/src/mumble/GKey.h b/src/mumble/GKey.h
index e1df65833..cbc857b88 100644
--- a/src/mumble/GKey.h
+++ b/src/mumble/GKey.h
@@ -1,64 +1,64 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
-// Use of this source code is governed by a BSD-style license
-// that can be found in the LICENSE file at the root of the
-// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-
-#ifndef MUMBLE_MUMBLE_GKEY_H
-#define MUMBLE_MUMBLE_GKEY_H
-
-#include "win.h"
-
-#include <QtCore/QLibrary>
-#include <QtCore/QString>
-#include <QtCore/QUuid>
-
-#define GKEY_LOGITECH_DLL_REG_HKEY HKEY_CLASSES_ROOT
-#ifdef _M_X64
-# define GKEY_LOGITECH_DLL_REG_PATH L"Wow6432Node\\CLSID\\{7bded654-f278-4977-a20f-6e72a0d07859}\\ServerBinary"
-# define GKEY_LOGITECH_DLL_DEFAULT_LOCATION \
- "C:/Program Files/Logitech Gaming Software/SDK/G-key/x64/LogitechGkey.dll"
-#else
-# define GKEY_LOGITECH_DLL_REG_PATH L"CLSID\\{7bded654-f278-4977-a20f-6e72a0d07859}\\ServerBinary"
-# define GKEY_LOGITECH_DLL_DEFAULT_LOCATION \
- "C:/Program Files/Logitech Gaming Software/SDK/G-key/x86/LogitechGkey.dll"
-#endif
-
-#define GKEY_MIN_MOUSE_BUTTON 6
-#define GKEY_MAX_MOUSE_BUTTON 20
-#define GKEY_MIN_KEYBOARD_BUTTON 1
-#define GKEY_MAX_KEYBOARD_BUTTON 29
-#define GKEY_MIN_KEYBOARD_MODE 1
-#define GKEY_MAX_KEYBOARD_MODE 3
-
-#define GKEY_BUTTON_MOUSE 1
-#define GKEY_BUTTON_KEYBOARD 2
-
-#define GKEY_MOUSE_GUID "c41e60af-9022-46cf-bc39-37981082d716"
-#define GKEY_KEYBOARD_GUID "153e64e6-98c8-4e03-80ef-5ffd33d25b8a"
-
-class GKeyLibrary {
-public:
- GKeyLibrary();
- virtual ~GKeyLibrary();
- bool isValid() const;
- static const QUuid quMouse;
- static const QUuid quKeyboard;
-
- bool isMouseButtonPressed(int button);
- bool isKeyboardGkeyPressed(int key, int mode);
- QString getMouseButtonString(int button);
- QString getKeyboardGkeyString(int key, int mode);
-
-protected:
- QLibrary qlLogiGkey;
- bool bValid;
-
- BOOL (*LogiGkeyInit)(void *);
- void (*LogiGkeyShutdown)();
- BOOL (*LogiGkeyIsMouseButtonPressed)(int button);
- BOOL (*LogiGkeyIsKeyboardGkeyPressed)(int key, int mode);
- wchar_t *(*LogiGkeyGetMouseButtonString)(int button);
- wchar_t *(*LogiGkeyGetKeyboardGkeyString)(int key, int mode);
-};
-
-#endif // MUMBLE_MUMBLE_GKEY_H
+// Copyright 2015-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
+#ifndef MUMBLE_MUMBLE_GKEY_H
+#define MUMBLE_MUMBLE_GKEY_H
+
+#include "win.h"
+
+#include <QtCore/QLibrary>
+#include <QtCore/QString>
+#include <QtCore/QUuid>
+
+#define GKEY_LOGITECH_DLL_REG_HKEY HKEY_CLASSES_ROOT
+#ifdef _M_X64
+# define GKEY_LOGITECH_DLL_REG_PATH L"Wow6432Node\\CLSID\\{7bded654-f278-4977-a20f-6e72a0d07859}\\ServerBinary"
+# define GKEY_LOGITECH_DLL_DEFAULT_LOCATION \
+ "C:/Program Files/Logitech Gaming Software/SDK/G-key/x64/LogitechGkey.dll"
+#else
+# define GKEY_LOGITECH_DLL_REG_PATH L"CLSID\\{7bded654-f278-4977-a20f-6e72a0d07859}\\ServerBinary"
+# define GKEY_LOGITECH_DLL_DEFAULT_LOCATION \
+ "C:/Program Files/Logitech Gaming Software/SDK/G-key/x86/LogitechGkey.dll"
+#endif
+
+#define GKEY_MIN_MOUSE_BUTTON 6
+#define GKEY_MAX_MOUSE_BUTTON 20
+#define GKEY_MIN_KEYBOARD_BUTTON 1
+#define GKEY_MAX_KEYBOARD_BUTTON 29
+#define GKEY_MIN_KEYBOARD_MODE 1
+#define GKEY_MAX_KEYBOARD_MODE 3
+
+#define GKEY_BUTTON_MOUSE 1
+#define GKEY_BUTTON_KEYBOARD 2
+
+#define GKEY_MOUSE_GUID "c41e60af-9022-46cf-bc39-37981082d716"
+#define GKEY_KEYBOARD_GUID "153e64e6-98c8-4e03-80ef-5ffd33d25b8a"
+
+class GKeyLibrary {
+public:
+ GKeyLibrary();
+ virtual ~GKeyLibrary();
+ bool isValid() const;
+ static const QUuid quMouse;
+ static const QUuid quKeyboard;
+
+ bool isMouseButtonPressed(int button);
+ bool isKeyboardGkeyPressed(int key, int mode);
+ QString getMouseButtonString(int button);
+ QString getKeyboardGkeyString(int key, int mode);
+
+protected:
+ QLibrary qlLogiGkey;
+ bool bValid;
+
+ BOOL (*LogiGkeyInit)(void *);
+ void (*LogiGkeyShutdown)();
+ BOOL (*LogiGkeyIsMouseButtonPressed)(int button);
+ BOOL (*LogiGkeyIsKeyboardGkeyPressed)(int key, int mode);
+ wchar_t *(*LogiGkeyGetMouseButtonString)(int button);
+ wchar_t *(*LogiGkeyGetKeyboardGkeyString)(int key, int mode);
+};
+
+#endif // MUMBLE_MUMBLE_GKEY_H
diff --git a/src/mumble/Global.cpp b/src/mumble/Global.cpp
index fcb0dc8dc..a8977e746 100644
--- a/src/mumble/Global.cpp
+++ b/src/mumble/Global.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Global.h b/src/mumble/Global.h
index e3094014c..1da6253f8 100644
--- a/src/mumble/Global.h
+++ b/src/mumble/Global.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/GlobalShortcut.cpp b/src/mumble/GlobalShortcut.cpp
index 3640ed8b5..5cfc88766 100644
--- a/src/mumble/GlobalShortcut.cpp
+++ b/src/mumble/GlobalShortcut.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/GlobalShortcut.h b/src/mumble/GlobalShortcut.h
index 186d73d7e..dae566046 100644
--- a/src/mumble/GlobalShortcut.h
+++ b/src/mumble/GlobalShortcut.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/GlobalShortcut_macx.h b/src/mumble/GlobalShortcut_macx.h
index 20f8d4498..1d3de4672 100644
--- a/src/mumble/GlobalShortcut_macx.h
+++ b/src/mumble/GlobalShortcut_macx.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/GlobalShortcut_macx.mm b/src/mumble/GlobalShortcut_macx.mm
index fb335c133..aaa73d9a4 100644
--- a/src/mumble/GlobalShortcut_macx.mm
+++ b/src/mumble/GlobalShortcut_macx.mm
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/GlobalShortcut_unix.cpp b/src/mumble/GlobalShortcut_unix.cpp
index ce89ca787..9ae8c79fc 100644
--- a/src/mumble/GlobalShortcut_unix.cpp
+++ b/src/mumble/GlobalShortcut_unix.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/GlobalShortcut_unix.h b/src/mumble/GlobalShortcut_unix.h
index 6f0022757..bfa849aa6 100644
--- a/src/mumble/GlobalShortcut_unix.h
+++ b/src/mumble/GlobalShortcut_unix.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/GlobalShortcut_win.cpp b/src/mumble/GlobalShortcut_win.cpp
index 76286bb28..7b949fa60 100644
--- a/src/mumble/GlobalShortcut_win.cpp
+++ b/src/mumble/GlobalShortcut_win.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/GlobalShortcut_win.h b/src/mumble/GlobalShortcut_win.h
index 988eafeb9..47cd9590c 100644
--- a/src/mumble/GlobalShortcut_win.h
+++ b/src/mumble/GlobalShortcut_win.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/JackAudio.cpp b/src/mumble/JackAudio.cpp
index 1000c8b7c..d50b0a951 100644
--- a/src/mumble/JackAudio.cpp
+++ b/src/mumble/JackAudio.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2018-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/JackAudio.h b/src/mumble/JackAudio.h
index 56a0b03fa..6bae1d3a0 100644
--- a/src/mumble/JackAudio.h
+++ b/src/mumble/JackAudio.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2018-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/LCD.cpp b/src/mumble/LCD.cpp
index 7356bf1e9..e5cde7bb8 100644
--- a/src/mumble/LCD.cpp
+++ b/src/mumble/LCD.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2008-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/LCD.h b/src/mumble/LCD.h
index d94aa90bf..83ebdef50 100644
--- a/src/mumble/LCD.h
+++ b/src/mumble/LCD.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ListenerLocalVolumeDialog.cpp b/src/mumble/ListenerLocalVolumeDialog.cpp
index 41a829feb..1607715bb 100644
--- a/src/mumble/ListenerLocalVolumeDialog.cpp
+++ b/src/mumble/ListenerLocalVolumeDialog.cpp
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ListenerLocalVolumeDialog.h b/src/mumble/ListenerLocalVolumeDialog.h
index 40bb72965..348edccd6 100644
--- a/src/mumble/ListenerLocalVolumeDialog.h
+++ b/src/mumble/ListenerLocalVolumeDialog.h
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Log.cpp b/src/mumble/Log.cpp
index acb8363af..f4f44135f 100644
--- a/src/mumble/Log.cpp
+++ b/src/mumble/Log.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Log.h b/src/mumble/Log.h
index 761a0f268..f30c77c89 100644
--- a/src/mumble/Log.h
+++ b/src/mumble/Log.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Log_macx.mm b/src/mumble/Log_macx.mm
index 26544294f..42c6864cc 100644
--- a/src/mumble/Log_macx.mm
+++ b/src/mumble/Log_macx.mm
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2012-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Log_unix.cpp b/src/mumble/Log_unix.cpp
index f6b27e790..0d9e4b043 100644
--- a/src/mumble/Log_unix.cpp
+++ b/src/mumble/Log_unix.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2012-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Log_win.cpp b/src/mumble/Log_win.cpp
index 52a5122ad..35e9d05a5 100644
--- a/src/mumble/Log_win.cpp
+++ b/src/mumble/Log_win.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/LookConfig.cpp b/src/mumble/LookConfig.cpp
index 0b72abbe6..c0d51a681 100644
--- a/src/mumble/LookConfig.cpp
+++ b/src/mumble/LookConfig.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2006-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/LookConfig.h b/src/mumble/LookConfig.h
index ef9a2f97e..8881f1578 100644
--- a/src/mumble/LookConfig.h
+++ b/src/mumble/LookConfig.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/MainWindow.cpp b/src/mumble/MainWindow.cpp
index 613e33b97..14f487df8 100644
--- a/src/mumble/MainWindow.cpp
+++ b/src/mumble/MainWindow.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/MainWindow.h b/src/mumble/MainWindow.h
index ae473b2a8..a7f3a2615 100644
--- a/src/mumble/MainWindow.h
+++ b/src/mumble/MainWindow.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ManualPlugin.cpp b/src/mumble/ManualPlugin.cpp
index 3af6efb41..4b90d05e1 100644
--- a/src/mumble/ManualPlugin.cpp
+++ b/src/mumble/ManualPlugin.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ManualPlugin.h b/src/mumble/ManualPlugin.h
index 82da53a28..a3af1de02 100644
--- a/src/mumble/ManualPlugin.h
+++ b/src/mumble/ManualPlugin.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Markdown.cpp b/src/mumble/Markdown.cpp
index 8d877b4ed..3f60acb77 100644
--- a/src/mumble/Markdown.cpp
+++ b/src/mumble/Markdown.cpp
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Markdown.h b/src/mumble/Markdown.h
index 1684dd670..7892b252d 100644
--- a/src/mumble/Markdown.h
+++ b/src/mumble/Markdown.h
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Messages.cpp b/src/mumble/Messages.cpp
index 204c7c507..49575849a 100644
--- a/src/mumble/Messages.cpp
+++ b/src/mumble/Messages.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/MumbleApplication.cpp b/src/mumble/MumbleApplication.cpp
index fb1e458c1..005f2c124 100644
--- a/src/mumble/MumbleApplication.cpp
+++ b/src/mumble/MumbleApplication.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2014-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/MumbleApplication.h b/src/mumble/MumbleApplication.h
index ea1f0f77c..088fc4888 100644
--- a/src/mumble/MumbleApplication.h
+++ b/src/mumble/MumbleApplication.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/NetworkConfig.cpp b/src/mumble/NetworkConfig.cpp
index b35527372..d5bc0feb3 100644
--- a/src/mumble/NetworkConfig.cpp
+++ b/src/mumble/NetworkConfig.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2008-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/NetworkConfig.h b/src/mumble/NetworkConfig.h
index 1f871d7cc..45558ee00 100644
--- a/src/mumble/NetworkConfig.h
+++ b/src/mumble/NetworkConfig.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/OSS.cpp b/src/mumble/OSS.cpp
index 30d4326fe..ac86950ff 100644
--- a/src/mumble/OSS.cpp
+++ b/src/mumble/OSS.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/OSS.h b/src/mumble/OSS.h
index a282d61fb..723a5cc4e 100644
--- a/src/mumble/OSS.h
+++ b/src/mumble/OSS.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/OpusCodec.cpp b/src/mumble/OpusCodec.cpp
index 1b3336938..8791b37e6 100644
--- a/src/mumble/OpusCodec.cpp
+++ b/src/mumble/OpusCodec.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2018-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/OpusCodec.h b/src/mumble/OpusCodec.h
index 54a21ce03..d5775e372 100644
--- a/src/mumble/OpusCodec.h
+++ b/src/mumble/OpusCodec.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2018-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Overlay.cpp b/src/mumble/Overlay.cpp
index 30cd4bc2b..6782ba949 100644
--- a/src/mumble/Overlay.cpp
+++ b/src/mumble/Overlay.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Overlay.h b/src/mumble/Overlay.h
index b16bdb772..d1f35c8f0 100644
--- a/src/mumble/Overlay.h
+++ b/src/mumble/Overlay.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/OverlayClient.cpp b/src/mumble/OverlayClient.cpp
index cf9a3e845..7e3cdfc78 100644
--- a/src/mumble/OverlayClient.cpp
+++ b/src/mumble/OverlayClient.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2010-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/OverlayClient.h b/src/mumble/OverlayClient.h
index 6d2fc62cc..120091237 100644
--- a/src/mumble/OverlayClient.h
+++ b/src/mumble/OverlayClient.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/OverlayConfig.cpp b/src/mumble/OverlayConfig.cpp
index d73e3740c..8b16f0aa0 100644
--- a/src/mumble/OverlayConfig.cpp
+++ b/src/mumble/OverlayConfig.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2010-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/OverlayConfig.h b/src/mumble/OverlayConfig.h
index 0f6ca7247..c0178bfe1 100644
--- a/src/mumble/OverlayConfig.h
+++ b/src/mumble/OverlayConfig.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2008-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/OverlayEditor.cpp b/src/mumble/OverlayEditor.cpp
index a47b42444..a37cddd52 100644
--- a/src/mumble/OverlayEditor.cpp
+++ b/src/mumble/OverlayEditor.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2010-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/OverlayEditor.h b/src/mumble/OverlayEditor.h
index ce7f460c9..f292e7b68 100644
--- a/src/mumble/OverlayEditor.h
+++ b/src/mumble/OverlayEditor.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/OverlayEditorScene.cpp b/src/mumble/OverlayEditorScene.cpp
index 49413a505..a2bae4b63 100644
--- a/src/mumble/OverlayEditorScene.cpp
+++ b/src/mumble/OverlayEditorScene.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2010-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/OverlayEditorScene.h b/src/mumble/OverlayEditorScene.h
index 718196442..20880b769 100644
--- a/src/mumble/OverlayEditorScene.h
+++ b/src/mumble/OverlayEditorScene.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/OverlayPositionableItem.cpp b/src/mumble/OverlayPositionableItem.cpp
index eac5a5269..8fb28c47e 100644
--- a/src/mumble/OverlayPositionableItem.cpp
+++ b/src/mumble/OverlayPositionableItem.cpp
@@ -1,87 +1,87 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
-// Use of this source code is governed by a BSD-style license
-// that can be found in the LICENSE file at the root of the
-// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-
-#include "OverlayPositionableItem.h"
-
-#include "Utils.h"
-
-#include <QtCore/QEvent>
-#include <QtGui/QPen>
-#include <QtWidgets/QGraphicsScene>
-
-OverlayPositionableItem::OverlayPositionableItem(QRectF *posPtr, const bool isPositionable)
- : m_position(posPtr), m_isPositionEditable(isPositionable), m_qgeiHandle(nullptr) {
-}
-
-OverlayPositionableItem::~OverlayPositionableItem() {
- delete m_qgeiHandle;
- m_qgeiHandle = nullptr;
-}
-
-void OverlayPositionableItem::createPositioningHandle() {
- m_qgeiHandle = new QGraphicsEllipseItem(QRectF(-4.0f, -4.0f, 8.0f, 8.0f));
- m_qgeiHandle->setPen(QPen(Qt::darkRed, 0.0f));
- m_qgeiHandle->setBrush(Qt::red);
- m_qgeiHandle->setZValue(0.5f);
- m_qgeiHandle->setFlag(QGraphicsItem::ItemIsMovable);
- m_qgeiHandle->setFlag(QGraphicsItem::ItemIsSelectable);
- scene()->addItem(m_qgeiHandle);
- m_qgeiHandle->installSceneEventFilter(this);
-}
-
-bool OverlayPositionableItem::sceneEventFilter(QGraphicsItem *watched, QEvent *e) {
- switch (e->type()) {
- case QEvent::GraphicsSceneMouseMove:
- case QEvent::GraphicsSceneMouseRelease:
- QMetaObject::invokeMethod(this, "onMove", Qt::QueuedConnection);
- break;
- default:
- break;
- }
- return QGraphicsItem::sceneEventFilter(watched, e);
-}
-
-void OverlayPositionableItem::onMove() {
- if (!m_qgeiHandle) {
- return;
- }
-
- const QRectF &sr = scene()->sceneRect();
- const QPointF &p = m_qgeiHandle->pos();
-
- m_position->setX(qBound< qreal >(0.0f, p.x() / sr.width(), 1.0f));
- m_position->setY(qBound< qreal >(0.0f, p.y() / sr.height(), 1.0f));
-
- m_qgeiHandle->setPos(m_position->x() * sr.width(), m_position->y() * sr.height());
-
- updateRender();
-}
-
-void OverlayPositionableItem::updateRender() {
- const QRectF &sr = scene()->sceneRect();
- // Translate the 0..1 float position to the real scene coordinates (relative to absolute position)
- QPoint absPos(iroundf(sr.width() * m_position->x() + 0.5f), iroundf(sr.height() * m_position->y() + 0.5f));
-
- if (m_isPositionEditable) {
- if (!m_qgeiHandle) {
- createPositioningHandle();
- }
- m_qgeiHandle->setPos(absPos.x(), absPos.y());
- }
-
- QRectF br = boundingRect();
- // Limit the position by the elements width (to make sure it is right-/bottom-bound rather than outside of the scene
- QPoint maxPos(iroundf(sr.width() - br.width() + 0.5f), iroundf(sr.height() - br.height() + 0.5f));
- int basex = qBound< int >(0, absPos.x(), maxPos.x());
- int basey = qBound< int >(0, absPos.y(), maxPos.y());
- setPos(basex, basey);
-}
-
-void OverlayPositionableItem::setItemVisible(const bool &visible) {
- setVisible(visible);
- if (m_qgeiHandle) {
- m_qgeiHandle->setVisible(visible);
- }
-}
+// Copyright 2015-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
+#include "OverlayPositionableItem.h"
+
+#include "Utils.h"
+
+#include <QtCore/QEvent>
+#include <QtGui/QPen>
+#include <QtWidgets/QGraphicsScene>
+
+OverlayPositionableItem::OverlayPositionableItem(QRectF *posPtr, const bool isPositionable)
+ : m_position(posPtr), m_isPositionEditable(isPositionable), m_qgeiHandle(nullptr) {
+}
+
+OverlayPositionableItem::~OverlayPositionableItem() {
+ delete m_qgeiHandle;
+ m_qgeiHandle = nullptr;
+}
+
+void OverlayPositionableItem::createPositioningHandle() {
+ m_qgeiHandle = new QGraphicsEllipseItem(QRectF(-4.0f, -4.0f, 8.0f, 8.0f));
+ m_qgeiHandle->setPen(QPen(Qt::darkRed, 0.0f));
+ m_qgeiHandle->setBrush(Qt::red);
+ m_qgeiHandle->setZValue(0.5f);
+ m_qgeiHandle->setFlag(QGraphicsItem::ItemIsMovable);
+ m_qgeiHandle->setFlag(QGraphicsItem::ItemIsSelectable);
+ scene()->addItem(m_qgeiHandle);
+ m_qgeiHandle->installSceneEventFilter(this);
+}
+
+bool OverlayPositionableItem::sceneEventFilter(QGraphicsItem *watched, QEvent *e) {
+ switch (e->type()) {
+ case QEvent::GraphicsSceneMouseMove:
+ case QEvent::GraphicsSceneMouseRelease:
+ QMetaObject::invokeMethod(this, "onMove", Qt::QueuedConnection);
+ break;
+ default:
+ break;
+ }
+ return QGraphicsItem::sceneEventFilter(watched, e);
+}
+
+void OverlayPositionableItem::onMove() {
+ if (!m_qgeiHandle) {
+ return;
+ }
+
+ const QRectF &sr = scene()->sceneRect();
+ const QPointF &p = m_qgeiHandle->pos();
+
+ m_position->setX(qBound< qreal >(0.0f, p.x() / sr.width(), 1.0f));
+ m_position->setY(qBound< qreal >(0.0f, p.y() / sr.height(), 1.0f));
+
+ m_qgeiHandle->setPos(m_position->x() * sr.width(), m_position->y() * sr.height());
+
+ updateRender();
+}
+
+void OverlayPositionableItem::updateRender() {
+ const QRectF &sr = scene()->sceneRect();
+ // Translate the 0..1 float position to the real scene coordinates (relative to absolute position)
+ QPoint absPos(iroundf(sr.width() * m_position->x() + 0.5f), iroundf(sr.height() * m_position->y() + 0.5f));
+
+ if (m_isPositionEditable) {
+ if (!m_qgeiHandle) {
+ createPositioningHandle();
+ }
+ m_qgeiHandle->setPos(absPos.x(), absPos.y());
+ }
+
+ QRectF br = boundingRect();
+ // Limit the position by the elements width (to make sure it is right-/bottom-bound rather than outside of the scene
+ QPoint maxPos(iroundf(sr.width() - br.width() + 0.5f), iroundf(sr.height() - br.height() + 0.5f));
+ int basex = qBound< int >(0, absPos.x(), maxPos.x());
+ int basey = qBound< int >(0, absPos.y(), maxPos.y());
+ setPos(basex, basey);
+}
+
+void OverlayPositionableItem::setItemVisible(const bool &visible) {
+ setVisible(visible);
+ if (m_qgeiHandle) {
+ m_qgeiHandle->setVisible(visible);
+ }
+}
diff --git a/src/mumble/OverlayPositionableItem.h b/src/mumble/OverlayPositionableItem.h
index 52a03d648..469cf38a5 100644
--- a/src/mumble/OverlayPositionableItem.h
+++ b/src/mumble/OverlayPositionableItem.h
@@ -1,33 +1,33 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
-// Use of this source code is governed by a BSD-style license
-// that can be found in the LICENSE file at the root of the
-// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-
-#ifndef MUMBLE_MUMBLE_OVERLAYPOSITIONABLEITEM_H
-#define MUMBLE_MUMBLE_OVERLAYPOSITIONABLEITEM_H
-
-#include <QtCore/QtGlobal>
-#include <QtWidgets/QGraphicsItem>
-
-class OverlayPositionableItem : public QObject, public QGraphicsPixmapItem {
- Q_OBJECT
- Q_DISABLE_COPY(OverlayPositionableItem);
-
-public:
- OverlayPositionableItem(QRectF *posPtr, const bool isPositionable = false);
- virtual ~OverlayPositionableItem();
- void updateRender();
- void setItemVisible(const bool &visible);
-
-private:
- /// Float value between 0 and 1 where 0,0 is top left, and 1,1 is bottom right
- QRectF *m_position;
- const bool m_isPositionEditable;
- QGraphicsEllipseItem *m_qgeiHandle;
- void createPositioningHandle();
- bool sceneEventFilter(QGraphicsItem *, QEvent *) Q_DECL_OVERRIDE;
-private slots:
- void onMove();
-};
-
-#endif
+// Copyright 2015-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
+#ifndef MUMBLE_MUMBLE_OVERLAYPOSITIONABLEITEM_H
+#define MUMBLE_MUMBLE_OVERLAYPOSITIONABLEITEM_H
+
+#include <QtCore/QtGlobal>
+#include <QtWidgets/QGraphicsItem>
+
+class OverlayPositionableItem : public QObject, public QGraphicsPixmapItem {
+ Q_OBJECT
+ Q_DISABLE_COPY(OverlayPositionableItem);
+
+public:
+ OverlayPositionableItem(QRectF *posPtr, const bool isPositionable = false);
+ virtual ~OverlayPositionableItem();
+ void updateRender();
+ void setItemVisible(const bool &visible);
+
+private:
+ /// Float value between 0 and 1 where 0,0 is top left, and 1,1 is bottom right
+ QRectF *m_position;
+ const bool m_isPositionEditable;
+ QGraphicsEllipseItem *m_qgeiHandle;
+ void createPositioningHandle();
+ bool sceneEventFilter(QGraphicsItem *, QEvent *) Q_DECL_OVERRIDE;
+private slots:
+ void onMove();
+};
+
+#endif
diff --git a/src/mumble/OverlayText.cpp b/src/mumble/OverlayText.cpp
index c6a801d48..50b5cbc72 100644
--- a/src/mumble/OverlayText.cpp
+++ b/src/mumble/OverlayText.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2010-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/OverlayText.h b/src/mumble/OverlayText.h
index 812d7ad8c..108796ba2 100644
--- a/src/mumble/OverlayText.h
+++ b/src/mumble/OverlayText.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/OverlayUser.cpp b/src/mumble/OverlayUser.cpp
index e85797951..01660405f 100644
--- a/src/mumble/OverlayUser.cpp
+++ b/src/mumble/OverlayUser.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2010-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/OverlayUser.h b/src/mumble/OverlayUser.h
index 2064b5764..ab2a22310 100644
--- a/src/mumble/OverlayUser.h
+++ b/src/mumble/OverlayUser.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/OverlayUserGroup.cpp b/src/mumble/OverlayUserGroup.cpp
index 558e04b85..005cbcab9 100644
--- a/src/mumble/OverlayUserGroup.cpp
+++ b/src/mumble/OverlayUserGroup.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2010-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/OverlayUserGroup.h b/src/mumble/OverlayUserGroup.h
index dc0294c28..109b6a8fe 100644
--- a/src/mumble/OverlayUserGroup.h
+++ b/src/mumble/OverlayUserGroup.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Overlay_macx.mm b/src/mumble/Overlay_macx.mm
index b771460e8..5aa01f51e 100644
--- a/src/mumble/Overlay_macx.mm
+++ b/src/mumble/Overlay_macx.mm
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2010-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Overlay_unix.cpp b/src/mumble/Overlay_unix.cpp
index fbd961608..e0e74dbb5 100644
--- a/src/mumble/Overlay_unix.cpp
+++ b/src/mumble/Overlay_unix.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Overlay_win.cpp b/src/mumble/Overlay_win.cpp
index ae7f1a37b..6520137e2 100644
--- a/src/mumble/Overlay_win.cpp
+++ b/src/mumble/Overlay_win.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Overlay_win.h b/src/mumble/Overlay_win.h
index a6203faf3..666eb97ed 100644
--- a/src/mumble/Overlay_win.h
+++ b/src/mumble/Overlay_win.h
@@ -1,56 +1,56 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
-// Use of this source code is governed by a BSD-style license
-// that can be found in the LICENSE file at the root of the
-// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-
-#ifndef MUMBLE_MUMBLE_OVERLAY_WIN_H_
-#define MUMBLE_MUMBLE_OVERLAY_WIN_H_
-
-#include "Overlay.h"
-
-#include "win.h"
-
-#include <QElapsedTimer>
-#include <QProcess>
-#include <QString>
-#include <QStringList>
-#include <QTimer>
-
-class OverlayPrivateWin : public OverlayPrivate {
-private:
- Q_OBJECT
- Q_DISABLE_COPY(OverlayPrivateWin)
-
-public:
- void setActive(bool);
- OverlayPrivateWin(QObject *);
- ~OverlayPrivateWin();
-
-public slots:
- void onHelperProcessStarted();
- void onHelperProcessError(QProcess::ProcessError);
- void onHelperProcessExited(int exitCode, QProcess::ExitStatus exitStatus);
- void onDelayedRestartTimerTriggered();
-
-protected:
- QProcess *m_helper_process;
- QString m_helper_exe_path;
- QStringList m_helper_exe_args;
- QElapsedTimer m_helper_start_time;
- QTimer *m_helper_restart_timer;
- bool m_helper_enabled;
-
- QProcess *m_helper64_process;
- QString m_helper64_exe_path;
- QStringList m_helper64_exe_args;
- QElapsedTimer m_helper64_start_time;
- QTimer *m_helper64_restart_timer;
- bool m_helper64_enabled;
-
- HANDLE m_mumble_handle;
- bool m_active;
-
- void startHelper(QProcess *helper);
-};
-
-#endif
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
+#ifndef MUMBLE_MUMBLE_OVERLAY_WIN_H_
+#define MUMBLE_MUMBLE_OVERLAY_WIN_H_
+
+#include "Overlay.h"
+
+#include "win.h"
+
+#include <QElapsedTimer>
+#include <QProcess>
+#include <QString>
+#include <QStringList>
+#include <QTimer>
+
+class OverlayPrivateWin : public OverlayPrivate {
+private:
+ Q_OBJECT
+ Q_DISABLE_COPY(OverlayPrivateWin)
+
+public:
+ void setActive(bool);
+ OverlayPrivateWin(QObject *);
+ ~OverlayPrivateWin();
+
+public slots:
+ void onHelperProcessStarted();
+ void onHelperProcessError(QProcess::ProcessError);
+ void onHelperProcessExited(int exitCode, QProcess::ExitStatus exitStatus);
+ void onDelayedRestartTimerTriggered();
+
+protected:
+ QProcess *m_helper_process;
+ QString m_helper_exe_path;
+ QStringList m_helper_exe_args;
+ QElapsedTimer m_helper_start_time;
+ QTimer *m_helper_restart_timer;
+ bool m_helper_enabled;
+
+ QProcess *m_helper64_process;
+ QString m_helper64_exe_path;
+ QStringList m_helper64_exe_args;
+ QElapsedTimer m_helper64_start_time;
+ QTimer *m_helper64_restart_timer;
+ bool m_helper64_enabled;
+
+ HANDLE m_mumble_handle;
+ bool m_active;
+
+ void startHelper(QProcess *helper);
+};
+
+#endif
diff --git a/src/mumble/PAAudio.cpp b/src/mumble/PAAudio.cpp
index 8da7c64af..03b9f5da7 100644
--- a/src/mumble/PAAudio.cpp
+++ b/src/mumble/PAAudio.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/PAAudio.h b/src/mumble/PAAudio.h
index 78790d964..b405cd63f 100644
--- a/src/mumble/PAAudio.h
+++ b/src/mumble/PAAudio.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/PTTButtonWidget.cpp b/src/mumble/PTTButtonWidget.cpp
index a8edbcb4a..c5584dd20 100644
--- a/src/mumble/PTTButtonWidget.cpp
+++ b/src/mumble/PTTButtonWidget.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2011-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/PTTButtonWidget.h b/src/mumble/PTTButtonWidget.h
index 038757d93..f5f42e7aa 100644
--- a/src/mumble/PTTButtonWidget.h
+++ b/src/mumble/PTTButtonWidget.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2011-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/PathListWidget.cpp b/src/mumble/PathListWidget.cpp
index eb6acdc29..6aabe69fa 100644
--- a/src/mumble/PathListWidget.cpp
+++ b/src/mumble/PathListWidget.cpp
@@ -1,92 +1,92 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
-// Use of this source code is governed by a BSD-style license
-// that can be found in the LICENSE file at the root of the
-// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-
-#include "PathListWidget.h"
-
-#include "Overlay.h"
-
-#include <QtCore/QDir>
-#include <QtCore/QFile>
-#include <QtCore/QMimeData>
-#include <QtGui/QDragEnterEvent>
-#include <QtGui/QDragMoveEvent>
-#include <QtGui/QDropEvent>
-
-PathListWidget::PathListWidget(QWidget *parent) : QListWidget(parent), pathType(FILE_EXE) {
- setAcceptDrops(true);
-}
-
-void PathListWidget::setPathType(PathType type) {
- pathType = type;
-}
-
-void PathListWidget::addFilePath(const QString &path) {
- QString qsAppIdentifier = OverlayAppInfo::applicationIdentifierForPath(path);
- QStringList qslIdentifiers;
- for (int i = 0; i < count(); i++) {
- qslIdentifiers << item(i)->data(Qt::UserRole).toString();
- }
- if (!qslIdentifiers.contains(qsAppIdentifier)) {
- OverlayAppInfo oai = OverlayAppInfo::applicationInfoForId(qsAppIdentifier);
- QListWidgetItem *qlwiApplication = new QListWidgetItem(oai.qiIcon, oai.qsDisplayName, this);
- qlwiApplication->setData(Qt::UserRole, QVariant(qsAppIdentifier));
- setCurrentItem(qlwiApplication);
- }
-}
-
-void PathListWidget::addFolderPath(const QString &path) {
- QString dir = QDir::toNativeSeparators(path);
- QStringList qslIdentifiers;
- for (int i = 0; i < count(); i++) {
- qslIdentifiers << item(i)->data(Qt::UserRole).toString();
- }
- if (!dir.isEmpty() && !qslIdentifiers.contains(dir)) {
- QListWidgetItem *qlwiPath = new QListWidgetItem(QIcon(), QDir(dir).path(), this);
- qlwiPath->setData(Qt::UserRole, QVariant(dir));
- setCurrentItem(qlwiPath);
- }
-}
-
-void PathListWidget::checkAcceptDragEvent(QDropEvent *event, bool store) {
- if (event->mimeData()->hasUrls()) {
- foreach (QUrl url, event->mimeData()->urls()) {
- if (url.isLocalFile()) {
- QFileInfo info(url.toLocalFile());
- switch (pathType) {
- case FILE_EXE:
- if (info.isFile() && info.isExecutable()) {
- if (store) {
- addFilePath(info.filePath());
- }
- event->setDropAction(Qt::LinkAction);
- event->accept();
- }
- break;
- case FOLDER:
- if (info.isDir()) {
- if (store) {
- addFolderPath(url.toLocalFile());
- }
- event->setDropAction(Qt::LinkAction);
- event->accept();
- }
- break;
- }
- }
- }
- }
-}
-
-void PathListWidget::dragEnterEvent(QDragEnterEvent *event) {
- checkAcceptDragEvent(event, false);
-}
-
-void PathListWidget::dragMoveEvent(QDragMoveEvent *event) {
- checkAcceptDragEvent(event, false);
-}
-
-void PathListWidget::dropEvent(QDropEvent *event) {
- checkAcceptDragEvent(event, true);
-}
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
+#include "PathListWidget.h"
+
+#include "Overlay.h"
+
+#include <QtCore/QDir>
+#include <QtCore/QFile>
+#include <QtCore/QMimeData>
+#include <QtGui/QDragEnterEvent>
+#include <QtGui/QDragMoveEvent>
+#include <QtGui/QDropEvent>
+
+PathListWidget::PathListWidget(QWidget *parent) : QListWidget(parent), pathType(FILE_EXE) {
+ setAcceptDrops(true);
+}
+
+void PathListWidget::setPathType(PathType type) {
+ pathType = type;
+}
+
+void PathListWidget::addFilePath(const QString &path) {
+ QString qsAppIdentifier = OverlayAppInfo::applicationIdentifierForPath(path);
+ QStringList qslIdentifiers;
+ for (int i = 0; i < count(); i++) {
+ qslIdentifiers << item(i)->data(Qt::UserRole).toString();
+ }
+ if (!qslIdentifiers.contains(qsAppIdentifier)) {
+ OverlayAppInfo oai = OverlayAppInfo::applicationInfoForId(qsAppIdentifier);
+ QListWidgetItem *qlwiApplication = new QListWidgetItem(oai.qiIcon, oai.qsDisplayName, this);
+ qlwiApplication->setData(Qt::UserRole, QVariant(qsAppIdentifier));
+ setCurrentItem(qlwiApplication);
+ }
+}
+
+void PathListWidget::addFolderPath(const QString &path) {
+ QString dir = QDir::toNativeSeparators(path);
+ QStringList qslIdentifiers;
+ for (int i = 0; i < count(); i++) {
+ qslIdentifiers << item(i)->data(Qt::UserRole).toString();
+ }
+ if (!dir.isEmpty() && !qslIdentifiers.contains(dir)) {
+ QListWidgetItem *qlwiPath = new QListWidgetItem(QIcon(), QDir(dir).path(), this);
+ qlwiPath->setData(Qt::UserRole, QVariant(dir));
+ setCurrentItem(qlwiPath);
+ }
+}
+
+void PathListWidget::checkAcceptDragEvent(QDropEvent *event, bool store) {
+ if (event->mimeData()->hasUrls()) {
+ foreach (QUrl url, event->mimeData()->urls()) {
+ if (url.isLocalFile()) {
+ QFileInfo info(url.toLocalFile());
+ switch (pathType) {
+ case FILE_EXE:
+ if (info.isFile() && info.isExecutable()) {
+ if (store) {
+ addFilePath(info.filePath());
+ }
+ event->setDropAction(Qt::LinkAction);
+ event->accept();
+ }
+ break;
+ case FOLDER:
+ if (info.isDir()) {
+ if (store) {
+ addFolderPath(url.toLocalFile());
+ }
+ event->setDropAction(Qt::LinkAction);
+ event->accept();
+ }
+ break;
+ }
+ }
+ }
+ }
+}
+
+void PathListWidget::dragEnterEvent(QDragEnterEvent *event) {
+ checkAcceptDragEvent(event, false);
+}
+
+void PathListWidget::dragMoveEvent(QDragMoveEvent *event) {
+ checkAcceptDragEvent(event, false);
+}
+
+void PathListWidget::dropEvent(QDropEvent *event) {
+ checkAcceptDragEvent(event, true);
+}
diff --git a/src/mumble/PathListWidget.h b/src/mumble/PathListWidget.h
index 6753f2274..8b98811af 100644
--- a/src/mumble/PathListWidget.h
+++ b/src/mumble/PathListWidget.h
@@ -1,40 +1,40 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
-// Use of this source code is governed by a BSD-style license
-// that can be found in the LICENSE file at the root of the
-// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-
-#ifndef MUMBLE_MUMBLE_PATHLISTWIDGET_H_
-#define MUMBLE_MUMBLE_PATHLISTWIDGET_H_
-
-#include <QListWidget>
-
-class QGraphicsSceneDragDropEvent;
-class QDropEvent;
-
-/**
- * ListWidget that adds functionality for being able to drop files or folders to add them to the list.
- *
- * It makes use of OverlayAppInfo to display file/app information (e.g. the appropriate icon).
- */
-class PathListWidget : public QListWidget {
-public:
- enum PathType { FILE_EXE, FOLDER };
-
- PathListWidget(QWidget *parent = 0);
- void setPathType(PathType type);
- virtual void dragEnterEvent(QDragEnterEvent *event) Q_DECL_OVERRIDE;
- virtual void dragMoveEvent(QDragMoveEvent *event) Q_DECL_OVERRIDE;
- virtual void dropEvent(QDropEvent *event) Q_DECL_OVERRIDE;
-
-private:
- Q_OBJECT
- Q_DISABLE_COPY(PathListWidget)
-
- PathType pathType;
-
- void addFilePath(const QString &path);
- void addFolderPath(const QString &path);
- void checkAcceptDragEvent(QDropEvent *event, bool store);
-};
-
-#endif
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
+#ifndef MUMBLE_MUMBLE_PATHLISTWIDGET_H_
+#define MUMBLE_MUMBLE_PATHLISTWIDGET_H_
+
+#include <QListWidget>
+
+class QGraphicsSceneDragDropEvent;
+class QDropEvent;
+
+/**
+ * ListWidget that adds functionality for being able to drop files or folders to add them to the list.
+ *
+ * It makes use of OverlayAppInfo to display file/app information (e.g. the appropriate icon).
+ */
+class PathListWidget : public QListWidget {
+public:
+ enum PathType { FILE_EXE, FOLDER };
+
+ PathListWidget(QWidget *parent = 0);
+ void setPathType(PathType type);
+ virtual void dragEnterEvent(QDragEnterEvent *event) Q_DECL_OVERRIDE;
+ virtual void dragMoveEvent(QDragMoveEvent *event) Q_DECL_OVERRIDE;
+ virtual void dropEvent(QDropEvent *event) Q_DECL_OVERRIDE;
+
+private:
+ Q_OBJECT
+ Q_DISABLE_COPY(PathListWidget)
+
+ PathType pathType;
+
+ void addFilePath(const QString &path);
+ void addFolderPath(const QString &path);
+ void checkAcceptDragEvent(QDropEvent *event, bool store);
+};
+
+#endif
diff --git a/src/mumble/Plugins.cpp b/src/mumble/Plugins.cpp
index 42eafe629..057912b25 100644
--- a/src/mumble/Plugins.cpp
+++ b/src/mumble/Plugins.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Plugins.h b/src/mumble/Plugins.h
index 2528457ba..30a63cd94 100644
--- a/src/mumble/Plugins.h
+++ b/src/mumble/Plugins.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/PulseAudio.cpp b/src/mumble/PulseAudio.cpp
index a60c05aea..1527ca444 100644
--- a/src/mumble/PulseAudio.cpp
+++ b/src/mumble/PulseAudio.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/PulseAudio.h b/src/mumble/PulseAudio.h
index 1728edd42..fec8863da 100644
--- a/src/mumble/PulseAudio.h
+++ b/src/mumble/PulseAudio.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/RichTextEditor.cpp b/src/mumble/RichTextEditor.cpp
index 189dd3e7b..c18eb1b87 100644
--- a/src/mumble/RichTextEditor.cpp
+++ b/src/mumble/RichTextEditor.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/RichTextEditor.h b/src/mumble/RichTextEditor.h
index 7c1fbb9c1..20ff8cef1 100644
--- a/src/mumble/RichTextEditor.h
+++ b/src/mumble/RichTextEditor.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Screen.cpp b/src/mumble/Screen.cpp
index c9e5898b5..39ca7397e 100644
--- a/src/mumble/Screen.cpp
+++ b/src/mumble/Screen.cpp
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 The Mumble Developers. All rights reserved.
+// Copyright 2019-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Screen.h b/src/mumble/Screen.h
index 93f844bb5..426b82e03 100644
--- a/src/mumble/Screen.h
+++ b/src/mumble/Screen.h
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 The Mumble Developers. All rights reserved.
+// Copyright 2019-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ServerHandler.cpp b/src/mumble/ServerHandler.cpp
index b4f1a7824..59e8a1436 100644
--- a/src/mumble/ServerHandler.cpp
+++ b/src/mumble/ServerHandler.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ServerHandler.h b/src/mumble/ServerHandler.h
index a598af5ab..89cd066c9 100644
--- a/src/mumble/ServerHandler.h
+++ b/src/mumble/ServerHandler.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Settings.cpp b/src/mumble/Settings.cpp
index a1fa6d8a7..2b7f39b35 100644
--- a/src/mumble/Settings.cpp
+++ b/src/mumble/Settings.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Settings.h b/src/mumble/Settings.h
index c4f05cf7e..df9d917ae 100644
--- a/src/mumble/Settings.h
+++ b/src/mumble/Settings.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/SharedMemory.cpp b/src/mumble/SharedMemory.cpp
index c199a27d8..9d9337c1c 100644
--- a/src/mumble/SharedMemory.cpp
+++ b/src/mumble/SharedMemory.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/SharedMemory.h b/src/mumble/SharedMemory.h
index 0da1e0d55..bdd5d7ba3 100644
--- a/src/mumble/SharedMemory.h
+++ b/src/mumble/SharedMemory.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/SharedMemory_unix.cpp b/src/mumble/SharedMemory_unix.cpp
index 509218604..444c02841 100644
--- a/src/mumble/SharedMemory_unix.cpp
+++ b/src/mumble/SharedMemory_unix.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/SharedMemory_win.cpp b/src/mumble/SharedMemory_win.cpp
index 68408fbc3..dad27c870 100644
--- a/src/mumble/SharedMemory_win.cpp
+++ b/src/mumble/SharedMemory_win.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2010-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/SocketRPC.cpp b/src/mumble/SocketRPC.cpp
index c02244628..25121c7a3 100644
--- a/src/mumble/SocketRPC.cpp
+++ b/src/mumble/SocketRPC.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2010-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/SocketRPC.h b/src/mumble/SocketRPC.h
index bfb4b35a8..8bf347b1e 100644
--- a/src/mumble/SocketRPC.h
+++ b/src/mumble/SocketRPC.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/SvgIcon.cpp b/src/mumble/SvgIcon.cpp
index 9c5064c4c..4252507a9 100644
--- a/src/mumble/SvgIcon.cpp
+++ b/src/mumble/SvgIcon.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2018-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/SvgIcon.h b/src/mumble/SvgIcon.h
index 712fcf76f..cdc51837c 100644
--- a/src/mumble/SvgIcon.h
+++ b/src/mumble/SvgIcon.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2018-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/TalkingUI.cpp b/src/mumble/TalkingUI.cpp
index 337eb1196..9417ccc68 100644
--- a/src/mumble/TalkingUI.cpp
+++ b/src/mumble/TalkingUI.cpp
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/TalkingUI.h b/src/mumble/TalkingUI.h
index cad6b631d..b3f71699f 100644
--- a/src/mumble/TalkingUI.h
+++ b/src/mumble/TalkingUI.h
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/TalkingUIComponent.h b/src/mumble/TalkingUIComponent.h
index 7f0035343..641136c87 100644
--- a/src/mumble/TalkingUIComponent.h
+++ b/src/mumble/TalkingUIComponent.h
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/TalkingUIContainer.cpp b/src/mumble/TalkingUIContainer.cpp
index 8fbedef20..ef65a934c 100644
--- a/src/mumble/TalkingUIContainer.cpp
+++ b/src/mumble/TalkingUIContainer.cpp
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/TalkingUIContainer.h b/src/mumble/TalkingUIContainer.h
index 55526755f..bf805ff21 100644
--- a/src/mumble/TalkingUIContainer.h
+++ b/src/mumble/TalkingUIContainer.h
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/TalkingUIEntry.cpp b/src/mumble/TalkingUIEntry.cpp
index 5945dccca..7d9966cb0 100644
--- a/src/mumble/TalkingUIEntry.cpp
+++ b/src/mumble/TalkingUIEntry.cpp
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/TalkingUIEntry.h b/src/mumble/TalkingUIEntry.h
index e7eb723d3..b1bedb8f3 100644
--- a/src/mumble/TalkingUIEntry.h
+++ b/src/mumble/TalkingUIEntry.h
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/TalkingUISelection.cpp b/src/mumble/TalkingUISelection.cpp
index 0378e0660..bcdecd8b4 100644
--- a/src/mumble/TalkingUISelection.cpp
+++ b/src/mumble/TalkingUISelection.cpp
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/TalkingUISelection.h b/src/mumble/TalkingUISelection.h
index 17b00be58..f58ff2e90 100644
--- a/src/mumble/TalkingUISelection.h
+++ b/src/mumble/TalkingUISelection.h
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/TaskList.cpp b/src/mumble/TaskList.cpp
index ab0a80b02..e2a3c1e6b 100644
--- a/src/mumble/TaskList.cpp
+++ b/src/mumble/TaskList.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/TaskList.h b/src/mumble/TaskList.h
index 6d45736ee..05fe04057 100644
--- a/src/mumble/TaskList.h
+++ b/src/mumble/TaskList.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/TextMessage.cpp b/src/mumble/TextMessage.cpp
index 33b9c411d..bc28b6960 100644
--- a/src/mumble/TextMessage.cpp
+++ b/src/mumble/TextMessage.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/TextMessage.h b/src/mumble/TextMessage.h
index 2dadec1dd..241d11819 100644
--- a/src/mumble/TextMessage.h
+++ b/src/mumble/TextMessage.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/TextToSpeech.cpp b/src/mumble/TextToSpeech.cpp
index 9d4796878..1379e4ab0 100644
--- a/src/mumble/TextToSpeech.cpp
+++ b/src/mumble/TextToSpeech.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/TextToSpeech.h b/src/mumble/TextToSpeech.h
index 08d483140..3bdc665ae 100644
--- a/src/mumble/TextToSpeech.h
+++ b/src/mumble/TextToSpeech.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/TextToSpeech_macx.mm b/src/mumble/TextToSpeech_macx.mm
index 34be3097a..83533540c 100644
--- a/src/mumble/TextToSpeech_macx.mm
+++ b/src/mumble/TextToSpeech_macx.mm
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/TextToSpeech_unix.cpp b/src/mumble/TextToSpeech_unix.cpp
index 230339628..30d8db377 100644
--- a/src/mumble/TextToSpeech_unix.cpp
+++ b/src/mumble/TextToSpeech_unix.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/TextToSpeech_win.cpp b/src/mumble/TextToSpeech_win.cpp
index e3befeb2b..48703c00e 100644
--- a/src/mumble/TextToSpeech_win.cpp
+++ b/src/mumble/TextToSpeech_win.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ThemeInfo.cpp b/src/mumble/ThemeInfo.cpp
index 1799c2273..4804d3d71 100644
--- a/src/mumble/ThemeInfo.cpp
+++ b/src/mumble/ThemeInfo.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2015-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ThemeInfo.h b/src/mumble/ThemeInfo.h
index 3277f84b9..b93550f87 100644
--- a/src/mumble/ThemeInfo.h
+++ b/src/mumble/ThemeInfo.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2015-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Themes.cpp b/src/mumble/Themes.cpp
index eb6389844..34d350ce9 100644
--- a/src/mumble/Themes.cpp
+++ b/src/mumble/Themes.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2015-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Themes.h b/src/mumble/Themes.h
index f14cb6d63..c040e8613 100644
--- a/src/mumble/Themes.h
+++ b/src/mumble/Themes.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Tokens.cpp b/src/mumble/Tokens.cpp
index 81e7a946f..514b2d6d9 100644
--- a/src/mumble/Tokens.cpp
+++ b/src/mumble/Tokens.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Tokens.h b/src/mumble/Tokens.h
index b130d8a89..5a647e7dd 100644
--- a/src/mumble/Tokens.h
+++ b/src/mumble/Tokens.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Usage.cpp b/src/mumble/Usage.cpp
index 4d0e5a092..95b7c2a68 100644
--- a/src/mumble/Usage.cpp
+++ b/src/mumble/Usage.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Usage.h b/src/mumble/Usage.h
index 2388b7480..49e7abd13 100644
--- a/src/mumble/Usage.h
+++ b/src/mumble/Usage.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/UserEdit.cpp b/src/mumble/UserEdit.cpp
index fa16681eb..c23fd746b 100644
--- a/src/mumble/UserEdit.cpp
+++ b/src/mumble/UserEdit.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/UserEdit.h b/src/mumble/UserEdit.h
index 5e0de7375..3152b723a 100644
--- a/src/mumble/UserEdit.h
+++ b/src/mumble/UserEdit.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/UserInformation.cpp b/src/mumble/UserInformation.cpp
index 4996bd856..a5780a81b 100644
--- a/src/mumble/UserInformation.cpp
+++ b/src/mumble/UserInformation.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2010-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/UserInformation.h b/src/mumble/UserInformation.h
index 4b54fd2e8..4fcd3dfee 100644
--- a/src/mumble/UserInformation.h
+++ b/src/mumble/UserInformation.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/UserListModel.cpp b/src/mumble/UserListModel.cpp
index b07b6bcee..23cafa8f5 100644
--- a/src/mumble/UserListModel.cpp
+++ b/src/mumble/UserListModel.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2013-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/UserListModel.h b/src/mumble/UserListModel.h
index 4da96e8ef..a990766df 100644
--- a/src/mumble/UserListModel.h
+++ b/src/mumble/UserListModel.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2013-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/UserLocalNicknameDialog.cpp b/src/mumble/UserLocalNicknameDialog.cpp
index 9e59cd42d..6c31a9cbb 100644
--- a/src/mumble/UserLocalNicknameDialog.cpp
+++ b/src/mumble/UserLocalNicknameDialog.cpp
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/UserLocalNicknameDialog.h b/src/mumble/UserLocalNicknameDialog.h
index b3b91ac72..5baa9b908 100644
--- a/src/mumble/UserLocalNicknameDialog.h
+++ b/src/mumble/UserLocalNicknameDialog.h
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/UserLocalVolumeDialog.cpp b/src/mumble/UserLocalVolumeDialog.cpp
index ee2d529f9..20ddea688 100644
--- a/src/mumble/UserLocalVolumeDialog.cpp
+++ b/src/mumble/UserLocalVolumeDialog.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/UserLocalVolumeDialog.h b/src/mumble/UserLocalVolumeDialog.h
index e4311e8c4..ca2d5fbe2 100644
--- a/src/mumble/UserLocalVolumeDialog.h
+++ b/src/mumble/UserLocalVolumeDialog.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/UserLockFile.h b/src/mumble/UserLockFile.h
index 431978bd9..9de08252d 100644
--- a/src/mumble/UserLockFile.h
+++ b/src/mumble/UserLockFile.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/UserLockFile_win.cpp b/src/mumble/UserLockFile_win.cpp
index c77454b52..243a5c4f3 100644
--- a/src/mumble/UserLockFile_win.cpp
+++ b/src/mumble/UserLockFile_win.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/UserModel.cpp b/src/mumble/UserModel.cpp
index 7d5fde979..b1253f48d 100644
--- a/src/mumble/UserModel.cpp
+++ b/src/mumble/UserModel.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/UserModel.h b/src/mumble/UserModel.h
index 449df09dd..b481b3c20 100644
--- a/src/mumble/UserModel.h
+++ b/src/mumble/UserModel.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/UserView.cpp b/src/mumble/UserView.cpp
index 99aec7b96..57b885636 100644
--- a/src/mumble/UserView.cpp
+++ b/src/mumble/UserView.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/UserView.h b/src/mumble/UserView.h
index fe3238013..6413b3262 100644
--- a/src/mumble/UserView.h
+++ b/src/mumble/UserView.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/VersionCheck.cpp b/src/mumble/VersionCheck.cpp
index 8defbe0d5..c001873ee 100644
--- a/src/mumble/VersionCheck.cpp
+++ b/src/mumble/VersionCheck.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/VersionCheck.h b/src/mumble/VersionCheck.h
index 30b512fe1..b036bcdcb 100644
--- a/src/mumble/VersionCheck.h
+++ b/src/mumble/VersionCheck.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ViewCert.cpp b/src/mumble/ViewCert.cpp
index e665ad1ab..19f4968f3 100644
--- a/src/mumble/ViewCert.cpp
+++ b/src/mumble/ViewCert.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/ViewCert.h b/src/mumble/ViewCert.h
index 6d1ee70f3..b77e05e08 100644
--- a/src/mumble/ViewCert.h
+++ b/src/mumble/ViewCert.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/VoiceRecorder.cpp b/src/mumble/VoiceRecorder.cpp
index cd2d5c331..2d3cffdb9 100644
--- a/src/mumble/VoiceRecorder.cpp
+++ b/src/mumble/VoiceRecorder.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2010-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/VoiceRecorder.h b/src/mumble/VoiceRecorder.h
index 41ed20a94..107b5f672 100644
--- a/src/mumble/VoiceRecorder.h
+++ b/src/mumble/VoiceRecorder.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/VoiceRecorderDialog.cpp b/src/mumble/VoiceRecorderDialog.cpp
index 5bb482138..b3103f0c0 100644
--- a/src/mumble/VoiceRecorderDialog.cpp
+++ b/src/mumble/VoiceRecorderDialog.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2010-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/VoiceRecorderDialog.h b/src/mumble/VoiceRecorderDialog.h
index 2d4973cde..f660d9dc7 100644
--- a/src/mumble/VoiceRecorderDialog.h
+++ b/src/mumble/VoiceRecorderDialog.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2010-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/WASAPI.cpp b/src/mumble/WASAPI.cpp
index afa6308ba..f73b061cf 100644
--- a/src/mumble/WASAPI.cpp
+++ b/src/mumble/WASAPI.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2008-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/WASAPI.h b/src/mumble/WASAPI.h
index 7ef33f4c0..9c5e4a3d6 100644
--- a/src/mumble/WASAPI.h
+++ b/src/mumble/WASAPI.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/WASAPINotificationClient.cpp b/src/mumble/WASAPINotificationClient.cpp
index 78c033e72..28c8c5708 100644
--- a/src/mumble/WASAPINotificationClient.cpp
+++ b/src/mumble/WASAPINotificationClient.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2012-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/WASAPINotificationClient.h b/src/mumble/WASAPINotificationClient.h
index fb1b64380..4397ed854 100644
--- a/src/mumble/WASAPINotificationClient.h
+++ b/src/mumble/WASAPINotificationClient.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2012-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/WebFetch.cpp b/src/mumble/WebFetch.cpp
index 94c1fe10c..1bd8c53a6 100644
--- a/src/mumble/WebFetch.cpp
+++ b/src/mumble/WebFetch.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2011-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/WebFetch.h b/src/mumble/WebFetch.h
index aa7dcd782..9947e9c79 100644
--- a/src/mumble/WebFetch.h
+++ b/src/mumble/WebFetch.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/WinGUIDs.cpp b/src/mumble/WinGUIDs.cpp
index b49862849..acae30a64 100644
--- a/src/mumble/WinGUIDs.cpp
+++ b/src/mumble/WinGUIDs.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/XMLTools.cpp b/src/mumble/XMLTools.cpp
index 2023b5eac..073a59763 100644
--- a/src/mumble/XMLTools.cpp
+++ b/src/mumble/XMLTools.cpp
@@ -1,201 +1,201 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
-// Use of this source code is governed by a BSD-style license
-// that can be found in the LICENSE file at the root of the
-// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-
-#include "XMLTools.h"
-
-#include <QStringList>
-#include <QXmlStreamReader>
-#include <QXmlStreamWriter>
-
-void XMLTools::recurseParse(QXmlStreamReader &reader, QXmlStreamWriter &writer, int &paragraphs,
- const QMap< QString, QString > &opstyle, const int close, bool ignore) {
- while (!reader.atEnd()) {
- QXmlStreamReader::TokenType tt = reader.readNext();
-
- QXmlStreamAttributes a = reader.attributes();
- QMap< QString, QString > style;
- QMap< QString, QString > pstyle = opstyle;
-
- QStringRef styleref = a.value(QLatin1String("style"));
- if (!styleref.isNull()) {
- QString stylestring = styleref.toString();
-#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
- QStringList styles = stylestring.split(QLatin1String(";"), Qt::SkipEmptyParts);
-#else
- // Qt 5.14 introduced the Qt::SplitBehavior flags deprecating the QString fields
- QStringList styles = stylestring.split(QLatin1String(";"), QString::SkipEmptyParts);
-#endif
- foreach (QString s, styles) {
- s = s.simplified();
- int idx = s.indexOf(QLatin1Char(':'));
- QString key = (idx > 0) ? s.left(idx).simplified() : s;
- QString val = (idx > 0) ? s.mid(idx + 1).simplified() : QString();
-
- if (!pstyle.contains(key) || (pstyle.value(key) != val)) {
- style.insert(key, val);
- pstyle.insert(key, val);
- }
- }
- }
-
- switch (tt) {
- case QXmlStreamReader::StartElement: {
- QString name = reader.name().toString();
- int rclose = 1;
- if (name == QLatin1String("body")) {
- rclose = 0;
- ignore = false;
- } else if (name == QLatin1String("span")) {
- // Substitute style with <b>, <i> and <u>
-
- rclose = 0;
- if (style.value(QLatin1String("font-weight")) == QLatin1String("600")) {
- writer.writeStartElement(QLatin1String("b"));
- rclose++;
- style.remove(QLatin1String("font-weight"));
- }
- if (style.value(QLatin1String("font-style")) == QLatin1String("italic")) {
- writer.writeStartElement(QLatin1String("i"));
- rclose++;
- style.remove(QLatin1String("font-style"));
- }
- if (style.value(QLatin1String("text-decoration")) == QLatin1String("underline")) {
- writer.writeStartElement(QLatin1String("u"));
- rclose++;
- style.remove(QLatin1String("text-decoration"));
- }
- if (!style.isEmpty()) {
- rclose++;
- writer.writeStartElement(name);
-
- QStringList qsl;
- QMap< QString, QString >::const_iterator i;
- for (i = style.constBegin(); i != style.constEnd(); ++i) {
- if (!i.value().isEmpty())
- qsl << QString::fromLatin1("%1:%2").arg(i.key(), i.value());
- else
- qsl << i.key();
- }
-
- writer.writeAttribute(QLatin1String("style"), qsl.join(QLatin1String("; ")));
- }
- } else if (name == QLatin1String("p")) {
- paragraphs++;
- if (paragraphs == 1) {
- // Ignore first paragraph. If it is styled empty drop its contents (e.g. <br />) too.
- if (style.value(QLatin1String("-qt-paragraph-type")) == QLatin1String("empty")) {
- reader.skipCurrentElement();
- continue;
- }
- rclose = 0;
- } else {
- rclose = 1;
- writer.writeStartElement(name);
-
- if (!style.isEmpty()) {
- QStringList qsl;
- QMap< QString, QString >::const_iterator i;
- for (i = style.constBegin(); i != style.constEnd(); ++i) {
- if (!i.value().isEmpty())
- qsl << QString::fromLatin1("%1:%2").arg(i.key(), i.value());
- else
- qsl << i.key();
- }
-
- writer.writeAttribute(QLatin1String("style"), qsl.join(QLatin1String("; ")));
- }
- }
- } else if (name == QLatin1String("a")) {
- // Set pstyle to include implicit blue underline.
- rclose = 1;
- writer.writeCurrentToken(reader);
- pstyle.insert(QLatin1String("text-decoration"), QLatin1String("underline"));
- pstyle.insert(QLatin1String("color"), QLatin1String("#0000ff"));
- } else if (!ignore) {
- rclose = 1;
- writer.writeCurrentToken(reader);
- }
-
- recurseParse(reader, writer, paragraphs, pstyle, rclose, ignore);
- break;
- }
- case QXmlStreamReader::EndElement:
- if (!ignore)
- for (int i = 0; i < close; ++i)
- writer.writeEndElement();
- return;
- case QXmlStreamReader::Characters:
- if (!ignore)
- writer.writeCharacters(reader.text().toString());
- break;
- default:
- break;
- }
- }
-}
-
-bool XMLTools::unduplicateTags(QXmlStreamReader &reader, QXmlStreamWriter &writer) {
- bool changed = false;
- bool needclose = false;
-
- QStringList qslConcat;
- qslConcat << QLatin1String("b");
- qslConcat << QLatin1String("i");
- qslConcat << QLatin1String("u");
- qslConcat << QLatin1String("a");
-
- QList< QString > qlNames;
- QList< QXmlStreamAttributes > qlAttributes;
-
- while (!reader.atEnd()) {
- QXmlStreamReader::TokenType tt = reader.readNext();
- QString name = reader.name().toString();
- switch (tt) {
- case QXmlStreamReader::StartDocument:
- case QXmlStreamReader::EndDocument:
- break;
- case QXmlStreamReader::StartElement: {
- QXmlStreamAttributes a = reader.attributes();
-
- if (name == QLatin1String("unduplicate"))
- break;
-
- if (needclose) {
- needclose = false;
-
- if ((a == qlAttributes.last()) && (name == qlNames.last()) && (qslConcat.contains(name))) {
- changed = true;
- break;
- }
- qlNames.takeLast();
- qlAttributes.takeLast();
- writer.writeEndElement();
- }
- writer.writeCurrentToken(reader);
- qlNames.append(name);
- qlAttributes.append(a);
- } break;
- case QXmlStreamReader::EndElement: {
- if (name == QLatin1String("unduplicate"))
- break;
- if (needclose) {
- qlNames.takeLast();
- qlAttributes.takeLast();
- writer.writeCurrentToken(reader);
- }
- needclose = true;
- } break;
- default:
- if (needclose) {
- writer.writeEndElement();
- needclose = false;
- }
- writer.writeCurrentToken(reader);
- }
- }
- if (needclose)
- writer.writeEndElement();
- return changed;
-}
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
+#include "XMLTools.h"
+
+#include <QStringList>
+#include <QXmlStreamReader>
+#include <QXmlStreamWriter>
+
+void XMLTools::recurseParse(QXmlStreamReader &reader, QXmlStreamWriter &writer, int &paragraphs,
+ const QMap< QString, QString > &opstyle, const int close, bool ignore) {
+ while (!reader.atEnd()) {
+ QXmlStreamReader::TokenType tt = reader.readNext();
+
+ QXmlStreamAttributes a = reader.attributes();
+ QMap< QString, QString > style;
+ QMap< QString, QString > pstyle = opstyle;
+
+ QStringRef styleref = a.value(QLatin1String("style"));
+ if (!styleref.isNull()) {
+ QString stylestring = styleref.toString();
+#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
+ QStringList styles = stylestring.split(QLatin1String(";"), Qt::SkipEmptyParts);
+#else
+ // Qt 5.14 introduced the Qt::SplitBehavior flags deprecating the QString fields
+ QStringList styles = stylestring.split(QLatin1String(";"), QString::SkipEmptyParts);
+#endif
+ foreach (QString s, styles) {
+ s = s.simplified();
+ int idx = s.indexOf(QLatin1Char(':'));
+ QString key = (idx > 0) ? s.left(idx).simplified() : s;
+ QString val = (idx > 0) ? s.mid(idx + 1).simplified() : QString();
+
+ if (!pstyle.contains(key) || (pstyle.value(key) != val)) {
+ style.insert(key, val);
+ pstyle.insert(key, val);
+ }
+ }
+ }
+
+ switch (tt) {
+ case QXmlStreamReader::StartElement: {
+ QString name = reader.name().toString();
+ int rclose = 1;
+ if (name == QLatin1String("body")) {
+ rclose = 0;
+ ignore = false;
+ } else if (name == QLatin1String("span")) {
+ // Substitute style with <b>, <i> and <u>
+
+ rclose = 0;
+ if (style.value(QLatin1String("font-weight")) == QLatin1String("600")) {
+ writer.writeStartElement(QLatin1String("b"));
+ rclose++;
+ style.remove(QLatin1String("font-weight"));
+ }
+ if (style.value(QLatin1String("font-style")) == QLatin1String("italic")) {
+ writer.writeStartElement(QLatin1String("i"));
+ rclose++;
+ style.remove(QLatin1String("font-style"));
+ }
+ if (style.value(QLatin1String("text-decoration")) == QLatin1String("underline")) {
+ writer.writeStartElement(QLatin1String("u"));
+ rclose++;
+ style.remove(QLatin1String("text-decoration"));
+ }
+ if (!style.isEmpty()) {
+ rclose++;
+ writer.writeStartElement(name);
+
+ QStringList qsl;
+ QMap< QString, QString >::const_iterator i;
+ for (i = style.constBegin(); i != style.constEnd(); ++i) {
+ if (!i.value().isEmpty())
+ qsl << QString::fromLatin1("%1:%2").arg(i.key(), i.value());
+ else
+ qsl << i.key();
+ }
+
+ writer.writeAttribute(QLatin1String("style"), qsl.join(QLatin1String("; ")));
+ }
+ } else if (name == QLatin1String("p")) {
+ paragraphs++;
+ if (paragraphs == 1) {
+ // Ignore first paragraph. If it is styled empty drop its contents (e.g. <br />) too.
+ if (style.value(QLatin1String("-qt-paragraph-type")) == QLatin1String("empty")) {
+ reader.skipCurrentElement();
+ continue;
+ }
+ rclose = 0;
+ } else {
+ rclose = 1;
+ writer.writeStartElement(name);
+
+ if (!style.isEmpty()) {
+ QStringList qsl;
+ QMap< QString, QString >::const_iterator i;
+ for (i = style.constBegin(); i != style.constEnd(); ++i) {
+ if (!i.value().isEmpty())
+ qsl << QString::fromLatin1("%1:%2").arg(i.key(), i.value());
+ else
+ qsl << i.key();
+ }
+
+ writer.writeAttribute(QLatin1String("style"), qsl.join(QLatin1String("; ")));
+ }
+ }
+ } else if (name == QLatin1String("a")) {
+ // Set pstyle to include implicit blue underline.
+ rclose = 1;
+ writer.writeCurrentToken(reader);
+ pstyle.insert(QLatin1String("text-decoration"), QLatin1String("underline"));
+ pstyle.insert(QLatin1String("color"), QLatin1String("#0000ff"));
+ } else if (!ignore) {
+ rclose = 1;
+ writer.writeCurrentToken(reader);
+ }
+
+ recurseParse(reader, writer, paragraphs, pstyle, rclose, ignore);
+ break;
+ }
+ case QXmlStreamReader::EndElement:
+ if (!ignore)
+ for (int i = 0; i < close; ++i)
+ writer.writeEndElement();
+ return;
+ case QXmlStreamReader::Characters:
+ if (!ignore)
+ writer.writeCharacters(reader.text().toString());
+ break;
+ default:
+ break;
+ }
+ }
+}
+
+bool XMLTools::unduplicateTags(QXmlStreamReader &reader, QXmlStreamWriter &writer) {
+ bool changed = false;
+ bool needclose = false;
+
+ QStringList qslConcat;
+ qslConcat << QLatin1String("b");
+ qslConcat << QLatin1String("i");
+ qslConcat << QLatin1String("u");
+ qslConcat << QLatin1String("a");
+
+ QList< QString > qlNames;
+ QList< QXmlStreamAttributes > qlAttributes;
+
+ while (!reader.atEnd()) {
+ QXmlStreamReader::TokenType tt = reader.readNext();
+ QString name = reader.name().toString();
+ switch (tt) {
+ case QXmlStreamReader::StartDocument:
+ case QXmlStreamReader::EndDocument:
+ break;
+ case QXmlStreamReader::StartElement: {
+ QXmlStreamAttributes a = reader.attributes();
+
+ if (name == QLatin1String("unduplicate"))
+ break;
+
+ if (needclose) {
+ needclose = false;
+
+ if ((a == qlAttributes.last()) && (name == qlNames.last()) && (qslConcat.contains(name))) {
+ changed = true;
+ break;
+ }
+ qlNames.takeLast();
+ qlAttributes.takeLast();
+ writer.writeEndElement();
+ }
+ writer.writeCurrentToken(reader);
+ qlNames.append(name);
+ qlAttributes.append(a);
+ } break;
+ case QXmlStreamReader::EndElement: {
+ if (name == QLatin1String("unduplicate"))
+ break;
+ if (needclose) {
+ qlNames.takeLast();
+ qlAttributes.takeLast();
+ writer.writeCurrentToken(reader);
+ }
+ needclose = true;
+ } break;
+ default:
+ if (needclose) {
+ writer.writeEndElement();
+ needclose = false;
+ }
+ writer.writeCurrentToken(reader);
+ }
+ }
+ if (needclose)
+ writer.writeEndElement();
+ return changed;
+}
diff --git a/src/mumble/XMLTools.h b/src/mumble/XMLTools.h
index 2d09364f5..f9a970276 100644
--- a/src/mumble/XMLTools.h
+++ b/src/mumble/XMLTools.h
@@ -1,38 +1,38 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
-// Use of this source code is governed by a BSD-style license
-// that can be found in the LICENSE file at the root of the
-// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-
-#ifndef MUMBLE_MUMBLE_XMLTOOLS_H_
-#define MUMBLE_MUMBLE_XMLTOOLS_H_
-
-#include <QMap>
-#include <QObject>
-#include <QXmlStreamReader>
-#include <QXmlStreamWriter>
-
-class XMLTools : public QObject {
- Q_OBJECT
-public:
- /* Recursively parse and output XHTML.
- * This will drop <head>, <html> etc, take the contents of <body> and strip out unnecesarry styles.
- * It will also change <span style=""> into matching <b>, <i> or <u>.
- */
- static void recurseParse(QXmlStreamReader &reader, QXmlStreamWriter &writer, int &paragraphs,
- const QMap< QString, QString > &opstyle, const int close = 0, bool ignore = true);
-
- /* Iterate XML and remove close-followed-by-open.
- * For example, make "<b>bold with </b><b><i>italic</i></b>" into
- * "<b>bold with <i>italic</i></b>"
- *
- * If the input XML is or may not be valid, a "unduplicate" tag can be used as a root element,
- * which will be dropped and not written to writer.
- *
- * Input XML has to be valid XML.
- *
- * Works on b, i, u, and a elements.
- */
- static bool unduplicateTags(QXmlStreamReader &reader, QXmlStreamWriter &writer);
-};
-
-#endif // XMLTOOLS_H
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
+#ifndef MUMBLE_MUMBLE_XMLTOOLS_H_
+#define MUMBLE_MUMBLE_XMLTOOLS_H_
+
+#include <QMap>
+#include <QObject>
+#include <QXmlStreamReader>
+#include <QXmlStreamWriter>
+
+class XMLTools : public QObject {
+ Q_OBJECT
+public:
+ /* Recursively parse and output XHTML.
+ * This will drop <head>, <html> etc, take the contents of <body> and strip out unnecesarry styles.
+ * It will also change <span style=""> into matching <b>, <i> or <u>.
+ */
+ static void recurseParse(QXmlStreamReader &reader, QXmlStreamWriter &writer, int &paragraphs,
+ const QMap< QString, QString > &opstyle, const int close = 0, bool ignore = true);
+
+ /* Iterate XML and remove close-followed-by-open.
+ * For example, make "<b>bold with </b><b><i>italic</i></b>" into
+ * "<b>bold with <i>italic</i></b>"
+ *
+ * If the input XML is or may not be valid, a "unduplicate" tag can be used as a root element,
+ * which will be dropped and not written to writer.
+ *
+ * Input XML has to be valid XML.
+ *
+ * Works on b, i, u, and a elements.
+ */
+ static bool unduplicateTags(QXmlStreamReader &reader, QXmlStreamWriter &writer);
+};
+
+#endif // XMLTOOLS_H
diff --git a/src/mumble/XboxInput.cpp b/src/mumble/XboxInput.cpp
index 2ebcbe5da..34e924076 100644
--- a/src/mumble/XboxInput.cpp
+++ b/src/mumble/XboxInput.cpp
@@ -1,69 +1,69 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
-// Use of this source code is governed by a BSD-style license
-// that can be found in the LICENSE file at the root of the
-// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-
-#include "XboxInput.h"
-
-#include <QtCore/QStringList>
-
-const QUuid XboxInput::s_XboxInputGuid = QUuid(QString::fromLatin1("ca3937e3-640c-4d9e-9ef3-903f8b4fbcab"));
-
-XboxInput::XboxInput()
- : GetState(nullptr), m_getStateFunc(nullptr), m_getStateExFunc(nullptr), m_xinputlib(nullptr), m_valid(false) {
- // Load the most suitable XInput DLL available.
- //
- // We prefer 1_4 and 1_3 over the others because they provide
- // XInputGetStateEx(), which allows us to query the state of
- // the guide button.
- //
- // See https://msdn.microsoft.com/en-us/library/windows/desktop/hh405051(v=vs.85).aspx
- // for more information.
- QStringList alternatives;
- alternatives << QLatin1String("XInput1_4.dll");
- alternatives << QLatin1String("xinput1_3.dll");
- alternatives << QLatin1String("XInput9_1_0.dll");
- alternatives << QLatin1String("xinput1_2.dll");
- alternatives << QLatin1String("xinput1_1.dll");
-
- foreach (const QString &lib, alternatives) {
- m_xinputlib = LoadLibraryW(reinterpret_cast< const wchar_t * >(lib.utf16()));
- if (m_xinputlib) {
- qWarning("XboxInput: using XInput DLL '%s'", qPrintable(lib));
- m_valid = true;
- break;
- }
- }
-
- if (!m_valid) {
- qWarning("XboxInput: no valid XInput DLL was found on the system.");
- return;
- }
-
- m_getStateFunc = reinterpret_cast< XboxInputGetStateFunc >(GetProcAddress(m_xinputlib, "XInputGetState"));
- // Undocumented XInputGetStateEx -- ordinal 100. It is available in XInput 1.3 and greater.
- // It provides access to the state of the guide button.
- // For reference, see SDL's XInput support: http://www.libsdl.org/tmp/SDL/src/core/windows/SDL_xinput.c
- m_getStateExFunc = reinterpret_cast< XboxInputGetStateFunc >(GetProcAddress(m_xinputlib, (char *) 100));
-
- if (m_getStateExFunc) {
- GetState = m_getStateExFunc;
- qWarning("XboxInput: using XInputGetStateEx() as querying function.");
- } else if (m_getStateFunc) {
- GetState = m_getStateFunc;
- qWarning("XboxInput: using XInputGetState() as querying function.");
- } else {
- m_valid = false;
- qWarning("XboxInput: no valid querying function found.");
- }
-}
-
-XboxInput::~XboxInput() {
- if (m_xinputlib) {
- FreeLibrary(m_xinputlib);
- }
-}
-
-bool XboxInput::isValid() const {
- return m_valid;
-}
+// Copyright 2015-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
+#include "XboxInput.h"
+
+#include <QtCore/QStringList>
+
+const QUuid XboxInput::s_XboxInputGuid = QUuid(QString::fromLatin1("ca3937e3-640c-4d9e-9ef3-903f8b4fbcab"));
+
+XboxInput::XboxInput()
+ : GetState(nullptr), m_getStateFunc(nullptr), m_getStateExFunc(nullptr), m_xinputlib(nullptr), m_valid(false) {
+ // Load the most suitable XInput DLL available.
+ //
+ // We prefer 1_4 and 1_3 over the others because they provide
+ // XInputGetStateEx(), which allows us to query the state of
+ // the guide button.
+ //
+ // See https://msdn.microsoft.com/en-us/library/windows/desktop/hh405051(v=vs.85).aspx
+ // for more information.
+ QStringList alternatives;
+ alternatives << QLatin1String("XInput1_4.dll");
+ alternatives << QLatin1String("xinput1_3.dll");
+ alternatives << QLatin1String("XInput9_1_0.dll");
+ alternatives << QLatin1String("xinput1_2.dll");
+ alternatives << QLatin1String("xinput1_1.dll");
+
+ foreach (const QString &lib, alternatives) {
+ m_xinputlib = LoadLibraryW(reinterpret_cast< const wchar_t * >(lib.utf16()));
+ if (m_xinputlib) {
+ qWarning("XboxInput: using XInput DLL '%s'", qPrintable(lib));
+ m_valid = true;
+ break;
+ }
+ }
+
+ if (!m_valid) {
+ qWarning("XboxInput: no valid XInput DLL was found on the system.");
+ return;
+ }
+
+ m_getStateFunc = reinterpret_cast< XboxInputGetStateFunc >(GetProcAddress(m_xinputlib, "XInputGetState"));
+ // Undocumented XInputGetStateEx -- ordinal 100. It is available in XInput 1.3 and greater.
+ // It provides access to the state of the guide button.
+ // For reference, see SDL's XInput support: http://www.libsdl.org/tmp/SDL/src/core/windows/SDL_xinput.c
+ m_getStateExFunc = reinterpret_cast< XboxInputGetStateFunc >(GetProcAddress(m_xinputlib, (char *) 100));
+
+ if (m_getStateExFunc) {
+ GetState = m_getStateExFunc;
+ qWarning("XboxInput: using XInputGetStateEx() as querying function.");
+ } else if (m_getStateFunc) {
+ GetState = m_getStateFunc;
+ qWarning("XboxInput: using XInputGetState() as querying function.");
+ } else {
+ m_valid = false;
+ qWarning("XboxInput: no valid querying function found.");
+ }
+}
+
+XboxInput::~XboxInput() {
+ if (m_xinputlib) {
+ FreeLibrary(m_xinputlib);
+ }
+}
+
+bool XboxInput::isValid() const {
+ return m_valid;
+}
diff --git a/src/mumble/XboxInput.h b/src/mumble/XboxInput.h
index 86496cd29..a511f8779 100644
--- a/src/mumble/XboxInput.h
+++ b/src/mumble/XboxInput.h
@@ -1,84 +1,84 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
-// Use of this source code is governed by a BSD-style license
-// that can be found in the LICENSE file at the root of the
-// Mumble source tree or at <https://www.mumble.info/LICENSE>.
-
-#ifndef MUMBLE_MUMBLE_XBOXINPUT_H_
-#define MUMBLE_MUMBLE_XBOXINPUT_H_
-
-#include "win.h"
-
-#include <QUuid>
-
-#include <stdint.h>
-
-/// XBOXINPUT_MAX_DEVICES defines the maximum
-/// number of devices that can be connected
-/// to the system at once.
-///
-/// In typical operation, one calls GetState()
-/// in a loop bounded by XBOXINPUT_MAX_DEVICES.
-#define XBOXINPUT_MAX_DEVICES 4
-
-/// XBOXINPUT_TRIGGER_THRESHOLD defines the thresold
-/// that an analog trigger (leftTrigger and
-/// rightTrigger of XboxInputState) must have exceeded
-/// in order to count as a button press.
-#define XBOXINPUT_TRIGGER_THRESHOLD 30
-
-/// XboxInputState represents the state of an
-/// Xbox controller as returned by GetState().
-struct XboxInputState {
- uint32_t packetNumber;
- uint16_t buttons;
- uint8_t leftTrigger;
- uint8_t rightTrigger;
- uint16_t leftThumbX;
- uint16_t leftThumbY;
- uint16_t rightThumbY;
- uint16_t rightThumbX;
- uint32_t paddingReserved; // Required for XInputGetStateEx. Not required for XInputGetState.
-};
-
-typedef uint32_t(WINAPI *XboxInputGetStateFunc)(uint32_t deviceIndex, XboxInputState *state);
-
-/// XboxInput is an XInput wrapper that dynamically loads an appropriate
-/// xinput*.dll on construction and provides access to its GetState(Ex)
-/// function.
-class XboxInput {
-public:
- XboxInput();
- virtual ~XboxInput();
-
- /// s_XboxInputGuid is the GUID used by GlobalShortcut_win
- /// to distinguish XboxInputLibrary's events from other event
- /// soures.
- static const QUuid s_XboxInputGuid;
-
- /// isValid determines wheter the XboxInputLibrary
- /// is usable.
- bool isValid() const;
-
- /// Query the state of the Xbox controller at deviceIndex.
- /// If the function succeeds, it returns 0 (Windows's ERROR_SUCCESS).
- /// If no device is connected, it returns 0x48F (Windows's ERROR_DEVICE_NOT_CONNECTED).
- XboxInputGetStateFunc GetState;
-
-protected:
- /// m_getStateFunc represents XInputGetState from the XInput DLL.
- XboxInputGetStateFunc m_getStateFunc;
-
- /// m_getStateFuncEx represents XInputGetStateEx, which is optionally
- /// available in the XInput DLL.
- XboxInputGetStateFunc m_getStateExFunc;
-
- /// m_xinputlib is the handle to the XInput DLL as returned by
- /// LoadLibrary.
- HMODULE m_xinputlib;
-
- /// m_valid determines whether or not the XboxInputLibrary
- /// is valid for use.
- bool m_valid;
-};
-
-#endif
+// Copyright 2015-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
+#ifndef MUMBLE_MUMBLE_XBOXINPUT_H_
+#define MUMBLE_MUMBLE_XBOXINPUT_H_
+
+#include "win.h"
+
+#include <QUuid>
+
+#include <stdint.h>
+
+/// XBOXINPUT_MAX_DEVICES defines the maximum
+/// number of devices that can be connected
+/// to the system at once.
+///
+/// In typical operation, one calls GetState()
+/// in a loop bounded by XBOXINPUT_MAX_DEVICES.
+#define XBOXINPUT_MAX_DEVICES 4
+
+/// XBOXINPUT_TRIGGER_THRESHOLD defines the thresold
+/// that an analog trigger (leftTrigger and
+/// rightTrigger of XboxInputState) must have exceeded
+/// in order to count as a button press.
+#define XBOXINPUT_TRIGGER_THRESHOLD 30
+
+/// XboxInputState represents the state of an
+/// Xbox controller as returned by GetState().
+struct XboxInputState {
+ uint32_t packetNumber;
+ uint16_t buttons;
+ uint8_t leftTrigger;
+ uint8_t rightTrigger;
+ uint16_t leftThumbX;
+ uint16_t leftThumbY;
+ uint16_t rightThumbY;
+ uint16_t rightThumbX;
+ uint32_t paddingReserved; // Required for XInputGetStateEx. Not required for XInputGetState.
+};
+
+typedef uint32_t(WINAPI *XboxInputGetStateFunc)(uint32_t deviceIndex, XboxInputState *state);
+
+/// XboxInput is an XInput wrapper that dynamically loads an appropriate
+/// xinput*.dll on construction and provides access to its GetState(Ex)
+/// function.
+class XboxInput {
+public:
+ XboxInput();
+ virtual ~XboxInput();
+
+ /// s_XboxInputGuid is the GUID used by GlobalShortcut_win
+ /// to distinguish XboxInputLibrary's events from other event
+ /// soures.
+ static const QUuid s_XboxInputGuid;
+
+ /// isValid determines wheter the XboxInputLibrary
+ /// is usable.
+ bool isValid() const;
+
+ /// Query the state of the Xbox controller at deviceIndex.
+ /// If the function succeeds, it returns 0 (Windows's ERROR_SUCCESS).
+ /// If no device is connected, it returns 0x48F (Windows's ERROR_DEVICE_NOT_CONNECTED).
+ XboxInputGetStateFunc GetState;
+
+protected:
+ /// m_getStateFunc represents XInputGetState from the XInput DLL.
+ XboxInputGetStateFunc m_getStateFunc;
+
+ /// m_getStateFuncEx represents XInputGetStateEx, which is optionally
+ /// available in the XInput DLL.
+ XboxInputGetStateFunc m_getStateExFunc;
+
+ /// m_xinputlib is the handle to the XInput DLL as returned by
+ /// LoadLibrary.
+ HMODULE m_xinputlib;
+
+ /// m_valid determines whether or not the XboxInputLibrary
+ /// is valid for use.
+ bool m_valid;
+};
+
+#endif
diff --git a/src/mumble/Zeroconf.cpp b/src/mumble/Zeroconf.cpp
index ebefcdbe7..10bdf4a2f 100644
--- a/src/mumble/Zeroconf.cpp
+++ b/src/mumble/Zeroconf.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/Zeroconf.h b/src/mumble/Zeroconf.h
index 87506c3b3..441c324ad 100644
--- a/src/mumble/Zeroconf.h
+++ b/src/mumble/Zeroconf.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/main.cpp b/src/mumble/main.cpp
index d51befa93..0801d9b3b 100644
--- a/src/mumble/main.cpp
+++ b/src/mumble/main.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/mumble_pch.hpp b/src/mumble/mumble_pch.hpp
index 874e6d50a..6a8061895 100644
--- a/src/mumble/mumble_pch.hpp
+++ b/src/mumble/mumble_pch.hpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2008-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/os_early_win.cpp b/src/mumble/os_early_win.cpp
index 87c1e2d71..975bf154b 100644
--- a/src/mumble/os_early_win.cpp
+++ b/src/mumble/os_early_win.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2016-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/os_macx.mm b/src/mumble/os_macx.mm
index 15f55bd47..cab6c4c83 100644
--- a/src/mumble/os_macx.mm
+++ b/src/mumble/os_macx.mm
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2008-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/os_unix.cpp b/src/mumble/os_unix.cpp
index 504bce4f3..a8fadb3b1 100644
--- a/src/mumble/os_unix.cpp
+++ b/src/mumble/os_unix.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2016-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/os_win.cpp b/src/mumble/os_win.cpp
index ff7ebfa45..a148b291a 100644
--- a/src/mumble/os_win.cpp
+++ b/src/mumble/os_win.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2006-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/widgets/CompletablePage.cpp b/src/mumble/widgets/CompletablePage.cpp
index 350b56cbf..18edb7e42 100644
--- a/src/mumble/widgets/CompletablePage.cpp
+++ b/src/mumble/widgets/CompletablePage.cpp
@@ -1,4 +1,4 @@
-// Copyright 2021 The Mumble Developers. All rights reserved.
+// Copyright 2016-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/widgets/MUComboBox.cpp b/src/mumble/widgets/MUComboBox.cpp
index 4b35da394..682a4e653 100644
--- a/src/mumble/widgets/MUComboBox.cpp
+++ b/src/mumble/widgets/MUComboBox.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2016-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/widgets/MUComboBox.h b/src/mumble/widgets/MUComboBox.h
index c25d6fff0..583467712 100644
--- a/src/mumble/widgets/MUComboBox.h
+++ b/src/mumble/widgets/MUComboBox.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/widgets/MultiStyleWidgetWrapper.cpp b/src/mumble/widgets/MultiStyleWidgetWrapper.cpp
index fd7795cbf..288c094b9 100644
--- a/src/mumble/widgets/MultiStyleWidgetWrapper.cpp
+++ b/src/mumble/widgets/MultiStyleWidgetWrapper.cpp
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble/widgets/MultiStyleWidgetWrapper.h b/src/mumble/widgets/MultiStyleWidgetWrapper.h
index 3ca40af5e..1cdfa4fdd 100644
--- a/src/mumble/widgets/MultiStyleWidgetWrapper.h
+++ b/src/mumble/widgets/MultiStyleWidgetWrapper.h
@@ -1,4 +1,4 @@
-// Copyright 2020 The Mumble Developers. All rights reserved.
+// Copyright 2020-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble_exe/Overlay.cpp b/src/mumble_exe/Overlay.cpp
index d47b3247a..b7169e824 100644
--- a/src/mumble_exe/Overlay.cpp
+++ b/src/mumble_exe/Overlay.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2008-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/mumble_exe/mumble_exe.cpp b/src/mumble_exe/mumble_exe.cpp
index 22b23df5d..c22ae2d0c 100644
--- a/src/mumble_exe/mumble_exe.cpp
+++ b/src/mumble_exe/mumble_exe.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2013-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/About.cpp b/src/murmur/About.cpp
index 1906af930..456ecbbba 100644
--- a/src/murmur/About.cpp
+++ b/src/murmur/About.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/About.h b/src/murmur/About.h
index f3efa5a53..4bc141774 100644
--- a/src/murmur/About.h
+++ b/src/murmur/About.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/Cert.cpp b/src/murmur/Cert.cpp
index cb6bf71bc..12d68c4e0 100644
--- a/src/murmur/Cert.cpp
+++ b/src/murmur/Cert.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/DBus.cpp b/src/murmur/DBus.cpp
index e08cf537f..a870b2f8e 100644
--- a/src/murmur/DBus.cpp
+++ b/src/murmur/DBus.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/DBus.h b/src/murmur/DBus.h
index 210611d8a..bffdecd9d 100644
--- a/src/murmur/DBus.h
+++ b/src/murmur/DBus.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/Messages.cpp b/src/murmur/Messages.cpp
index a073a0933..9e94fc37f 100644
--- a/src/murmur/Messages.cpp
+++ b/src/murmur/Messages.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/Meta.cpp b/src/murmur/Meta.cpp
index a87044a1e..d04d297de 100644
--- a/src/murmur/Meta.cpp
+++ b/src/murmur/Meta.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/Meta.h b/src/murmur/Meta.h
index 4f98bc87e..5426e46ef 100644
--- a/src/murmur/Meta.h
+++ b/src/murmur/Meta.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/Murmur.ice b/src/murmur/Murmur.ice
index ce1dd1230..65393e863 100644
--- a/src/murmur/Murmur.ice
+++ b/src/murmur/Murmur.ice
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2008-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/MurmurGRPCImpl.cpp b/src/murmur/MurmurGRPCImpl.cpp
index 3299ddc94..37ea5c550 100644
--- a/src/murmur/MurmurGRPCImpl.cpp
+++ b/src/murmur/MurmurGRPCImpl.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2016-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/MurmurGRPCImpl.h b/src/murmur/MurmurGRPCImpl.h
index b23348d6d..dc7edd716 100644
--- a/src/murmur/MurmurGRPCImpl.h
+++ b/src/murmur/MurmurGRPCImpl.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/MurmurI.h b/src/murmur/MurmurI.h
index ddca19fee..be17deddc 100644
--- a/src/murmur/MurmurI.h
+++ b/src/murmur/MurmurI.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2008-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/MurmurIce.cpp b/src/murmur/MurmurIce.cpp
index 4bc5a4bd5..a9525a86b 100644
--- a/src/murmur/MurmurIce.cpp
+++ b/src/murmur/MurmurIce.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2008-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/MurmurIce.h b/src/murmur/MurmurIce.h
index 9d1402820..c14a7b5f5 100644
--- a/src/murmur/MurmurIce.h
+++ b/src/murmur/MurmurIce.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2008-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/MurmurIceWrapper.cpp b/src/murmur/MurmurIceWrapper.cpp
index 3b442ecbb..7d6a5ae3a 100644
--- a/src/murmur/MurmurIceWrapper.cpp
+++ b/src/murmur/MurmurIceWrapper.cpp
@@ -1,3 +1,8 @@
+// Copyright 2008-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
// This file was auto-generated by scripts/generateIceWrapper.py on 2020-09-12 -- DO NOT EDIT MANUALLY!
#include <boost/bind/bind.hpp>
diff --git a/src/murmur/MurmurRPC.proto b/src/murmur/MurmurRPC.proto
index f40fe53a4..a490e6008 100644
--- a/src/murmur/MurmurRPC.proto
+++ b/src/murmur/MurmurRPC.proto
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2016-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/PBKDF2.cpp b/src/murmur/PBKDF2.cpp
index f8fb895d2..e1038b6b2 100644
--- a/src/murmur/PBKDF2.cpp
+++ b/src/murmur/PBKDF2.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2014-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/PBKDF2.h b/src/murmur/PBKDF2.h
index 7a6be0606..995766e08 100644
--- a/src/murmur/PBKDF2.h
+++ b/src/murmur/PBKDF2.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2014-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/RPC.cpp b/src/murmur/RPC.cpp
index 0d0163744..d6f9e74ec 100644
--- a/src/murmur/RPC.cpp
+++ b/src/murmur/RPC.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2008-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/Register.cpp b/src/murmur/Register.cpp
index bf05d3e1c..06cee5b21 100644
--- a/src/murmur/Register.cpp
+++ b/src/murmur/Register.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/Server.cpp b/src/murmur/Server.cpp
index 4122e975b..7745a9867 100644
--- a/src/murmur/Server.cpp
+++ b/src/murmur/Server.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/Server.h b/src/murmur/Server.h
index eaf05d898..17418fd55 100644
--- a/src/murmur/Server.h
+++ b/src/murmur/Server.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/ServerDB.cpp b/src/murmur/ServerDB.cpp
index 58316d699..e415910a5 100644
--- a/src/murmur/ServerDB.cpp
+++ b/src/murmur/ServerDB.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/ServerDB.h b/src/murmur/ServerDB.h
index 2b05b0324..2b470a8bf 100644
--- a/src/murmur/ServerDB.h
+++ b/src/murmur/ServerDB.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/ServerUser.cpp b/src/murmur/ServerUser.cpp
index b1ee0e27f..f2dac8abb 100644
--- a/src/murmur/ServerUser.cpp
+++ b/src/murmur/ServerUser.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2010-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/ServerUser.h b/src/murmur/ServerUser.h
index c5ab6dda1..fd40071ca 100644
--- a/src/murmur/ServerUser.h
+++ b/src/murmur/ServerUser.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2010-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/Tray.cpp b/src/murmur/Tray.cpp
index 8fed8a85e..977c420bf 100644
--- a/src/murmur/Tray.cpp
+++ b/src/murmur/Tray.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/Tray.h b/src/murmur/Tray.h
index 43dc5881a..6fe06e2cd 100644
--- a/src/murmur/Tray.h
+++ b/src/murmur/Tray.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/UnixMurmur.cpp b/src/murmur/UnixMurmur.cpp
index 68159177e..09ebd6cde 100644
--- a/src/murmur/UnixMurmur.cpp
+++ b/src/murmur/UnixMurmur.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/UnixMurmur.h b/src/murmur/UnixMurmur.h
index faf63d318..3f69aad86 100644
--- a/src/murmur/UnixMurmur.h
+++ b/src/murmur/UnixMurmur.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/Zeroconf.cpp b/src/murmur/Zeroconf.cpp
index 4727c592e..01c455928 100644
--- a/src/murmur/Zeroconf.cpp
+++ b/src/murmur/Zeroconf.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/Zeroconf.h b/src/murmur/Zeroconf.h
index 4dd953ed5..0d0487f9f 100644
--- a/src/murmur/Zeroconf.h
+++ b/src/murmur/Zeroconf.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/main.cpp b/src/murmur/main.cpp
index 1aff85a40..541c959ca 100644
--- a/src/murmur/main.cpp
+++ b/src/murmur/main.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2005-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur/murmur_pch.h b/src/murmur/murmur_pch.h
index 8eab1b459..b900346a0 100644
--- a/src/murmur/murmur_pch.h
+++ b/src/murmur/murmur_pch.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2006-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/murmur_grpcwrapper_protoc_plugin/main.cpp b/src/murmur_grpcwrapper_protoc_plugin/main.cpp
index 9d172524c..ea6e19112 100644
--- a/src/murmur_grpcwrapper_protoc_plugin/main.cpp
+++ b/src/murmur_grpcwrapper_protoc_plugin/main.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2016-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/tests/Benchmark.cpp b/src/tests/Benchmark.cpp
index 216d266ea..251923ad4 100644
--- a/src/tests/Benchmark.cpp
+++ b/src/tests/Benchmark.cpp
@@ -1,3 +1,8 @@
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
/**
* Provided a target address spawns a specified number of senders/speakers,
* UDP-listeners and TCP-listeners.
diff --git a/src/tests/Collections.cpp b/src/tests/Collections.cpp
index 30a5b3930..ef6a5228d 100644
--- a/src/tests/Collections.cpp
+++ b/src/tests/Collections.cpp
@@ -1,3 +1,8 @@
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
/**
* Benchmark of storage mechanisms; array, vector, Qt collections.
*/
diff --git a/src/tests/Emit.cpp b/src/tests/Emit.cpp
index 81417573c..8250bf6a9 100644
--- a/src/tests/Emit.cpp
+++ b/src/tests/Emit.cpp
@@ -1,3 +1,8 @@
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
#include "Timer.h"
#include <QtCore>
#include <boost/bind.hpp>
diff --git a/src/tests/Hash.cpp b/src/tests/Hash.cpp
index a82408177..6f4908b04 100644
--- a/src/tests/Hash.cpp
+++ b/src/tests/Hash.cpp
@@ -1,3 +1,8 @@
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
#include <QtCore>
#include "Timer.h"
diff --git a/src/tests/Lock.cpp b/src/tests/Lock.cpp
index 48edf602b..26897f5cb 100644
--- a/src/tests/Lock.cpp
+++ b/src/tests/Lock.cpp
@@ -1,3 +1,8 @@
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
/**
* Benchmark of different locking mechanisms; QMutex, PosixMutex, Silly
* (int-flag).
diff --git a/src/tests/OverlayTest.cpp b/src/tests/OverlayTest.cpp
index 56152c6c3..289d91525 100644
--- a/src/tests/OverlayTest.cpp
+++ b/src/tests/OverlayTest.cpp
@@ -1,3 +1,8 @@
+// Copyright 2010-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
/**
* Overlay drawing test application.
*/
diff --git a/src/tests/ProtoBuf.cpp b/src/tests/ProtoBuf.cpp
index faa47081c..efa1cc0c8 100644
--- a/src/tests/ProtoBuf.cpp
+++ b/src/tests/ProtoBuf.cpp
@@ -1,3 +1,8 @@
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
/**
* Protobuf binding benchmarks (serialisation, deserialization, ...).
*/
diff --git a/src/tests/ProtoBuf.proto b/src/tests/ProtoBuf.proto
index 2a178fc49..2052ab76b 100644
--- a/src/tests/ProtoBuf.proto
+++ b/src/tests/ProtoBuf.proto
@@ -1,3 +1,8 @@
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
option optimize_for = SPEED;
message Authenticate {
diff --git a/src/tests/Resample.cpp b/src/tests/Resample.cpp
index 909b62554..cb0c72d90 100644
--- a/src/tests/Resample.cpp
+++ b/src/tests/Resample.cpp
@@ -1,3 +1,8 @@
+// Copyright 2009-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
/**
* Speex resampling test / information.
*/
diff --git a/src/tests/TestCrypt/TestCrypt.cpp b/src/tests/TestCrypt/TestCrypt.cpp
index 6954e0ce2..349acc034 100644
--- a/src/tests/TestCrypt/TestCrypt.cpp
+++ b/src/tests/TestCrypt/TestCrypt.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/tests/TestCryptographicHash/TestCryptographicHash.cpp b/src/tests/TestCryptographicHash/TestCryptographicHash.cpp
index c1bfce51a..555ba7ed9 100644
--- a/src/tests/TestCryptographicHash/TestCryptographicHash.cpp
+++ b/src/tests/TestCryptographicHash/TestCryptographicHash.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/tests/TestCryptographicRandom/TestCryptographicRandom.cpp b/src/tests/TestCryptographicRandom/TestCryptographicRandom.cpp
index 1c6dcd1d7..6183093b8 100644
--- a/src/tests/TestCryptographicRandom/TestCryptographicRandom.cpp
+++ b/src/tests/TestCryptographicRandom/TestCryptographicRandom.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/tests/TestFFDHE/TestFFDHE.cpp b/src/tests/TestFFDHE/TestFFDHE.cpp
index 926963ceb..da7f6fa6f 100644
--- a/src/tests/TestFFDHE/TestFFDHE.cpp
+++ b/src/tests/TestFFDHE/TestFFDHE.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/tests/TestLink.cpp b/src/tests/TestLink.cpp
index 327f00cb6..10f1f6a28 100644
--- a/src/tests/TestLink.cpp
+++ b/src/tests/TestLink.cpp
@@ -1,3 +1,8 @@
+// Copyright 2008-2021 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
/**
* Test-/Exampleprogram which links against the Mumble link plugin to send
* positional data.
diff --git a/src/tests/TestPacketDataStream/TestPacketDataStream.cpp b/src/tests/TestPacketDataStream/TestPacketDataStream.cpp
index 94ea14ab4..87506309f 100644
--- a/src/tests/TestPacketDataStream/TestPacketDataStream.cpp
+++ b/src/tests/TestPacketDataStream/TestPacketDataStream.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/tests/TestPasswordGenerator/TestPasswordGenerator.cpp b/src/tests/TestPasswordGenerator/TestPasswordGenerator.cpp
index 6d7e80291..bc9bd1ed0 100644
--- a/src/tests/TestPasswordGenerator/TestPasswordGenerator.cpp
+++ b/src/tests/TestPasswordGenerator/TestPasswordGenerator.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/tests/TestSSLLocks/TestSSLLocks.cpp b/src/tests/TestSSLLocks/TestSSLLocks.cpp
index 4aa430de0..a2c00c8d5 100644
--- a/src/tests/TestSSLLocks/TestSSLLocks.cpp
+++ b/src/tests/TestSSLLocks/TestSSLLocks.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/tests/TestSelfSignedCertificate/TestSelfSignedCertificate.cpp b/src/tests/TestSelfSignedCertificate/TestSelfSignedCertificate.cpp
index b65d15f23..8bac45b34 100644
--- a/src/tests/TestSelfSignedCertificate/TestSelfSignedCertificate.cpp
+++ b/src/tests/TestSelfSignedCertificate/TestSelfSignedCertificate.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/tests/TestServerAddress/TestServerAddress.cpp b/src/tests/TestServerAddress/TestServerAddress.cpp
index 3fb5656e9..e5e7f78c8 100644
--- a/src/tests/TestServerAddress/TestServerAddress.cpp
+++ b/src/tests/TestServerAddress/TestServerAddress.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/tests/TestServerResolver/TestServerResolver.cpp b/src/tests/TestServerResolver/TestServerResolver.cpp
index d13619860..464ff5b35 100644
--- a/src/tests/TestServerResolver/TestServerResolver.cpp
+++ b/src/tests/TestServerResolver/TestServerResolver.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/tests/TestStdAbs/TestStdAbs.cpp b/src/tests/TestStdAbs/TestStdAbs.cpp
index 1f572c3eb..378045d88 100644
--- a/src/tests/TestStdAbs/TestStdAbs.cpp
+++ b/src/tests/TestStdAbs/TestStdAbs.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/tests/TestTimer/TestTimer.cpp b/src/tests/TestTimer/TestTimer.cpp
index 08dfb984f..848fb03a1 100644
--- a/src/tests/TestTimer/TestTimer.cpp
+++ b/src/tests/TestTimer/TestTimer.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2007-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/tests/TestUnresolvedServerAddress/TestUnresolvedServerAddress.cpp b/src/tests/TestUnresolvedServerAddress/TestUnresolvedServerAddress.cpp
index 4ec0540c8..e3db7a06f 100644
--- a/src/tests/TestUnresolvedServerAddress/TestUnresolvedServerAddress.cpp
+++ b/src/tests/TestUnresolvedServerAddress/TestUnresolvedServerAddress.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/tests/TestXMLTools/TestXMLTools.cpp b/src/tests/TestXMLTools/TestXMLTools.cpp
index 535cae0a7..de4e8b588 100644
--- a/src/tests/TestXMLTools/TestXMLTools.cpp
+++ b/src/tests/TestXMLTools/TestXMLTools.cpp
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2017-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
diff --git a/src/win.h b/src/win.h
index 506dd076d..715028364 100644
--- a/src/win.h
+++ b/src/win.h
@@ -1,4 +1,4 @@
-// Copyright 2005-2020 The Mumble Developers. All rights reserved.
+// Copyright 2019-2021 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.