Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikkel Krautz <mikkel@krautz.dk>2015-01-15 18:48:27 +0300
committerMikkel Krautz <mikkel@krautz.dk>2015-01-15 18:48:27 +0300
commit9f1e60507b06ab17e7dea22d4d5e83dc4bbc0e7b (patch)
tree48e81ac22af8b15a9d31b27d2215f8b5fc583708 /installer
parent3b507d57b795b822949562a0cca1172f7073f182 (diff)
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.
Diffstat (limited to 'installer')
-rw-r--r--installer/Files.wxs3
-rw-r--r--installer/Product.wxs1
2 files changed, 4 insertions, 0 deletions
diff --git a/installer/Files.wxs b/installer/Files.wxs
index 967a248b3..16901187b 100644
--- a/installer/Files.wxs
+++ b/installer/Files.wxs
@@ -35,6 +35,9 @@
<Component Id="mumble_ol.dll">
<File Source="$(var.SourceDir)\release\mumble_ol.dll" KeyPath="yes" />
</Component>
+ <Component Id="mumble_ol.exe">
+ <File Source="$(var.SourceDir)\release\mumble_ol.exe" KeyPath="yes" />
+ </Component>
<Component Id="celt0.0.7.0.dll">
<File Source="$(var.SourceDir)\release\celt0.0.7.0.dll" KeyPath="yes" />
</Component>
diff --git a/installer/Product.wxs b/installer/Product.wxs
index 6828e7659..41516a6f8 100644
--- a/installer/Product.wxs
+++ b/installer/Product.wxs
@@ -172,6 +172,7 @@
<?endif ?>
<ComponentRef Id="mumble.exe" />
<ComponentRef Id="mumble_ol.dll" />
+ <ComponentRef Id="mumble_ol.exe" />
<?ifdef G15 ?>
<ComponentRef Id="mumble_g15_helper.exe" />
<?endif ?>