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

« « « Anklang Documentation
Loading...
Searching...
No Matches
tracktion_OutputDevice.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
18{
19public:
21 ~OutputDevice() override;
22
23 //==============================================================================
24 virtual juce::String getName() const;
25
27 juce::String getAlias() const;
28 void setAlias (const juce::String& alias);
29
30 juce::String getDeviceID() const { return deviceID; }
32
33 //==============================================================================
34 bool isEnabled() const;
35 virtual void setEnabled (bool b) = 0;
36
37 virtual bool isMidi() const { return false; }
38
39 Engine& engine;
40
41protected:
42 //==============================================================================
43 bool enabled = false;
44
45 virtual juce::String openDevice() = 0;
46 virtual void closeDevice() = 0;
47
48private:
49 const juce::String type, deviceID, name;
50 juce::String alias;
51
52 juce::String getAliasPropName() const;
53};
54
55
56//==============================================================================
70
71}} // namespace tracktion { inline namespace engine
The Tracktion Edit class!
The Engine is the central class for all tracktion sessions.
Base class for audio or midi output devices, to which a track's output can be sent.
juce::String getAlias() const
the alias is the name shown in the draggable input device components
juce::String getSelectableDescription() override
Subclasses must return a description of what they are.
Base class for things that can be selected, and whose properties can appear in the properties panel.
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)