tracktion-engine
3.0-10-g034fdde4aa5
Tracktion Engine — High level data model for audio applications
« « « Anklang Documentation
Loading...
Searching...
No Matches
tracktion_engine
playback
tracktion_EditInputDevices.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
11
namespace
tracktion
{
inline
namespace
engine
12
{
13
14
class
EditInputDevices
:
private
juce::ChangeListener
,
15
private
juce::AsyncUpdater
,
16
private
juce::ValueTree::Listener
17
{
18
public
:
19
EditInputDevices
(
Edit
&,
const
juce::ValueTree
& state);
20
~EditInputDevices
()
override
;
21
22
int
getMaxNumInputs()
const
;
23
24
bool
isInputDeviceAssigned (
const
InputDevice
&);
25
26
void
clearAllInputs (
AudioTrack
&,
juce::UndoManager
*);
27
void
clearInputsOfDevice (
AudioTrack
&,
const
InputDevice
&,
juce::UndoManager
*);
28
InputDeviceInstance
* getInputInstance (
const
AudioTrack
&,
int
index)
const
;
29
juce::Array<InputDeviceInstance*>
getDevicesForTargetTrack (
const
AudioTrack
&)
const
;
30
31
juce::ValueTree
getInstanceStateForInputDevice (
const
InputDevice
&);
32
33
private
:
34
Edit
& edit;
35
juce::ValueTree
state, editState;
36
37
void
removeNonExistantInputDeviceStates();
38
void
addTrackDeviceInstanceToContext (
const
juce::ValueTree
&)
const
;
39
void
removeTrackDeviceInstanceToContext (
const
juce::ValueTree
&)
const
;
40
InputDevice
* getTrackDeviceForState (
const
juce::ValueTree
&)
const
;
41
42
void
changeListenerCallback (
juce::ChangeBroadcaster
*)
override
;
43
void
handleAsyncUpdate()
override
;
44
45
void
valueTreePropertyChanged (
juce::ValueTree
&,
const
juce::Identifier
&)
override
{}
46
void
valueTreeChildOrderChanged (
juce::ValueTree
&,
int
,
int
)
override
{}
47
void
valueTreeParentChanged (
juce::ValueTree
&)
override
{}
48
void
valueTreeRedirected (
juce::ValueTree
&)
override
{}
49
void
valueTreeChildAdded (
juce::ValueTree
&,
juce::ValueTree
&)
override
;
50
void
valueTreeChildRemoved (
juce::ValueTree
&,
juce::ValueTree
&,
int
)
override
;
51
52
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR
(
EditInputDevices
)
53
};
54
55
}}
// namespace tracktion { inline namespace engine
juce::Array
juce::AsyncUpdater
juce::ChangeBroadcaster
juce::ChangeListener
juce::Identifier
juce::ValueTree::Listener
tracktion::AudioTrack
Definition
tracktion_AudioTrack.h:18
tracktion::EditInputDevices
Definition
tracktion_EditInputDevices.h:17
tracktion::Edit
The Tracktion Edit class!
Definition
tracktion_Edit.h:65
tracktion::InputDeviceInstance
An instance of an InputDevice that's available to an Edit.
Definition
tracktion_InputDevice.h:109
tracktion::InputDevice
Represents an input device.
Definition
tracktion_InputDevice.h:22
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
tracktion
Definition
tracktion_AudioReader.h:23
juce::UndoManager
juce::ValueTree
« « « Anklang Documentation