mumble/plugins
Mikkel Krautz a179f5d249 Move 'manual' plugin into Mumble itself.
The machinery needed to support the "manual" plugin as a DLL
file on Windows is very complex.

This is because we build Mumble itself as mumble_app.dll and link
our dependencies statically. And also because of various changes
made in Qt 5.

The manual plugin uses Qt. When Mumble linked dynamically against
Qt4Gui.dll, etc. - everything worked fine. The manual plugin simply
linked against the same DLLs.

With the move to mumble_app.dll, we also moved to statically link
against Qt for mumble_app.dll.

To accommodate the manual plugin, we implemented various hacks to
export the Qt symbols from mumble_app.dll that were necessary for
loading the manual plugin.

And that worked for a while.

However, right now, with Qt 5.6, the plugin is broken. And I get
a lot of weird crashes when interacting with the manual plugin.

Most of it boils down to the fact that both manual.dll and mumble_app.dll
have copies of statically initialized data, like QArrayData::shared_null.
Sharing objects between mumble_app.dll and manual.dll in this scenario is
impossible, because using the object in one module will cause one set of
statically initialized data to be used, while use in the other will cause
the other data to be accessed. This is especially bad for things that use
reference counting, because it'll get out of sync.

So, to get rid of this mess, we're moving the manual plugin into Mumble
itself. Functionally, it doesn't change anything. The manual plugin could
not be auto-updated because it depended on a specific Qt and Mumble
version. Mostly because it depended on the correct set of Qt symbols to be
exported from mumble_app.dll.

The plugin now works correctly, and we can safely remove a lot of the
hacks that were required to load the manual plugin in its earlier
incarnation.

The only downside is that we can't test the manual plugin in PAHelper.
But that wasn't really the case before either, because the plugin
practically depended on Mumble to run.
2016-07-17 00:32:06 +02:00
..
aoc plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
arma2 plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
bf2 plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
bf3 plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
bf4 plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
bf4_x86 plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
bf1942 plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
bf2142 plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
bfbc2 plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
bfheroes plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
blacklight plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
borderlands plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
borderlands2 plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
breach plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
cod2 plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
cod4 plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
cod5 plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
codmw2 plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
codmw2so plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
cs plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
css plugins: update to use LICENSE.header. 2016-05-10 22:42:04 +02:00
dods plugins: update to use LICENSE.header. 2016-05-10 22:42:04 +02:00
dys plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
etqw plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
gmod plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
gtaiv plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
gtav plugins/gtav: update game_name memory addresses 2016-07-17 00:17:53 +02:00
gw plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
hl2dm plugins: update to use LICENSE.header. 2016-05-10 22:42:04 +02:00
insurgency plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
jc2 plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
l4d plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
l4d2 plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
link plugins: update to use LICENSE.header. 2016-05-10 22:42:04 +02:00
lol plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
lotro plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
ql plugins/ql: Native front and top vectors 2016-06-24 00:27:15 +02:00
rl plugins/rl: update plugin to work with version 1.21 2016-07-09 08:57:34 +02:00
sr plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
sto plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
tf2 plugins: update to use LICENSE.header. 2016-05-10 22:42:04 +02:00
ut3 plugins/ut3: fix warnings-as-errors build for UT3. 2016-06-26 22:10:17 +02:00
ut99 plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
ut2004 plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
wolfet plugins: update memory addresses retrieval to use procptr32_t/procptr64_t. 2016-06-23 23:32:37 +02:00
wow Remove old-style license header from WoW plugin. 2016-06-11 19:18:01 +02:00
mumble_plugin_utils.h Move "escape" function to mumble_plugin_utils.h header 2016-05-29 00:57:57 +02:00
mumble_plugin_win32_ptr_type.h plugins: add distinct header files for x86 and x64. 2016-06-20 22:40:05 +02:00
mumble_plugin_win32_x64.h plugins: add distinct header files for x86 and x64. 2016-06-20 22:40:05 +02:00
mumble_plugin_win32_x86.h plugins: add distinct header files for x86 and x64. 2016-06-20 22:40:05 +02:00
mumble_plugin_win32.h plugins.pri, mumble_plugin_win32.h: add CONFIG(no-plugin-legacy-ptr) to disable use of non-explicit mumble_plugin_win32.h header. 2016-06-20 22:40:12 +02:00
mumble_plugin.h Plugins: add MumblePluginQt to better support the 'manual' plugin. 2016-07-17 00:31:59 +02:00
null_plugin.cpp plugins: update to use LICENSE.header. 2016-05-10 22:42:04 +02:00
plugins.pri plugins.pri, mumble_plugin_win32.h: add CONFIG(no-plugin-legacy-ptr) to disable use of non-explicit mumble_plugin_win32.h header. 2016-06-20 22:40:12 +02:00
plugins.pro Move 'manual' plugin into Mumble itself. 2016-07-17 00:32:06 +02:00