Commit Graph

4261 Commits

Author SHA1 Message Date
Mikkel Krautz
3cbccc5ffd Merge PR #2760: Update QSslDiffieHellmanParameters API calls to final Qt 5.8 API 2017-01-26 13:17:54 +01:00
Mikkel Krautz
cc4d32fda5 Merge PR #2774: WASAPI.h: Include missing header for MinGW on Linux 2017-01-25 23:11:27 +01:00
Davide Beatrici
d179468469
WASAPI.h: Include missing header for MinGW on Linux
This fixes an error when compiling with MinGW on Linux.
error: 'PKEY_Device_FriendlyName' was not declared in this scope
2017-01-25 22:14:46 +01:00
Mikkel Krautz
8fc69fe38c Merge PR #2772: WASAPI.h: Change header name capitalization for MinGW on Linux 2017-01-25 20:42:26 +01:00
Davide Beatrici
28b9b1d372
WASAPI.h: Change header name capitalization for MinGW on Linux
This fixes a problem with MinGW on Linux where it can't find "Audiopolicy.h".
2017-01-25 18:49:20 +01:00
Mikkel Krautz
cda06e9434 Merge PR #2770: mumble_pch.hpp: Change header name capitalization for MinGW on Linux 2017-01-25 16:35:16 +01:00
Davide Beatrici
7b31e4fe5b
mumble_pch.hpp: Change header name capitalization for MinGW on Linux
This fixes a problem with MinGW on Linux where it can't find "Softpub.h" and "Dbt.h".
2017-01-25 15:23:40 +01:00
Mikkel Krautz
c3e290552d Merge PR #2753: Murmur: set detach=false for -limits (implies -fg). 2017-01-24 20:47:20 +01:00
Mikkel Krautz
460f550287 Merge PR #2744: Revert PR 2674 and document audio backend initialization and teardown 2017-01-24 20:46:53 +01:00
Mikkel Krautz
50be180392 Merge PR #2767: Transifex translation update 2017-01-24 00:30:11 +01:00
Mikkel Krautz
3e777babe8 Merge PR #2768: mumble.pro: use forward slash for GENQRC also on Windows 2017-01-24 00:27:16 +01:00
Mikkel Krautz
f542989921 Merge PR #2769: Use forward slash for paths in .rc files 2017-01-24 00:26:31 +01:00
Davide Beatrici
1ba426957d
Use forward slash for paths in .rc files
This fixes a problem with MinGW on Linux where it can't find the icon file, because of the backslashes.
Windows handles the path correctly with both methods.
2017-01-23 20:34:34 +01:00
Davide Beatrici
3bc58e8f62
mumble.pro: use forward slash for GENQRC also on Windows
This fixes a problem with MinGW on Linux where the "win32" block is triggered and the two backslashes are used, resulting in a path without slashes.
Python on Windows handles the path correctly with both methods.
2017-01-23 19:53:53 +01:00
MumbleTransifexBot
7455a007af Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 41 languages
2017-01-23 01:27:37 +00:00
Mikkel Krautz
32030edb4a MainWindow: don't include 'Hide Mumble' menu item on macOS.
It is unnecessary (the system has window-hiding built-in) and
can get us in a state where the window can't be shown again.

Easier just to leave it out.
2017-01-22 22:44:25 +01:00
Mikkel Krautz
bf90fadd91 Merge PR #2747: Allow hiding Muble from the menu without minimizing 2017-01-22 22:39:30 +01:00
Mikkel Krautz
44790f6f66 murmur.pro: remove Mumble buildenv requirement for QSslDiffieHellmanParameters.
The API of QSslDiffieHellmanParameters is frozen and will be available
in Qt 5.8.0.

Remove the safety-net of only allowing QSslDiffieHellmanParameters for
Mumble build environments.
2017-01-22 22:07:25 +01:00
Mikkel Krautz
645603771d Murmur: use final Qt 5.8 API for QSslDiffieHellmanParameters. 2017-01-22 22:05:52 +01:00
Mikkel Krautz
0e898da3f2 Murmur: set detach=false for -limits (implies -fg).
Without this, we delay the log messages from -limits
until we exit with a qFatal.

