Commit Graph

3503 Commits

Author SHA1 Message Date
Mikkel Krautz
18c359f82a GlobalShortcut_unix: disable evdev by default.
...and gate it behind the hidden 'shortuct/linux/evdev/enable'
config option.

We don't actively want people to use evdev unless
they really have to (as it requires people to change the
permissions of their keyboard device node to be quite wide-open
to be useful).

Our evdev code has also caused problems for users of
Yubikeys and other gadgets that identify themselves as
keyboards. Those problems should be a thing of the past
with this commit.

Fixes #1145
2015-03-10 15:14:42 +01:00
Mikkel Krautz
6c96ab468f Use 'QSsl::TlsV1_0' on Qt 5.0 through 5.3 and allow 'QSsl::SecureProtocols' to be used on 5.4.X.
Some configurations of Qt 5.X explicitly disable deprecated
parts of the API, such as 'QSsl::TlsV1'. To allow Mumble to build
on those configurations, we have to use 'QSsl::TlsV1_0' instead,
like we did in the prior to 71e522f4c4.

This commit also fixes an issue where QSsl::SecureProtocols was only
selected on the base 5.4.0 release, and not subsequent patch releases.
2015-03-19 14:45:53 +01:00
Mikkel Krautz
71e522f4c4 Use QSsl::TlsV1_0OrLater on Qt 5.5 or later, and QSsl::SecureProtocols on Qt 5.4.
We upstreamed a patch for adding the self-explanatory
QSsl::TlsV1_0OrLater, QSsl::TlsV1_1OrLater and QSsl::TlsV1_2OrLater
enums to QSsl.

Before this, we had a patch in our Qt 5.4 build (on Windows), that
changed the meaning of QSsl::TlsV1_0 to mean "TLSv1.0 or later".
However, that approach wouldn't work in the real world (some setups
require very specific TLS versions), so it was dropped in favour of
the TlsV1_0OrLater and friends.

Since our patch is in Qt 5.5, it means that we now can use
QSsl::TlsV1_0OrLater in the Mumble tree (ifdef'd to QT_VERSION
>= 0x050500), and not break anything for distros.

For Qt 5.4, we can rely on QSsl::SecureProtocols, because Qt 5.4
deprecated SSLv3. Thus, in Qt 5.4, QSsl::SecureProtocols means the
same thing as TlsV1_0OrLater means in Qt 5.5.

Why do we need TlsV1_0OrLater and friends if we have
QSsl::SecureProtocols? Because we don't have a guarantee that
QSsl::SecureProtocols will keep having TLSv1.0 as its minimum
version. The current Mumble protocol requires TLS 1.0.

If something comes up in the future that makes us abandon TLSv1.0,
we'll still handshake it. Rejection can happen at the Mumble protocol
level instead, providing a better user experience.
2015-03-18 23:23:30 +01:00
Tim Cooper
f5affcd43b Better log message when a user disconnects from the same channel as the client. 2015-03-18 20:27:58 +01:00
Tim Cooper
9ba92b584e Add user friendly UserRemove message when disconnecting a ghost user.
This commit adds a user friendly UserRemove message
when a username is reused from the same IP-address.
2015-03-18 20:16:43 +01:00
Tim Cooper
dede31785f Add basic support for sending text messages via GlobalShortcuts. 2015-03-18 19:56:30 +01:00
MumbleTransifexBot
2dde4f5a14 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 30 languages
2015-03-18 19:41:48 +01:00
Joël Troch
122ed92620 OSInfo: update Windows 10 detection due to kernel version change. 2015-03-18 19:39:38 +01:00
Derrick Dymock
a7dd1b7737 Remove __DATE__ and __TIME__.
This removes the date and time macro to attempt to get us to
reproducible builds. While I do like the date and time included, it
doesn't really add that much value to our users.
2015-03-18 19:01:23 +01:00
Tim Cooper
88aefca1dd Fix protocol documentation for RequestBlob in the .proto file.
Fixes #1494
2015-03-17 20:22:30 +01:00
Tim Cooper
eda74f213a Add protocol buffer comments from the old 'doc' directory to the .proto file. 2015-03-17 20:21:29 +01:00
MumbleTransifexBot
cf49984f6c Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 30 languages
2015-03-17 20:14:55 +01:00
Stefan Hacker
fca6278784 Fix double free in WASAPI no positional audio fallback code-path
Also explicitly NULL pointers handed to getAndCheckMixFormat for clarity.
2015-03-15 22:03:05 +01:00
Stefan Hacker
988eeb5f1a Translation update
Updating 'mumble_en.ts'...
    Found 1600 source text(s) (12 new and 1588 already existing)
    Removed 1 obsolete entries
