Commit Graph

60 Commits

Author SHA1 Message Date
Evan Purkhiser
c005fe3486 Remove tabs from the project file 2015-05-09 10:51:37 +02:00
Stefan Hacker
2c0d37f9ef Switch from old speex to new speex and speexdsp
The speex library has been split into a codec part
(speex) and a dsp part (speex-dsp). As we still need
the codec for compatibility with 3rd party clients
only sending speex but still want the updates that
went into the dsp and codec since then this patch
modifies our build to enable that. To achieve that
we combined the two libraries back together. Doing
it this way might brittle but is only a temporary
solution until we can actually drop the codec part.
2015-05-06 20:22:11 +02:00
Mikkel Krautz
3a6c4f0fee Build two separate Windows overlays - one for x86 and one for x86_64.
This splits fx11 into an x86 variant and an x64 variant.
This creates effects11_x86.lib and effects11_x64.lib, instead
of the single effects11.lib we had previously.

The minhook build is also tweaked. However, since minhook
is only used on x86_64, it is only built for x86_64.
Consequently, the library is still called minhook.lib.

The overlay itself is split into mumble_ol.dll and mumble_ol.exe
for x86, and mumble_ol_x64.dll and mumble_ol_x64.exe for x86_64.
2015-04-22 21:03:39 +02:00
Mikkel Krautz
f0ff84f6c0 Unify overlay code for Unix and OS X.
This commit removes macx/overlay and merges
the OS X overlay into the Unix overlay in
overlay_gl.

Most of the overlay logic is exactly the same,
with most of the differences being in the
initialization code and the addition of few new
messages for the interactive client-in-overlay
feature that the OS X overlay suports.

The initialization code is factored out into
init_unix.c for Unix-likes and init_mac.c
for OS X.

These init files are #included by overlay.c.
That is, they're not separate translation
units. Doing it this way cuts down on the
total LOC count and overall complexity of the
code.

The interactive overlay support is ported
directly from the OS X overlay. It's mostly
a matter of supporting a few new message types:
OVERLAY_MSGTYPE_PID and OVERLAY_MSGTYPE_INTERACTIVE.

The overlay_gl.pro file in this commit is mostly
just a combination of the .pro files of the two
overlays, with a minor difference in the CFLAGS
for the OS X overlay. In old OS X overlay, the
overlay had an ".m" file extension, signalling
that it is an Objective-C source file to the
C compiler. Since the combined overlay has a
".c" extension, "-x objective-c" is added to
CFLAGS on OS X to tell the compiler to compile
the overlay as Objective-C code.
2015-02-07 23:24:47 +01:00
Mikkel Krautz
403aedb35d Add mach_override as a 3rdparty dep and hook it into the OS X overlay.
Prior versions of mach_override were small (a single file),
and we just had its source live in the OS X overlay directory.

Newer versions of mach_override use libudis86, so the file count
goes up a fair bit. So much so that it doesn't make sense to
have it live inside the OS X overlay anymore.

Because of that, this commit moves it into 3rdparty.
2015-02-05 23:11:28 +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
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
Mikkel Krautz
d55d944ebc g15helper: update G15 SDK paths for OS X.
The g15helper program is currently coded against Logitech's
legacy G15 SDK. Logitech's newer SDK, which is the only one
shipped in their newer versions of Logitech Gaming Software,
is not compatible.

For OS X, the legacy SDK is still available for download
if you download the version of LGS (GamePanel 3.x) that
supports OS X 10.4 through 10.6. However, the SDK shipped
in this version of their software uses slightly different
paths than we expect.

