tracktion-engine 3.0-10-g034fdde4aa5
Tracktion Engine — High level data model for audio applications

« « « Anklang Documentation
Loading...
Searching...
No Matches
tracktion_Engine.h
Go to the documentation of this file.
1 /*
2 ,--. ,--. ,--. ,--.
3 ,-' '-.,--.--.,--,--.,---.| |,-.,-' '-.`--' ,---. ,--,--, Copyright 2024
4 '-. .-'| .--' ,-. | .--'| /'-. .-',--.| .-. || \ Tracktion Software
5 | | | | \ '-' \ `--.| \ \ | | | |' '-' '| || | Corporation
6 `---' `--' `--`--'`---'`--'`--' `---' `--' `---' `--''--' www.tracktion.com
7
8 Tracktion Engine uses a GPL/commercial licence - see LICENCE.md for details.
9*/
10
11namespace tracktion { inline namespace engine
12{
13
34class Engine
35{
36public:
38 Engine (juce::String applicationName);
39
42
45
47 ~Engine();
48
50 static juce::String getVersion();
51
52 #if TRACKTION_ENABLE_SINGLETONS
53 // Do not use in new projects
54 static Engine& getInstance();
55 #endif
58
75 ActiveEdits& getActiveEdits() const noexcept;
82
83 using WeakRef = juce::WeakReference<Engine>;
84
85private:
86 void initialise();
87
89 std::unique_ptr<TemporaryFileManager> temporaryFileManager;
90 std::unique_ptr<AudioFileFormatManager> audioFileFormatManager;
92 std::unique_ptr<MidiProgramManager> midiProgramManager;
96 std::unique_ptr<ExternalControllerManager> externalControllerManager;
97 std::unique_ptr<BackgroundJobManager> backgroundJobManager;
99 std::unique_ptr<AudioFileManager> audioFileManager;
100 std::unique_ptr<MidiLearnState> midiLearnState;
101 std::unique_ptr<PluginManager> pluginManager;
103 std::unique_ptr<RecordingThumbnailManager> recordingThumbnailManager;
104 std::unique_ptr<WaveInputRecordingThread> waveInputRecordingThread;
106 mutable std::unique_ptr<GrooveTemplateManager> grooveTemplateManager;
107 mutable std::unique_ptr<CompFactory> compFactory;
108 mutable std::unique_ptr<WarpTimeFactory> warpTimeFactory;
109 mutable std::unique_ptr<SharedTimer> backToArrangerUpdateTimer;
110 std::unique_ptr<BufferedAudioFileManager> bufferedAudioFileManager;
111
114};
115
116}} // namespace tracktion { inline namespace engine
Keeps a list of available wave formats and can create a format object for a file.
Manages a set of background tasks that can be run concurrently on a background thread.
Provides custom handlers to control various aspects of the engine's behaviour.
The Engine is the central class for all tracktion sessions.
CompFactory & getCompFactory() const
Returns the CompFactory instance.
MidiProgramManager & getMidiProgramManager() const
Returns the MidiProgramManager instance that handles MIDI banks, programs, sets or presets.
PropertyStorage & getPropertyStorage() const
Returns the PropertyStorage user settings customisable XML file.
RenderManager & getRenderManager() const
Returns the RenderManager instance.
WaveInputRecordingThread & getWaveInputRecordingThread() const
Returns the WaveInputRecordingThread instance.
AudioFileFormatManager & getAudioFileFormatManager() const
Returns the AudioFileFormatManager that maintains a list of available audio file formats.
WarpTimeFactory & getWarpTimeFactory() const
Returns the WarpTimeFactory instance.
static juce::Array< Engine * > getEngines()
Returns the list of currently active engines.
UIBehaviour & getUIBehaviour() const
Returns the UIBehaviour class.
ExternalControllerManager & getExternalControllerManager() const
Returns the ExternalControllerManager instance.
DeviceManager & getDeviceManager() const
Returns the DeviceManager instance for handling audio / MIDI devices.
AudioFileManager & getAudioFileManager() const
Returns the AudioFileManager instance.
EngineBehaviour & getEngineBehaviour() const
Returns the EngineBehaviour instance.
ProjectManager & getProjectManager() const
Returns the ProjectManager instance.
GrooveTemplateManager & getGrooveTemplateManager()
Returns the GrooveTemplateManager instance.
BufferedAudioFileManager & getBufferedAudioFileManager()
Returns the BufferedAudioFileManager instance.
RecordingThumbnailManager & getRecordingThumbnailManager() const
Returns the RecordingThumbnailManager instance.
ActiveEdits & getActiveEdits() const noexcept
Returns the ActiveEdits instance.
static juce::String getVersion()
Returns the current version of Tracktion Engine.
MidiLearnState & getMidiLearnState() const
Returns the MidiLearnState instance.
PluginManager & getPluginManager() const
Returns the PluginManager instance.
BackgroundJobManager & getBackgroundJobs() const
Returns the BackgroundJobManager instance.
TemporaryFileManager & getTemporaryFileManager() const
Returns the TemporaryFileManager allowing to handle the default app and user temporary folders.
SharedTimer & getBackToArrangerUpdateTimer() const
Returns the SharedTimer instance.
EditDeleter & getEditDeleter() const
Returns the EditDeleter instance.
Keeps a list of external controllers and keeps them connected to the right MIDI in/out devices.
Looks after the list of groove templates.
Manages the Midi learn state and Listener interface to notify subclasses when the state changes.
Create a subclass of PropertyStorage to customize how settings are saved and recalled.
Holds a pool of Thumbnails that are populated whilst recording.
Manages a set of reference counted render jobs and can be used to retrieve matching jobs or create ne...
Holds info about where temp files should go, and tidies up old ones when needed.
Create a subclass of UIBehaviour to custom UI elements created by the engine.
A WarpTimeFactory manages WarpTimeManagers for Clips living in an Edit.
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
#define JUCE_DECLARE_WEAK_REFERENCEABLE(Class)
A list of all currently open edits.
Deferred Edit object deleter.