Commit Graph

263 Commits

Author SHA1 Message Date
Jan Klass
19b5702168 Bump version to 1.4.0
1.3.0 has been released. master now represents the current state of
development towards the next feature release 1.4.0.

Bugfixes for 1.3 will happen in the 1.3.x branch.

Compared to earlier version bumps we bump a lot more files because of
we produce more artifacts; overlay process, dll and exe split, etc.

This should have happened right after the 1.3.x branch was split off.
2019-09-22 10:24:19 +02:00
Davide Beatrici
12cf9552c2 Update copyright years in .plist and .rc files 2019-01-25 04:56:19 +01:00
Davide Beatrici
b427333257 Auto-update LICENSE.header in source files 2019-01-25 04:56:19 +01:00
davidebeatrici
5477e8f999 overlay: set custom build directory in relation to the global one 2018-02-18 23:56:34 +01:00
Mikkel Krautz
23261e2959 Update copyright years in .plist and .rc files. 2018-01-01 23:09:16 +01:00
Mikkel Krautz
f6ba3a52bf Auto-update LICENSE.header in source files. 2018-01-01 23:05:37 +01:00
Mikkel Krautz
828d9301f5 Remove DIST directive from all .pro files.
We used to use DIST for referencing extra files that should be included
in our tarballs created by 'make dist'.

However, we've since migrated away relying on 'make dist' in release.pl.
Instead, we include everything, and have a list of items to exclude, such
as IETF RFC drafts distributed in 3rdparty/speex-src that do not adhere to
the Debian Free Software Guidelines.
2017-08-06 20:38:14 +02:00
Jan Klass
23e763888f Fix assignment spacing in pro files
Consistently use single space before assignment operator.
2017-08-05 20:44:00 +02:00
Jan Klass
36fc0f1b67 overlay: Use size_t as correct type for memory addresses
Use correct types for handling pointer size/memory addresses.

Make use of boost optional as GetFnOffsetInModules return type. The
unsigned return type does not allow for negative error values anymore,
which we did not make use of anyway, and optional is more explicit.

Replaces workaround/error detection from the commits
114495e59f
a3e7958f16

