Age | Commit message (Collapse) | Author |
|
|
|
This commit introduces a new plugin framework into the codebase of the
Mumble client. Note that "plugin" here really refers to a (more or less)
general purpose plugin and is therefore not to be confused with the
previously available positional data plugins (only responsible for
fetching positional data from a running game and passing that to
Mumble).
The plugin interface is written in C, removing the compiler-dependence
the old "plugins" had. Instead plugins can now be written in an
arbitrary language as long as that language is capable of being compiled
into a shared library and also being capable of being C-compatible.
As already indicated a plugin is essentially a shared library that
provides certain functions that allow Mumble to interface with it.
Inside Mumble the so-called PluginManager is responsible for managing
the plugins and relaying events to the respective callbacks. Plugins
themselves can also interact with Mumble on their own initiative by
using the provided API functions.
Fixes #2455
Fixes #2148
Fixes #1594
Fixes #2051
Fixes #3742
Fixes #4575
Fixes #4751
|
|
Apparently the first commit (59ae429972c16c377135bcccfee646b7df446933)
did not include all files.
Furthermore the used script tended to produce funny results in certain
cases. This has been fixed and as a result thereof a few more changes
were made in this second run.
|
|
This is needed in order for the <cmath> header to also define constants
like M_PI. Instead of manually defining the macro every time before
including <cmath>, the macro is now defined via cmake and thus always
defined.
|
|
If they are not there is the potential of name clashes when performing a
unity build.
See: https://stackoverflow.com/questions/847974/the-benefits-disadvantages-of-unity-builds
|
|
Defining a macro (global namespace) named "g" as a shortcut for
accessing the Global struct never was a good idea. In order to avoid the
problems this created (you must never name a variable "g" or include
Global.h before a header that may have such a variable), the macro was
removed and was instead replaced with a static function Global::get()
that returns a reference to the Global struct.
Just as with the old g macro, the existence of the respective pointer is
not explicitly checked before dereferencing. It is assumed that
everywhere where it is used, the Global struct has already been created.
|
|
This was done by running scripts/updateLicenseHeaders.py and then
manually editing the LICENSE file.
|
|
|
|
With this change the positions of other speakers are also displayed in
the UI of the ManualPlugin (next to your own position) as red dots. This
allows for better understanding of the positional audio feature.
It is also possible to specify a time for these dots to persist even if
the corresponding speaker has stopped talking. In this time the
respective dot will start to fade out until it gets removed completely.
This does not show the names of the associated speakers in order to not
clutter the UI too much. If this information is needed, the TalkingUI
can be opened alongside the ManualPlugin to get an overview of who's
currently talking.
|
|
This changes all occurances of NULL and Q_NULLPTR in the mumble source
dir to nullptr. Additionally comparisons with NULL were changed to `if
(pointer)` if it would not be confusing. (e.g. booleans as parameters `
setEnabled(pointer != nullptr)`)
|
|
|
|
match the user's when facing the screen
|
|
This is not required for the current plugin framework, because it always adds the plugin's name at the beginning of the context.
That will not be the case with the new plugin framework, because the context is entirely handled by the plugin, thus it can be empty.
|
|
indicator's
|
|
the azimuth
|
|
|
|
|
|
|
|
|
|
|
|
Unhinging works OK now, after we've migrated the plugin
to live inside Mumble.
Fixes mumble-voip/mumble#2456
|
|
|
|
|
|
|
|
|