Page:
New external module interface
Pages
Apple Silicon Support
Audacity Plugins
Building Installers and AppImages
Contributing to the Wiki
Differences between Tenacity 1.3 and Tenacity 0.1.0
FFmpeg Support in Tenacity
Home
List of tenacity, legacy PRs to Evaluate
Migrating to Qt
New external module interface
Notes about the Saucedacity source code
Refactoring ideas for multiple audio backends
Saucedacity 1.0.1
Saucedacity 1.0
Saucedacity 1.1
Saucedacity 1.2
Saucedacity Support Status
Saucedacity libraries and applied patches
TODO
Tenacity 1.3
Tenacity 1.4
Translating Saucedacity
Updating translations
Verifying Binaries
3
New external module interface
Avery King edited this page 2023-06-23 20:14:06 +00:00
Table of Contents
Although Audacity has its own module interface, I'm looking to propose a new, documented module interface. Undertaking this effort will not be easily, but hopefully the planning will be there along the way.
- Avery (@generic-pers0n)
Tenacity Modules
Internals
- Modify ModuleManager to use the new module interface. Maybe preserve the old interface.
Required Symbols
ModuleInf GetModuleInfo()
- Retrieves info about the module, including its name, module version (optional), and required app version.void Module_Init()
- Loads the module. Would be called by ModuleManager when loading a module.void Module_Destroy()
- Destroys the module. Would be called by ModuleManager when unloading a module.ModuleStatus Module_Dispatch()
- Handles certain actions (TODO: define which actions it handles). This function returns aModuleStatus
value, which can be one of the following:ModuleStatus::OK
- Everything succeeded while handling the dispatch.ModuleStatus::Error
- An error occurred while handling the dispatch.ModuleStatus::FatalError
- A fatal error occurred while handling the dispatch.ModuleStatus::Reload
- Handling the dispatch succeeded, but the module should be reloaded.
This wiki page is licensed under CC BY 4.0 (Creative Commons Attribution 4.0 International)