Fixes #1924
2017-07-13 13:18:09 +02:00
Jan Klass
7689647a50 Remove type variable prefix 2017-07-13 13:12:45 +02:00
Jan Klass
ce864c77d7 Cast to correct API types
It is better to be explicit and API correct, even if the resulting
types ended up to be the same through typedefs or the implementation
reinterpret-casting to a memory address pointer.
2017-07-11 00:42:08 +02:00
Jan Klass
830ea8aa54 Initialize pointers in constructor 2017-04-25 21:57:42 +02:00
Mikkel Krautz
425a994354 overlay: add LaunchPad.exe (Daybreak Games's launcher) to the launcher list.
As provided by Remadan in mumble-voip/mumble#3029.

LaunchPad is Daybreak Games's own launcher, used for games such as
PlanetSide 2 (Standalone) and others.
2017-04-24 21:52:22 +02:00
Jan Klass
ee44430555 Add itch.exe as known overlay launcher
See #3043, fix if the itch user does not use the sandboxing feature of
the itch launcher.
2017-04-23 12:39:12 +02:00
Mikkel Krautz
557eacd1e7 overlay: remove ability for overlay to decline being attached to a process.
This was originally implemented in
2f07778a0e.

This change was a mistake. We use the WH_CBT hook to inject our DLL into
potential targets. That means that every mouse/keyboard event will trigger
an attempt to load our overlay DLL, if it isn't already loaded.

That, combined with the new ability for the overlay to decline being
injected caused problems for processes that are blacklisted by Mumble:
Every mouse/keyboard event would attempt to load the DLL, go through the
exclusion checks (query the process tree, query the registry, find out
that the process is blacklisted, unload the DLL...).

We can't have that, so let's just revert this.
2017-04-22 10:08:18 +02:00
Mikkel Krautz
a9bdde037a overlay: treat launchers as implicitly blacklisted programs.
This is useful for cases like GTA V.

Its launcher is available via Steam, or via Rockstar Social Club/Retail.

Before this change (if it wasn't already in the blacklist), the GTA V
Launcher, when launched through Steam, would show the overlay.
Now, since we treat it as a launcher, it'll be implicitly blacklisted.
2017-03-30 21:45:38 +02:00
Davide Beatrici
2244414d20 overlay: add GTAVLauncher.exe to the default launcher-filter program blacklist. 2017-03-28 21:59:44 +02:00
Davide Beatrici
e878332d24 overlay_blacklist.h: Add missing comma 2017-03-28 21:58:41 +02:00
Mikkel Krautz
0a497b0c82 overlay: add gw2-64.exe to the default launcher-filter program whitelist.
The original launcher filter PR only added the 32-bit Guild Wars 2 client.
This adds the 64-bit client.
2017-03-26 20:59:23 +02:00
Mikkel Krautz
8d4d5f0437 overlay: hook up new excludecheck-based overlay exclusion check.
This commit hooks up the 'excludecheck' module into the Windows overlay.
2017-03-19 21:35:35 +01:00
Mikkel Krautz
58c208c2c6 overlay: implement new overlay exclusion logic in excludecheck.cpp/excludecheck.h.
This commit adds an 'excludecheck' module to the Windows overlay DLL that
implements the exclusion logic for the Mumble overlay.

It implements the new launcher filter mode, as well as the traditional
whitelist and blacklist-based approaches.

The rules for the launcher filter mode are:

 - Is the process blacklisted? Don't allow the overlay.
 - Is the process whitelisted? Allow the overlay.
 - Does the process's executable live in a whitelisted path? Allow the
   overlay.
 - Is one of the process's ancestors in the launcher whitelist? Allow the overlay.
 - Otherwise, disallow overlaw.

These simple rules, along with some sane defaults allow much finer-grained
control over the overlay -- and it allows us to ship a default profile
where we practically only inject into games.
2017-03-19 21:35:32 +01:00
Mikkel Krautz
151bc49132 overlay: re-introduce checks for 'debugoverlay' and 'nooverlay'.
These were removed when we removed all the legacy exclusion logic.
This commit re-adds them in a more sensible way.
2017-03-19 21:35:29 +01:00
Mikkel Krautz
de6e9ec0cf overlay: move procname parsing to separate function.
This is a small code-cleanup commit that moves the
procname parsing to a separate function. This makes
the code clearer, and we're able to properly document it.
2017-03-19 21:35:26 +01:00
Mikkel Krautz
2f07778a0e overlay: allow overlay to decline being attached to a process.
Returning FALSE From DllMain when fdwReason is DLL_PROCESS_ATTACH
means you're declining to be loaded.

This allows us to be fully unloaded from program that we've decided
(via exclusion rules) we don't want to be in.
2017-03-19 21:35:23 +01:00
Mikkel Krautz
bffd2ece8e overlay: remove legacy overlay exclusion code.
This removes the old white/blacklist exclusion code
from the overlay DLL.

This is done in a separte commit to aid in reviewability.
2017-03-19 21:35:20 +01:00
Mikkel Krautz
d30ab5bc95 overlay: refactor bBlacklisted into bEnableOverlay.
This change is a small refactoring in the overlay DLL.
We rename bBlacklisted to bEnableOverlay, because the
bEnableOverlay naming is clearer in a world where we
have the launcher filter exclusion mode.
2017-03-19 21:35:18 +01:00
Mikkel Krautz
35c7d13bfc overlay: add olsettings.cpp/olsettings.h, accessors for launcher overlay settings.
This adds accessors for the new launcher-filter settings.
2017-03-19 21:35:15 +01:00
Mikkel Krautz
be43c91f4f overlay: add ancestor.cpp/.h, utilities for getting process ancestor info.
This new module exposes the GetProcessAncestorChain() function.
This function is going to be used by the new exclusion check module
to implement the launcher filter.
2017-03-19 21:35:13 +01:00
Mikkel Krautz
88bfbbb3c3 overlay: add util.h with vector/string/path utilities.
These will be used by the new launcher filter code.
2017-03-19 21:35:10 +01:00
Mikkel Krautz
3cf280143f overlay: update overlay_blacklist.h.
This updates overlay_blacklist.h with the entries from
mumble-voip/mumble#2422

Fixes mumble-voip/mumble#2422
2017-03-19 21:35:02 +01:00
Mikkel Krautz
ab298d8dea overlay: add overlay_launchers.h and overlay_whitelist.h.
These are needed by the new launcher filter mode for the overlay.
2017-03-19 21:34:57 +01:00
brooss
b651526937 add kodi.exe to overlay_blacklist.h
XBMC is now Kodi. Add kodi.exe to the overlay blacklist.
2017-03-07 05:30:08 +11:00
Davide Beatrici
d04995899a Move .pri files and "toolchain" folder in "qmake" 2017-03-05 15:48:16 +01:00
Mikkel Krautz
91ebb8b0b5 Update tree copyrights to 2017. 2017-01-08 21:05:57 +01:00
Mikkel Krautz
5cffbf3bd3 Always prepend 'release' or 'debug' dirs when adding to QMAKE_LIBDIR.
This commit changes various pri and pro files to always prepend
the global build output directory (which can be either 'release'
or 'debug', depending on the current build configuration).

Otherwise, if a library that we build ourselves, such as -lspeex in
CONFIG+=bundled-speex, is also available in one of the other lib dirs,
we can't be sure that the one in our build output directory will be used.

This is a problem on FreeBSD, where we add /usr/local/lib
to the QMAKE_LIBDIR in compiler.pri. That directory might contain
its own -lspeex.

With this change, we now prefer libraries in our build output directory
to system libraries.
2016-11-27 01:13:57 +01:00
Mikkel Krautz
d9cc484a3e overlay: fall back to fxc.exe on PATH if DXSDK is not set.
This allows the overlay to build with the Windows SDK version
of fxc.exe.

This removes the need for people developing locally to install
the legacy DirectX SDK.
2016-11-13 11:01:48 +01:00
Mikkel Krautz
dd147960e2 Merge PR #2525: Fix various warnings in the Windows overlay found by upgrading to MSVC2015 2016-08-24 21:43:05 +00:00
Mikkel Krautz
4cc34410dd overlay/overlay_exe: use unsigned long long for our passed-in handle to silence MSVC2015 warning.
Before:
    warning C4312: 'reinterpret_cast': conversion from 'unsigned long' to 'HANDLE' of greater size

Also, please note the comment in src/mumble/Overlay_win.cpp regarding the
32-bit masking:

https://msdn.microsoft.com/en-us/library/aa384203.aspx says:
> When sharing a handle between 32-bit and 64-bit applications, only
> the lower 32 bits are significant [...]
2016-08-21 18:43:25 +02:00
Mikkel Krautz
b711ea987c overlay/lib.h: fix _WIN32_WINNT redefinition. 2016-08-21 18:43:20 +02:00
Mikkel Krautz
9f50ca8c2c overlay/lib.cpp: cast to long when creating RECT. 2016-08-21 18:43:14 +02:00
Mikkel Krautz
72f038e8a1 overlay: remove use of d3dx9, d3dx10 and d3dx11. 2016-08-21 18:13:17 +02:00
Mikkel Krautz
0d1244d775 overlay: escape backslashes in overlay-shared.pro. 2016-07-05 22:54:20 +02:00
Mikkel Krautz
7c8b8ab8ea overlay: in D3D9's doPresent(), use swapchain's backbuffer and dimensions if drawn via IDirect3DSwapChain9::present().
Fixes mumble-voip/mumble#1056
2016-07-05 20:24:43 +02:00
Mikkel Krautz
8ae8dbbb43 overlay: ensure the whole Microsoft Office suite is blacklisted.
We might as well...

This is short-term fix until we figure out where to go with
the overlay launcher filter, path filter, etc.

Fixes mumble-voip/mumble#1117
2016-07-04 00:40:54 +02:00
Mikkel Krautz
8272e4872f overlay: optimize blit() to not perform a blit if the active item rect is empty.
It seems that in EVE Online, if we update our overlay texture but do not
draw to the screen, the texture mapping is never freed, until we begin
drawing again.

I do not know enough D3D11 to know why.

Instead, this commit works around the issue by introducing a fully legal
optimization to the blit() method:

If the rect of active overlay elements is empty (that is, the screen is
empty), do not perform a blit at all.

The change also introduces an extra call to blit upon receiving
OVERLAY_MSG_ACTIVE. That message is the message that signals that
the rect of active elements has changed.
We need to blit here to ensure we redraw correctly once the rect
of active overlay elements changes.

Fixes mumble-voip/mumble#1123
2016-07-02 12:18:57 +02:00
Mikkel Krautz
049fcae125 overlay: update to use LICENSE.header. 2016-05-10 22:42:03 +02:00
Mikkel Krautz
ef72e3eae3 overlay: remove Far Cry 4 from the default blacklist.
The interplay between Mumble/Steam/Uplay overlays seems
to have been fixed by one of the parties (not us!).
Far Cry 4 now runs with the Mumble overlay.

Fixes mumble-voip/mumble#1514
2016-04-01 22:06:49 +02:00
Mikkel Krautz
6e16502553 Update the Copyright year range for The Mumble Developers throughout the tree. 2016-01-01 16:04:46 +01:00
Mikkel Krautz
173b68a223 Update copyright strings in .rc and .plist files to refer to 'The Mumble Developers'.
Updates mumble-voip/mumble#1513
2015-12-26 22:15:48 +01:00
Jan Klass
31abc89c21 Add outlook to overlay blacklist
As per https://forums.mumble.info/viewtopic.php?f=9&t=1910
2015-12-08 15:42:03 +01:00