This isn't good, because -limits *can* fail in ways that
cause it to get stuck. One example of this is when Murmur
runs out of memory. This typically happens on 32-bit systems
during the test that counts the number of threads Murmur can
spawn, given the system's resource limits.

One such instance is if we reach the virtual memory limit on
i386. Then, QThread::start() will try to call pthread_create(),
which fails with EACCESS. (Insufficient resources, system-imposed
or otherwise). Qt doesn't handle this error situation, but
instead calls qWarning to make the user aware.

Without this change, we would never present this warning to
the user, because Murmur would be stuck.

With this change, the user can at least see the warning, to
know something has gone wrong.

Fixes mumble-voip/mumble#2752
2017-01-22 11:09:21 +01:00
Piratonym
74572fd66e Allow hiding Muble from the menu without minimizing 2017-01-21 09:49:59 +01:00
Mikkel Krautz
70573da8ff Remove long-form BSD-license from GKey.cpp/.h.
This is done with the permission of Jordan J Klassen (forivall).

https://github.com/mumble-voip/mumble/issues/2739#issuecomment-274199770:
> Yes, I give my permission to remove the long form BSD Licesnse
2017-01-20 23:46:27 +01:00
Mikkel Krautz
89036d5278 Audio, AudioInput, AudioOutput: add proper documentation about AudioInput and AudioOutput construction and destruction.
This commit documents the intent behind Audio::stopInput(), Audio::stopOutput() and Audio::stop().
Namely that the functions are coded the way they are to guarantee deterministic destruction of
AudioInput/AudioOutput on the main thread.

It also adds documentation to the AudioInput and AudioOutput constructors and destructors that
spells out the guarantee that they can only ever be called on the main thread, and only by
the Audio::startInput(), Audio::startOutput(), Audio::start(), Audio::stopInput(), Audio::stopOutput()
and Audio::stop() methods.
2017-01-20 22:29:20 +01:00
Mikkel Krautz
a4743f3c63 Revert PR #2674: Mumble: convert AudioInputPtr and AudioOutputPtr to use QSharedPointer instead of boost::shared_ptr.
This reverts PR #2674. That PR has a bug in stop(), stopInput() and stopOutput().

Specifically, the original code was structured such that destruction of
the AudioInput and AudioOutput objects would happen inside any of the stop methods.
However, the new implementations of stop(), stopInput() and stopOutput() in PR #2674
could cause the AudioInput and AudioOutput objects to be destroyed at any site that
takes a copy of g.ao or g.ai.

This happened in the PulseAudio backend. The AudioInput destructor would be called
while holding the PulseAudio mainloop lock. The destructor of the Pulse backend's
AudioInput also, tries to take the PulseAudio mainloop lock, causing an abort() to
happen.

Let us revert PR #2674 for now. There is no obvious way to implement the controlled
destruction behavior of the boost::shared_ptr with QSharedPointer. We also don't have
any code in Mumble that requires the audio shared pointers to be atomic (which was the
reason for the PR in the first place).

Fixes mumble-voip/mumble#2745
2017-01-20 22:29:06 +01:00
Mikkel Krautz
4fe07a5076 Merge PR #2742: Mumble.proto: explicitly use proto2 syntax. 2017-01-20 21:44:03 +01:00
Mikkel Krautz
4e6d3bfb18 Mumble.proto: explicitly use proto2 syntax.
The protoc compiler in protobuf 3.x.y complains (warns) about
Mumble.proto not explicitly specifying a syntax. This commit
fixes that.

The syntax=XXX declaration is mentioned in language spec for
proto 2, so this should still work for protobuf 2.6, etc.
See https://developers.google.com/protocol-buffers/docs/reference/proto2-spec
2017-01-20 21:42:45 +01:00
Mikkel Krautz
4d256ca675 CryptState: introduce AES_KEY_SIZE_* constants.
This change modifies CryptState to use AES_KEY_SIZE_BYTES and
AES_KEY_SIZE_BITS constants instead of using AES_BLOCK_SIZE.

