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

« « « Anklang Documentation
Loading...
Searching...
No Matches
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
11namespace tracktion { inline namespace engine
12{
13
15 private juce::AsyncUpdater,
17{
18public:
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
33private:
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
53};
54
55}} // namespace tracktion { inline namespace engine
The Tracktion Edit class!
An instance of an InputDevice that's available to an Edit.
Represents an input device.
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)