2015-03-15 03:59:55 +01:00
MumbleTransifexBot
657f9e84b6 Transifex translation
update Mode: default
Minimum percent translated: 0
Matched 30 languages
2015-03-14 23:37:06 +01:00
Stefan Hacker
525995d10f Address review concerns to mix format check changes 2015-03-14 21:55:53 +01:00
Stefan Hacker
5a033b8b9b Simplify and extend mix format check in WASAPI.cpp
Extracted common code for getting the mix format for an
IAudioClient and checking whether it is supported to
separate getAndCheckMixFormat function.

Added support for 16bit PCM besides 32bit IEEE float.
2015-03-09 22:41:12 +01:00
Stefan Hacker
b4f505073a Fix handling of WAVEFORMATEX in WASAPI backend.
As described in #1589 the WASAPI backend made the invalid
assumption that a WAVEFORMATEX struct returned by GetMixFormat
can always be cast to the extended WAVEFORMATEXTENSIBLE type.
This is only true if the wFormatTag of the structure is
WAVE_FORMAT_EXTENSIBLE.

This patch tries to correct all invalid assumptions about this
in the backend by making casting to WAVEFORMATEXTENSIBLE and
access to its extended fields dependant on the correct format
tag being present. If given a pure WAVEFORMATEX structure
workarounds are applied where needed.

As before only IEEE_FLOAT sample formats are supported.
2015-03-09 21:02:47 +01:00
MumbleTransifexBot
d73a2bb696 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 32 languages
2015-03-09 19:50:37 +01:00
MumbleTransifexBot
bf1667fa98 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 31 languages
2015-02-25 23:56:10 +01:00
Stefan Hacker
1c00533b09 Incorrectly assumed SF_FORMAT_* subtypes were flags.
In my patch for #971 I tried to enable clipping for formats that
are not float and not vorbis (which is float by default) but checked
them like they were flags. This caused clipping to never actually
enable for formats whose submask contained at least one bit similar
to either the float or vorbis type.

This patch uses SF_FORMAT_SUBMASK and a straight comparison instead
and should fix this issue.
2015-02-25 23:50:09 +01:00
MumbleTransifexBot
edd5509fc3 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 31 languages
2015-02-21 11:22:02 +01:00
MumbleTransifexBot
bdcd5927d6 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 31 languages
2015-02-15 14:28:35 +01:00
MumbleTransifexBot
eae371ea35 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 31 languages
2015-02-12 21:04:45 +01:00
BuddyButterfly
80f1623b93 PulseAudio: allow monitor devices to be used as inputs.
PulseAudio automatically creates monitors for devices.
These devices were previously explicitly excluded from the
list of input devices by Mumble. Excluding these devices
blocks people from combining multiple streams into Mumble
via PulseAudio.

One possible scenario is listed below:

 Requirement:
  - One wants to combine headset input and sound output
    of a script into mumble.

 Solution:
  - With PulseAudio one creates a virtual sink. Let's
    call it "vscrd1".
  - The headset's input is looped to "vscrd1".
  - The script's audio output is directly directed to
    "vscrd1".
  - Mumble is configured to use the input device
    "vscrd1.monitor"

Now one can talk and send sound to Mumble at the same time.
It also helps much when using sound bots (music etc.).
2015-02-08 16:53:50 +01:00
Mew
bc5852d3dc Implement "mumble rpc" subcommand
This allows users to more easily issue SocketRPC
requests to a running Mumble client.

Currently, only commands for muting/deafning are
supported.

Example:

  $ mumble rpc mute    # Mute a running Mumble client
  $ mumble rpc unmute  # Unmute a running Mumble client
  [...]

Supported commands are currently:

  'mute' - Unmute self
  'unmute' - Unmute self
  'deaf' - Deafen self
  'undeaf' - Undeafen self

(You can also see them via 'mumble rpc --help')
2015-02-08 16:41:53 +01:00
Kyle Smith
44dc94e928 Add optional combobox for transmit mode selection in the MainWindow's toolbar.
Implements feature request SF-1119
2015-02-08 16:09:11 +01:00
MumbleTransifexBot
351547980d Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 31 languages
2015-02-08 01:27:29 +00:00
MumbleTransifexBot
818e4c9277 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 31 languages
2015-02-07 23:29:41 +01:00
MumbleTransifexBot
25414ea8b5 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 31 languages
2015-02-07 23:29:36 +01:00
MumbleTransifexBot
2288161a2c Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 31 languages
2015-02-07 23:29:31 +01:00
MumbleTransifexBot
672eafb940 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 31 languages
2015-02-07 23:29:25 +01:00
Mikkel Krautz
a5651973d5 Add setting 'asio/enable' to allow users to disable ASIO via the Mumble configuration. 2015-02-07 16:56:53 +01:00
dennisschagt
32f327378f Translation update
Updating 'mumble_en.ts'...
    Found 1589 source text(s) (1 new and 1588 already existing)
    Removed 2 obsolete entries