This cleans up the code, making it easier to read and understand.
The key size is a distinct concept from the block size, even though
Mumble only offiiclaly supports OCB-AES128.

This also allows users of custom builds to bump their key size to
256-bit, if they desire. Of course, such builds will not be compatible
with any existing Mumble server, because neither Mumble nor Murmur
currently supports negotiating the crypto mode used for voice packets.
2017-01-20 00:04:07 +01:00
MumbleTransifexBot
56e549ca44 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 41 languages
2017-01-17 01:27:36 +00:00
MumbleTransifexBot
9d4a9919b5 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 41 languages
2017-01-11 01:27:36 +00:00
Mikkel Krautz
73fe4578bc Merge PR #2724: Update tree copyrights to 2017. 2017-01-08 21:09:11 +01:00
Mikkel Krautz
91ebb8b0b5 Update tree copyrights to 2017. 2017-01-08 21:05:57 +01:00
MumbleTransifexBot
ddbde7b7be Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 41 languages
2017-01-08 01:27:35 +00:00
Mikkel Krautz
ddd476499d Merge PR #2709: Add setting to configure user dragging 2016-12-23 09:25:27 +01:00
Lari Tikkanen
6366ff4af0 Default case for user dragging is unneeded 2016-12-23 08:27:01 +02:00
Lari Tikkanen
7586175ba6 Use ChannelDrag enum for UserDrag 2016-12-23 07:01:49 +02:00
Lari Tikkanen
7e6c415ae4 Implement configuring user dragging
This allows the user dragging mechanic to be configured the same way
channel dragging is configured.
2016-12-23 07:01:44 +02:00
MumbleTransifexBot
714b0d5df1 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 41 languages
2016-12-22 01:27:36 +00:00
MumbleTransifexBot
71a1675a3c Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 41 languages
2016-12-16 01:27:36 +00:00
MumbleTransifexBot
12e797600d Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 41 languages
2016-12-15 01:27:36 +00:00
MumbleTransifexBot
a267c8dfdf Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 41 languages
2016-12-14 01:27:37 +00:00
MumbleTransifexBot
e367c8c9fe Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 41 languages
2016-12-13 01:27:35 +00:00
MumbleTransifexBot
36571cc5b9 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 41 languages
2016-12-12 01:27:36 +00:00
MumbleTransifexBot
cd37e02c6d Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 41 languages
2016-12-11 01:27:35 +00:00
Mikkel Krautz
74f5930e1c *.pro: use 'linux*' instead of 'linux' for Linux conditionals.
This makes the check Qt 4-compatible.
2016-12-08 22:41:24 +01:00
Mikkel Krautz
704069eb37 DeveloperConsole: drop QPointer::clear() call. It is unnecessary, and the clear() method is Qt 5-only. 2016-12-08 22:40:11 +01:00
Mikkel Krautz
f62af9a91c Add Developer Console to Mumble, where users can inspect Mumble's log output.
We already log to Windows's debug log, but this is a little more
accessible for regular users and developers alike. (Sometimes, you don't
have DebugView handy...)
2016-12-04 18:56:27 +01:00
Mikkel Krautz
ab3589731b Mumble: add os_unix.cpp, with LogEmitter support. 2016-12-04 18:56:27 +01:00
Mikkel Krautz
a45bf7352d os_macx.mm: add LogEmitter support. 2016-12-04 18:56:27 +01:00
Mikkel Krautz
967e93e17f Add LogEmitter to Mumble and use it in os_win.cpp.
This is in preparation for the Developer Console.
2016-12-04 18:56:27 +01:00
Mikkel Krautz
cd8f6b75e0 Refactor LogEmitter from Murmur into its own file in src/.
It's a natural refactoring and it'd be nice to be able to
use LogEmitter in Mumble as well.
2016-12-04 13:26:46 +01:00