This commit changes the paths to make sense with the SDK
shipped with the GamePanel 3.x software.
2014-02-08 12:23:54 +01:00
Kissaki
9544bec1f9 Overlay: Add Direct3D 11 support
* Based on an initial patch by Benjamin Jemlich
* Effects11 code based on changes by nyet
2014-01-10 22:51:11 +01:00
Mikkel Krautz
6da29305b8 mumble, murmur: final adjustments for the win32-static buildenv.
With this change, CONFIG(static) on Windows will cause the Mumble client's
application logic to be built into a .DLL called mumble_app.dll
(based on pcgod's previous DLL changeset).

Since src/mumble will now be built as a DLL, a wrapper executable is available
in src/mumble_exe. This wrapper is currently implemented such that it will
load mumble_app.dll from the directory that it resides in.

This means that when building statically, src/mumble and src/mumble_exe will
now give us the following products:

  src/mumble:      mumble_app.dll
  src/mumble_exe:  mumble.exe

Along with the two major points above, this change also adds a Python script
to the build, 'gen-mumble_app-qt-def.py', whose job is to construct a module
definition (.def) file for mumble_app.dll. The generated module definition
lists the Qt symbols that are needed for the manual positioning plugin to work.

If we need to expose more symbols in the future (say we want to implement
more plugin kinds than the current positional audio plugins), we now have
the infrastructure in place to do that.
2013-08-25 13:22:38 +02:00
Mikkel Krautz
c2655fc265 Mumble: allow client to use SBCELT for CELT decoding via CONFIG(sbcelt). 2012-08-09 23:53:09 +02:00
Benjamin Jemlich
e0d031d220 Add (no-)bundled-opus config options 2012-07-09 12:04:13 +02:00
Benjamin Jemlich
1368cbb6cf Enable Opus by default 2012-07-04 13:39:21 +02:00
Mikkel Krautz
cde6c68838 Revert back to mumble-g15-helper-based G15 support on Windows. 2012-02-05 02:42:41 +01:00
Benjamin Jemlich
7586a61226 Add basic Opus support 2011-11-05 23:21:22 +01:00
Thorvald Natvig
1161c9a1c4 Remove 1.1.x - no longer maintained 2011-02-20 04:21:34 +01:00
Thorvald Natvig
685809cf83 Remove CELT 0.10.0 2011-02-07 02:00:47 +01:00
Benjamin Jemlich
58aba64e55 Add CELT 0.11.0 support 2011-02-04 18:54:11 +01:00
Thorvald Natvig
c61522e2e9 Remove older CELT 0.9.0 2011-01-23 02:31:06 +01:00
Benjamin Jemlich
83dcdc3fd9 Add CELT 0.10.0 2010-12-21 06:18:29 +01:00
Stefan Hacker
ca23daf003 Add no-vld and no-plugin qmake flags 2010-11-15 11:59:40 +01:00
Benjamin Jemlich
7186e61bd4 Replace CELT 0.8.1 with 0.9.0 2010-11-06 19:53:04 +01:00
Mikkel Krautz
cbc880ed6b New LGLCD SDK path on Mac OS X. 2010-07-24 12:12:20 +02:00
Mikkel Krautz
e925ec60fe Update Mac OS X build for Ice-3.4.1, Boost 1.43.0 and detect the presence of LGLCD SDK (disable g15helper if not present) 2010-07-11 18:10:33 +02:00
Thorvald Natvig
1741e72492 Direct G15 support 2010-05-22 16:49:28 +02:00
Thorvald Natvig
0f7a141ee1 Add dynload of CELT 0.8.0 2010-04-21 11:13:22 +02:00
Mikkel Krautz
4a31df9b02 Sneakily fix MUMBLE_PREFIX envvar detection. 2010-02-16 01:52:49 +01:00
Mikkel Krautz
e815da0d93 Bail if no MUMBLE_PREFIX envvar is set during OSX build. 2010-02-16 01:21:39 +01:00
Mikkel Krautz
2dbba848ba Move OSX overlay and overlay launcher into macx subdir. 2010-02-15 22:24:05 +01:00
Mikkel Krautz
9a9ad5ce1e Fix no-overlay option. 2010-02-01 22:42:41 +01:00
Thorvald Natvig
f3e9ed776e Automatically use system CELT if it's >= 0.7.0 2009-11-11 14:22:12 +01:00
Thorvald Natvig
7e4ce0ef2d Build only 0.7.0, 0.6.1 etc are deprecated for the beta 2009-11-10 23:37:42 +01:00
Thorvald Natvig
2de0060365 Build CELT 0.7.0 2009-10-26 19:39:08 +01:00
Thorvald Natvig
5247bf70c5 Clientside celt juggling library load 2009-10-18 15:29:22 +02:00
Thorvald Natvig
b8813f3027 Build CELT dynamic 2009-10-18 15:29:21 +02:00
Thorvald Natvig
e3261dbc35 Mumble11x in source tree 2009-08-05 17:52:12 +02:00
Mikkel Krautz
91a9f16acf Add (untested) G15 LCD support for Mac OS X. 2009-04-28 00:41:31 +02:00
Thorvald Natvig
8421f29332 CELT build 2009-03-30 21:49:33 +02:00
Thorvald Natvig
1a7e9e8b6b Indent, changelog and submodule update 2009-03-26 21:57:19 +01:00
Thorvald Natvig
a2765a6cb6 CRLF merge 2009-03-04 16:28:55 +01:00
Thorvald Natvig
467cd160c4 Update release script 2009-03-04 03:24:41 +01:00
Mikkel Krautz
56426af097 Overlay for Mac OS X.
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@1595 05730e5d-ab1b-0410-a4ac-84af385074fa
2009-02-27 20:40:25 +00:00
Thorvald Natvig
b6fbe4a9c2 Don't use embedded speex if system speex >= 1.2
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@1552 05730e5d-ab1b-0410-a4ac-84af385074fa
2009-02-18 23:36:04 +00:00
Thorvald Natvig
98da0f9ae4 LCD Support [mkrautz]
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@1356 05730e5d-ab1b-0410-a4ac-84af385074fa
2008-12-13 13:06:24 +00:00
Thorvald Natvig
f4064dfe8d Statically compiled and linked ICE for static server.
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@1233 05730e5d-ab1b-0410-a4ac-84af385074fa
2008-08-21 13:01:53 +00:00
Thorvald Natvig
5820e0f7dc Add libspeechd dependency for debian
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@1096 05730e5d-ab1b-0410-a4ac-84af385074fa
2008-04-21 18:03:40 +00:00
Thorvald Natvig
88d872cb6b nix compile fixes
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@1071 05730e5d-ab1b-0410-a4ac-84af385074fa
2008-04-11 13:48:13 +00:00
Thorvald Natvig
7c71309986 Support system-installed speex (if it's 1.2b4 or newer)
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@1010 05730e5d-ab1b-0410-a4ac-84af385074fa
2008-03-20 12:52:53 +00:00
Thorvald Natvig
1f89fdd23e Move compiler settings to compiler.pri
Fix a lot of warnings with msvc

git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@1006 05730e5d-ab1b-0410-a4ac-84af385074fa
2008-03-18 16:26:24 +00:00