2015-02-05 17:23:12 +01:00
dennisschagt
99f3de8613 Fixed typo reported at github #1552 2015-02-05 17:06:49 +01:00
MumbleTransifexBot
e2b69fe393 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 31 languages
2015-02-03 21:51:44 +01:00
MumbleTransifexBot
1bc8a1783b Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 31 languages
2015-01-21 22:51:29 +01:00
MumbleTransifexBot
de30aa20fc Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 31 languages
2015-01-21 22:51:22 +01:00
MumbleTransifexBot
09dd76d3d8 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 31 languages
2015-01-21 22:51:07 +01:00
MumbleTransifexBot
fd8b684f15 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 31 languages
2015-01-16 01:27:31 +00:00
MumbleTransifexBot
e469bd6273 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 31 languages
2015-01-15 16:51:54 +01:00
Mikkel Krautz
9f1e60507b Move Windows overlay setup and injection to mumble_ol.exe.
This changes Mumble on Windows to run a helper process,
mumble_ol.exe, instead of loading mumble_ol.dll itself.

Prior to this change, Mumble would load mumble_ol.dll and
call PrepareD3D9() and PrepareDXGI() to set up the overlay.
Then, if the overlay was enabled, it would call InstallHooks()
to enable automatic injection of the overlay into new processes.
Similarly, it would call RemoveHooks() to disable automatic
overlay injection when the overlay was disabled in Mmuble.

With this change, Mumble instead runs a helper process called
mumble_ol.exe. This process sets up the overlay (equivalent
to calling PrepareD3D9(), PrepareDXGI() and calling InstallHooks()).
While running, it'll automatically inject the overlay into new
processes, just like Mumble itself did previously. On normal exit,
the helper process calls RemoveHooks() to ensure automatic overlay
injection is disabled.

To enable the overlay, Mumble starts the helper process.
To disable the overlay, Mumble terminates the helper process.
If the helper process dies when it is supposed to be running,
Mumble restarts it to ensure that overlay injection keeps
working as intended.

This change is the first part of enabling both an x86 and an x64
overlay to be active in Mumble at the same time. Since we cannot
load a 32-bit DLL into a 64-bit process (or vice versa), we need
a helper process for each architecture to reach our goal.
Note however that this commit in itself does not make it possible
for Mumble to run both an x86 and an x64 overlay at the same time.
This will come later.
2015-01-15 16:48:27 +01:00
Mikkel Krautz
faa67303bd Move speex, celt-0.7.0, celt-0.11.0, opus and sbcelt to the 3rdparty directory. 2015-01-05 23:11:59 +01:00
Mikkel Krautz
f1e298aa70 murmur: fix CONFIG(static) block in the unix section of murmur.pro to not be applied for OS X. 2015-01-03 21:53:14 +01:00
Mikkel Krautz
a2bb65964d murmur: move murmur.pro's CONFIG(static) and CONFIG(ermine) sections into the unix section.
Fixes a linker warning on Windows, where "-static"
was inadvertently added to the link.exe flags.
2015-01-03 20:13:26 +01:00
Mikkel Krautz
ecf543b23e GlobalShortcut: enable use of hooks for Windows x64 now that we have HardHook available.
This allows GlobalShortcut keys to be suppressed
on Windows x64.
2015-01-03 20:06:20 +01:00
Mikkel Krautz
93ad74b467 Add MinHook-based overlay for Windows x64.
This commit adds MinHook as a 3rd party
dependency and adds an alternative HardHook
implementation that makes use of MinHook.

This new MinHook-based HardHook implementation
allows us to provide an overlay for Mumble on
Windows x64.

The x64 overlay hasn't seen much testing in
real-world x64 games, except some minor testing
for World of Warcraft running in x64 mode, where
it works just fine.

There seems to be a compatibility with the Uplay
overlay, which causes Far Cry 4 to crash at the
"Press any key to continue" screen that is shown
just after launching the game. However,
Assassin's Creed: Unity works fine, so it might
just be a Far Cry 4 issue.

The x64 overlay also seems to interoperate with
the Steam overlay just fine.

I think this is a good starting point for the
feature. Let us get it into snapshots and let
us try to squash any addition bugs we find.
2015-01-03 19:44:02 +01:00
MumbleTransifexBot
a090c86ee0 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 31 languages
2015-01-03 01:27:29 +00:00
MumbleTransifexBot
212e7c07a9 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 31 languages
2015-01-01 01:27:28 +00:00
Stefan Hacker
c5e427d607 Revert "Use TLS 1.2 when built with Qt 5."
This reverts commit 75843b62a7.
2014-12-26 04:41:22 +01:00