-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Plugin framework #3743
Plugin framework #3743
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have some fairly large questions about the audio callbacks in terms of where they occur within the audio processing system. I think we need to understand fully where these callbacks occur to make sure that they are affecting the sound data at a useful point in the system.
This comment has been minimized.
This comment has been minimized.
b804d87
to
87277ff
Compare
df56629
to
c81b84c
Compare
53144e8
to
9adfa57
Compare
5a6910b
to
9a0a2e9
Compare
b01abfd
to
18cdf85
Compare
API changeThe data and ID field for the |
The deed is done! I think the next milestone is the snapshot-phase in which users will test out the upcoming Mumble snapshots (that will include this framework) to see if the implementation broke any functionality. Furthermore I will have to sit down and write some documentation on the entire thing so that it is as easy to use as possible. Let's hope that it'll be put to good use! 🚀 |
API changeThe API functions to get and set int settings have been changed to use |
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 mumble-voip#2455 Fixes mumble-voip#2148 Fixes mumble-voip#1594 Fixes mumble-voip#2051 Fixes mumble-voip#3742 Fixes mumble-voip#4575 Fixes mumble-voip#4751
Congratulations! |
Thanks! Also thank you for your continous input and testing during the development @hbeni! :) |
Yes, great job! Thank you all for this massive and valuable contribution. |
This PR is about implementing a plugin framework (in the conventional sense).
See #3742 for further context.
This PR introduces the following murmur config options:
pluginmessagelimit
pluginmessageburst
API:
If using TS names: Provide macros that can be used to transform the implementing function names to either follow the TS naming scheme (prefixed by e.g.ts3plugin_
) or Mumble naming scheme (?)).Implementation:
Plugins
class in MumbleWrite test-casesUnload plugin's library if plugin is unloaded/shutdown via settings windowFixes #2455
Fixes #2148
Fixes #1594
Fixes #2051
Fixes #3742
Fixes #4575
Fixes #4751
Links to comments describing changes in the API: