Commit Graph

271 Commits

Author SHA1 Message Date
Septarius
c82d3aa419 overlay: add CMAKE_C_COMPILER and CMAKE_CXX_COMPILER to overlay-xcompile
CMake prioritizes MinGW over MSVC, which means that the first is used if found in PATH.

Since overlay-xcompile is only meant to be used with MSVC (MinGW provides "-m32" to build as 32 bit), this commit forces the use of "cl".
2020-07-11 19:37:21 +02:00
Nik Reist
13e61b4dc3 overlay: build 32 bit library also in 64 bit builds on Windows
GCC and Clang provide the "-m32" and "-m64" options, which tell the compiler to build as 32 bit and 64 bit, respectively.

Unfortunately MSVC doesn't provide similar options, thus this commit converts "overlay" from a subdirectory to a project.

If the build is 32 bit, the project is processed a single time and compiles a 32 bit library.

If the build is 64 bit, the project is processed two times and compiles a 64 bit and a 32 bit library.
2020-07-11 19:37:21 +02:00
Davide Beatrici
ede86a5abc overlay: add CMakeLists.txt files 2020-07-11 19:34:49 +02:00
Davide Beatrici
dcd49e79cb Templatize Windows resource files (.rc) 2020-07-11 19:34:49 +02:00
Davide Beatrici
ca21e276d1 overlay: remove unnecessary _WIN32_WINNT definition, add missing includes
This commit also changes <math.h> to <cmath>, because the former is deprecated and causes build errors.
2020-07-11 19:34:49 +02:00
Popkornium18
fd8386a206 REFAC(overlay): replace NULL with nullptr
This changes all occurances of NULL in the overlay source
dir to nullptr. Additionally explicit comparisons with NULL were
removed.
2020-06-28 19:04:21 +02:00
Davide Beatrici
542f4dbb91 Update copyright years in .plist and .rc files 2020-01-07 03:12:11 +01:00
Davide Beatrici
4e67a2fafb Auto-update LICENSE.header in source files 2020-01-07 03:09:22 +01:00
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