TracktionEngine
|
Keeps a list of external controllers and keeps them connected to the right MIDI in/out devices. More...
#include <tracktion_ExternalControllerManager.h>
Inherits juce::ChangeBroadcaster, juce::ChangeListener, and juce::Timer.
Public Types | |
enum | Protocol { midi , osc } |
Public Member Functions | |
~ExternalControllerManager () override | |
void | initialise () |
void | shutdown () |
void | setCurrentEdit (Edit *, SelectionManager *) |
void | detachFromEdit (Edit *) |
void | detachFromSelectionManager (SelectionManager *) |
bool | isAttachedToEdit (const Edit *) const noexcept |
bool | isAttachedToEdit (const Edit &) const noexcept |
SelectionManager * | getSelectionManager () const noexcept |
const juce::OwnedArray< ExternalController > & | getControllers () const noexcept |
juce::StringArray | getAllControllerNames () |
ExternalController * | getActiveCustomController () |
void | midiInOutDevicesChanged () |
bool | createCustomController (const juce::String &name, Protocol) |
ExternalController * | addController (ControlSurface *) |
void | deleteController (ExternalController *) |
void | moveFader (int channelNum, float newSliderPos) |
void | moveMasterFader (float newPos) |
void | movePanPot (int channelNum, float newPan) |
void | moveMasterPanPot (float newPan) |
void | playStateChanged (bool isPlaying) |
void | recordStateChanged (bool isRecording) |
void | automationModeChanged (bool isReading, bool isWriting) |
void | channelLevelChanged (int channel, float l, float r) |
void | masterLevelsChanged (float leftLevel, float rightLevel) |
void | timecodeChanged (int barsOrHours, int beatsOrMinutes, int ticksOrSeconds, int millisecs, bool isBarsBeats, bool isFrames) |
void | editPositionChanged (Edit *, TimePosition newCursorPosition) |
void | updateVolumePlugin (VolumeAndPanPlugin &) |
void | updateVCAPlugin (VCAPlugin &vca) |
void | snapChanged (bool isOn) |
void | loopChanged (bool isOn) |
void | clickChanged (bool isOn) |
void | auxSendLevelsChanged () |
void | updateMuteSoloLights (bool onlyUpdateFlashingLights) |
void | soloCountChanged (bool) |
void | changeListenerCallback (ChangeBroadcaster *) override |
bool | shouldTrackBeColoured (int channelNum) |
juce::Colour | getTrackColour (int channelNum) |
std::vector< ColourArea > | getColouredArea (const Edit &) |
bool | shouldPluginBeColoured (Plugin *) |
juce::Colour | getPluginColour (Plugin *) |
void | updateAllDevices () |
void | updateParameters () |
void | updateMarkers () |
void | updateTrackRecordLights () |
void | updatePunchLights () |
void | updateScrollLights () |
void | updateUndoLights () |
void | updatePadColours () |
int | getNumChannelTracks () const |
Track * | getChannelTrack (int channel) const |
int | mapTrackNumToChannelNum (int channelNum) const |
int | getXTCount (const juce::String &controller) |
void | setXTCount (const juce::String &controller, int) |
void | refreshXTOrder () |
void | userTouchedFader (int channelNum, bool touch) |
void | userTouchedPanPot (int channelNum, bool touch) |
void | userTouchedMasterLevelFader (bool touch) |
void | userTouchedMasterPanPot (bool touch) |
void | userTouchedAux (int channelNum, int auxNum, AuxPosition ap, bool touch) |
void | userTouchedQuickParam (bool touch) |
void | userMovedFader (int channelNum, float newSliderPos, bool delta) |
void | userMovedMasterFader (Edit *, float newLevel, bool delta) |
void | userMovedMasterPanPot (Edit *, float newLevel, bool delta) |
void | userMovedPanPot (int channelNum, float newPan, bool delta) |
void | userPressedSolo (int channelNum) |
void | userPressedSoloIsolate (int channelNum) |
void | userPressedMute (int channelNum, bool muteVolumeControl) |
void | userSelectedTrack (int channelNum) |
void | userSelectedOneTrack (int channelNum) |
void | userSelectedClipInTrack (int channelNum) |
void | userSelectedPluginInTrack (int channelNum) |
void | userMovedAux (int channelNum, int auxNum, AuxPosition ap, float newPosition, bool delta) |
void | userPressedAux (int channelNum, int auxNum) |
void | userMovedQuickParam (float newLevel) |
void | userLaunchedClip (int channelNum, int clip, bool press) |
void | userStoppedClip (int channelNum, bool press) |
void | userLaunchedScene (int scene, bool press) |
void | updateDeviceState () |
void | repaintTrack (int channelNum) |
void | repaintPlugin (Plugin &) |
void | repaintSlots (int channelNum) |
Public Attributes | |
std::function< bool(const Track &)> | isVisibleOnControlSurface |
Callback that can be set to determine if a track is visible on a controller or not. | |
std::function< int(Edit &, int)> | mapEditTrackNumToControlSurfaceChannelNum |
Optional callback that can be set to map an Edit track number to a control surface channel number. | |
std::function< void(FolderTrack &, bool)> | setFolderTrackOpen |
Callback that can be set allow surfaces to open/close folders. | |
std::function< bool(FolderTrack &)> | isFolderTrackOpen |
Callback that can be set allow surfaces to show the open/close status of folders. | |
std::function< void(Edit &, bool)> | setScrollingEnabled |
Callback that can be set allow surfaces to set the scroll status of an Edit. | |
std::function< bool(Edit &)> | isScrollingEnabled |
Callback that can be set allow surfaces to show the scroll status of an Edit. | |
std::function< void(Edit &, Track &, int, bool)> | launchClip |
Launch clip by track and index. | |
std::function< void(Edit &, Track *, bool)> | stopClip |
Stop all clips on track. | |
std::function< void(Edit &, int, bool)> | launchScene |
Launch scene by index. | |
Engine & | engine |
Keeps a list of external controllers and keeps them connected to the right MIDI in/out devices.
|
override |
void tracktion::engine::ExternalControllerManager::initialise | ( | ) |
void tracktion::engine::ExternalControllerManager::shutdown | ( | ) |
void tracktion::engine::ExternalControllerManager::setCurrentEdit | ( | Edit * | , |
SelectionManager * | |||
) |
void tracktion::engine::ExternalControllerManager::detachFromEdit | ( | Edit * | ) |
void tracktion::engine::ExternalControllerManager::detachFromSelectionManager | ( | SelectionManager * | ) |
|
noexcept |
|
noexcept |
|
noexcept |
|
noexcept |
juce::StringArray tracktion::engine::ExternalControllerManager::getAllControllerNames | ( | ) |
ExternalController * tracktion::engine::ExternalControllerManager::getActiveCustomController | ( | ) |
void tracktion::engine::ExternalControllerManager::midiInOutDevicesChanged | ( | ) |
bool tracktion::engine::ExternalControllerManager::createCustomController | ( | const juce::String & | name, |
Protocol | |||
) |
ExternalController * tracktion::engine::ExternalControllerManager::addController | ( | ControlSurface * | ) |
void tracktion::engine::ExternalControllerManager::deleteController | ( | ExternalController * | ) |
void tracktion::engine::ExternalControllerManager::moveFader | ( | int | channelNum, |
float | newSliderPos | ||
) |
void tracktion::engine::ExternalControllerManager::moveMasterFader | ( | float | newPos | ) |
void tracktion::engine::ExternalControllerManager::movePanPot | ( | int | channelNum, |
float | newPan | ||
) |
void tracktion::engine::ExternalControllerManager::moveMasterPanPot | ( | float | newPan | ) |
void tracktion::engine::ExternalControllerManager::playStateChanged | ( | bool | isPlaying | ) |
void tracktion::engine::ExternalControllerManager::recordStateChanged | ( | bool | isRecording | ) |
void tracktion::engine::ExternalControllerManager::automationModeChanged | ( | bool | isReading, |
bool | isWriting | ||
) |
void tracktion::engine::ExternalControllerManager::channelLevelChanged | ( | int | channel, |
float | l, | ||
float | r | ||
) |
void tracktion::engine::ExternalControllerManager::masterLevelsChanged | ( | float | leftLevel, |
float | rightLevel | ||
) |
void tracktion::engine::ExternalControllerManager::timecodeChanged | ( | int | barsOrHours, |
int | beatsOrMinutes, | ||
int | ticksOrSeconds, | ||
int | millisecs, | ||
bool | isBarsBeats, | ||
bool | isFrames | ||
) |
void tracktion::engine::ExternalControllerManager::editPositionChanged | ( | Edit * | , |
TimePosition | newCursorPosition | ||
) |
void tracktion::engine::ExternalControllerManager::updateVolumePlugin | ( | VolumeAndPanPlugin & | ) |
void tracktion::engine::ExternalControllerManager::updateVCAPlugin | ( | VCAPlugin & | vca | ) |
void tracktion::engine::ExternalControllerManager::snapChanged | ( | bool | isOn | ) |
void tracktion::engine::ExternalControllerManager::loopChanged | ( | bool | isOn | ) |
void tracktion::engine::ExternalControllerManager::clickChanged | ( | bool | isOn | ) |
void tracktion::engine::ExternalControllerManager::auxSendLevelsChanged | ( | ) |
void tracktion::engine::ExternalControllerManager::updateMuteSoloLights | ( | bool | onlyUpdateFlashingLights | ) |
void tracktion::engine::ExternalControllerManager::soloCountChanged | ( | bool | ) |
|
override |
bool tracktion::engine::ExternalControllerManager::shouldTrackBeColoured | ( | int | channelNum | ) |
juce::Colour tracktion::engine::ExternalControllerManager::getTrackColour | ( | int | channelNum | ) |
std::vector< ColourArea > tracktion::engine::ExternalControllerManager::getColouredArea | ( | const Edit & | ) |
bool tracktion::engine::ExternalControllerManager::shouldPluginBeColoured | ( | Plugin * | ) |
juce::Colour tracktion::engine::ExternalControllerManager::getPluginColour | ( | Plugin * | ) |
void tracktion::engine::ExternalControllerManager::updateAllDevices | ( | ) |
void tracktion::engine::ExternalControllerManager::updateParameters | ( | ) |
void tracktion::engine::ExternalControllerManager::updateMarkers | ( | ) |
void tracktion::engine::ExternalControllerManager::updateTrackRecordLights | ( | ) |
void tracktion::engine::ExternalControllerManager::updatePunchLights | ( | ) |
void tracktion::engine::ExternalControllerManager::updateScrollLights | ( | ) |
void tracktion::engine::ExternalControllerManager::updateUndoLights | ( | ) |
void tracktion::engine::ExternalControllerManager::updatePadColours | ( | ) |
int tracktion::engine::ExternalControllerManager::getNumChannelTracks | ( | ) | const |
Track * tracktion::engine::ExternalControllerManager::getChannelTrack | ( | int | channel | ) | const |
int tracktion::engine::ExternalControllerManager::mapTrackNumToChannelNum | ( | int | channelNum | ) | const |
int tracktion::engine::ExternalControllerManager::getXTCount | ( | const juce::String & | controller | ) |
void tracktion::engine::ExternalControllerManager::setXTCount | ( | const juce::String & | controller, |
int | |||
) |
void tracktion::engine::ExternalControllerManager::refreshXTOrder | ( | ) |
void tracktion::engine::ExternalControllerManager::userTouchedFader | ( | int | channelNum, |
bool | touch | ||
) |
void tracktion::engine::ExternalControllerManager::userTouchedPanPot | ( | int | channelNum, |
bool | touch | ||
) |
void tracktion::engine::ExternalControllerManager::userTouchedMasterLevelFader | ( | bool | touch | ) |
void tracktion::engine::ExternalControllerManager::userTouchedMasterPanPot | ( | bool | touch | ) |
void tracktion::engine::ExternalControllerManager::userTouchedAux | ( | int | channelNum, |
int | auxNum, | ||
AuxPosition | ap, | ||
bool | touch | ||
) |
void tracktion::engine::ExternalControllerManager::userTouchedQuickParam | ( | bool | touch | ) |
void tracktion::engine::ExternalControllerManager::userMovedFader | ( | int | channelNum, |
float | newSliderPos, | ||
bool | delta | ||
) |
void tracktion::engine::ExternalControllerManager::userMovedMasterFader | ( | Edit * | , |
float | newLevel, | ||
bool | delta | ||
) |
void tracktion::engine::ExternalControllerManager::userMovedMasterPanPot | ( | Edit * | , |
float | newLevel, | ||
bool | delta | ||
) |
void tracktion::engine::ExternalControllerManager::userMovedPanPot | ( | int | channelNum, |
float | newPan, | ||
bool | delta | ||
) |
void tracktion::engine::ExternalControllerManager::userPressedSolo | ( | int | channelNum | ) |
void tracktion::engine::ExternalControllerManager::userPressedSoloIsolate | ( | int | channelNum | ) |
void tracktion::engine::ExternalControllerManager::userPressedMute | ( | int | channelNum, |
bool | muteVolumeControl | ||
) |
void tracktion::engine::ExternalControllerManager::userSelectedTrack | ( | int | channelNum | ) |
void tracktion::engine::ExternalControllerManager::userSelectedOneTrack | ( | int | channelNum | ) |
void tracktion::engine::ExternalControllerManager::userSelectedClipInTrack | ( | int | channelNum | ) |
void tracktion::engine::ExternalControllerManager::userSelectedPluginInTrack | ( | int | channelNum | ) |
void tracktion::engine::ExternalControllerManager::userMovedAux | ( | int | channelNum, |
int | auxNum, | ||
AuxPosition | ap, | ||
float | newPosition, | ||
bool | delta | ||
) |
void tracktion::engine::ExternalControllerManager::userPressedAux | ( | int | channelNum, |
int | auxNum | ||
) |
void tracktion::engine::ExternalControllerManager::userMovedQuickParam | ( | float | newLevel | ) |
void tracktion::engine::ExternalControllerManager::userLaunchedClip | ( | int | channelNum, |
int | clip, | ||
bool | press | ||
) |
void tracktion::engine::ExternalControllerManager::userStoppedClip | ( | int | channelNum, |
bool | press | ||
) |
void tracktion::engine::ExternalControllerManager::userLaunchedScene | ( | int | scene, |
bool | press | ||
) |
void tracktion::engine::ExternalControllerManager::updateDeviceState | ( | ) |
void tracktion::engine::ExternalControllerManager::repaintTrack | ( | int | channelNum | ) |
void tracktion::engine::ExternalControllerManager::repaintPlugin | ( | Plugin & | ) |
void tracktion::engine::ExternalControllerManager::repaintSlots | ( | int | channelNum | ) |
std::function<bool (const Track&)> tracktion::engine::ExternalControllerManager::isVisibleOnControlSurface |
Callback that can be set to determine if a track is visible on a controller or not.
std::function<int (Edit&, int)> tracktion::engine::ExternalControllerManager::mapEditTrackNumToControlSurfaceChannelNum |
Optional callback that can be set to map an Edit track number to a control surface channel number.
If this isn't set, the manager will iterate the tracks to find the mapping. This can be slow however so this function can be used to create your own cache and speed up the process.
std::function<void (FolderTrack&, bool)> tracktion::engine::ExternalControllerManager::setFolderTrackOpen |
Callback that can be set allow surfaces to open/close folders.
std::function<bool (FolderTrack&)> tracktion::engine::ExternalControllerManager::isFolderTrackOpen |
Callback that can be set allow surfaces to show the open/close status of folders.
std::function<void (Edit&, bool)> tracktion::engine::ExternalControllerManager::setScrollingEnabled |
Callback that can be set allow surfaces to set the scroll status of an Edit.
std::function<bool (Edit&)> tracktion::engine::ExternalControllerManager::isScrollingEnabled |
Callback that can be set allow surfaces to show the scroll status of an Edit.
std::function<void (Edit&, Track&, int, bool)> tracktion::engine::ExternalControllerManager::launchClip |
Launch clip by track and index.
Stop all clips on track.
If track is nullptr, stop all tracks
std::function<void (Edit&, int, bool)> tracktion::engine::ExternalControllerManager::launchScene |
Launch scene by index.
Engine& tracktion::engine::ExternalControllerManager::engine |