TracktionEngine
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
tracktion::engine::ExternalControllerManager Class Reference

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
 
SelectionManagergetSelectionManager () const noexcept
 
const juce::OwnedArray< ExternalController > & getControllers () const noexcept
 
juce::StringArray getAllControllerNames ()
 
ExternalControllergetActiveCustomController ()
 
void midiInOutDevicesChanged ()
 
bool createCustomController (const juce::String &name, Protocol)
 
ExternalControlleraddController (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< ColourAreagetColouredArea (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
 
TrackgetChannelTrack (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.
 
Engineengine
 

Detailed Description

Keeps a list of external controllers and keeps them connected to the right MIDI in/out devices.

Member Enumeration Documentation

◆ Protocol

Enumerator
midi 
osc 

Constructor & Destructor Documentation

◆ ~ExternalControllerManager()

tracktion::engine::ExternalControllerManager::~ExternalControllerManager ( )
override

Member Function Documentation

◆ initialise()

void tracktion::engine::ExternalControllerManager::initialise ( )

◆ shutdown()

void tracktion::engine::ExternalControllerManager::shutdown ( )

◆ setCurrentEdit()

void tracktion::engine::ExternalControllerManager::setCurrentEdit ( Edit ,
SelectionManager  
)

◆ detachFromEdit()

void tracktion::engine::ExternalControllerManager::detachFromEdit ( Edit )

◆ detachFromSelectionManager()

void tracktion::engine::ExternalControllerManager::detachFromSelectionManager ( SelectionManager )

◆ isAttachedToEdit() [1/2]

bool tracktion::engine::ExternalControllerManager::isAttachedToEdit ( const Edit ) const
noexcept

◆ isAttachedToEdit() [2/2]

bool tracktion::engine::ExternalControllerManager::isAttachedToEdit ( const Edit ) const
noexcept

◆ getSelectionManager()

SelectionManager * tracktion::engine::ExternalControllerManager::getSelectionManager ( ) const
noexcept

◆ getControllers()

const juce::OwnedArray< ExternalController > & tracktion::engine::ExternalControllerManager::getControllers ( ) const
noexcept

◆ getAllControllerNames()

juce::StringArray tracktion::engine::ExternalControllerManager::getAllControllerNames ( )

◆ getActiveCustomController()

ExternalController * tracktion::engine::ExternalControllerManager::getActiveCustomController ( )

◆ midiInOutDevicesChanged()

void tracktion::engine::ExternalControllerManager::midiInOutDevicesChanged ( )

◆ createCustomController()

bool tracktion::engine::ExternalControllerManager::createCustomController ( const juce::String &  name,
Protocol   
)

◆ addController()

ExternalController * tracktion::engine::ExternalControllerManager::addController ( ControlSurface )

◆ deleteController()

void tracktion::engine::ExternalControllerManager::deleteController ( ExternalController )

◆ moveFader()

void tracktion::engine::ExternalControllerManager::moveFader ( int  channelNum,
float  newSliderPos 
)

◆ moveMasterFader()

void tracktion::engine::ExternalControllerManager::moveMasterFader ( float  newPos)

◆ movePanPot()

void tracktion::engine::ExternalControllerManager::movePanPot ( int  channelNum,
float  newPan 
)

◆ moveMasterPanPot()

void tracktion::engine::ExternalControllerManager::moveMasterPanPot ( float  newPan)

◆ playStateChanged()

void tracktion::engine::ExternalControllerManager::playStateChanged ( bool  isPlaying)

◆ recordStateChanged()

void tracktion::engine::ExternalControllerManager::recordStateChanged ( bool  isRecording)

◆ automationModeChanged()

void tracktion::engine::ExternalControllerManager::automationModeChanged ( bool  isReading,
bool  isWriting 
)

◆ channelLevelChanged()

void tracktion::engine::ExternalControllerManager::channelLevelChanged ( int  channel,
float  l,
float  r 
)

◆ masterLevelsChanged()

void tracktion::engine::ExternalControllerManager::masterLevelsChanged ( float  leftLevel,
float  rightLevel 
)

◆ timecodeChanged()

void tracktion::engine::ExternalControllerManager::timecodeChanged ( int  barsOrHours,
int  beatsOrMinutes,
int  ticksOrSeconds,
int  millisecs,
bool  isBarsBeats,
bool  isFrames 
)

◆ editPositionChanged()

void tracktion::engine::ExternalControllerManager::editPositionChanged ( Edit ,
TimePosition  newCursorPosition 
)

◆ updateVolumePlugin()

void tracktion::engine::ExternalControllerManager::updateVolumePlugin ( VolumeAndPanPlugin )

◆ updateVCAPlugin()

void tracktion::engine::ExternalControllerManager::updateVCAPlugin ( VCAPlugin vca)

◆ snapChanged()

void tracktion::engine::ExternalControllerManager::snapChanged ( bool  isOn)

◆ loopChanged()

void tracktion::engine::ExternalControllerManager::loopChanged ( bool  isOn)

◆ clickChanged()

void tracktion::engine::ExternalControllerManager::clickChanged ( bool  isOn)

◆ auxSendLevelsChanged()

void tracktion::engine::ExternalControllerManager::auxSendLevelsChanged ( )

◆ updateMuteSoloLights()

void tracktion::engine::ExternalControllerManager::updateMuteSoloLights ( bool  onlyUpdateFlashingLights)

◆ soloCountChanged()

void tracktion::engine::ExternalControllerManager::soloCountChanged ( bool  )

◆ changeListenerCallback()

void tracktion::engine::ExternalControllerManager::changeListenerCallback ( ChangeBroadcaster *  )
override

◆ shouldTrackBeColoured()

bool tracktion::engine::ExternalControllerManager::shouldTrackBeColoured ( int  channelNum)

◆ getTrackColour()

juce::Colour tracktion::engine::ExternalControllerManager::getTrackColour ( int  channelNum)

◆ getColouredArea()

std::vector< ColourArea > tracktion::engine::ExternalControllerManager::getColouredArea ( const Edit )

◆ shouldPluginBeColoured()

bool tracktion::engine::ExternalControllerManager::shouldPluginBeColoured ( Plugin )

◆ getPluginColour()

juce::Colour tracktion::engine::ExternalControllerManager::getPluginColour ( Plugin )

◆ updateAllDevices()

void tracktion::engine::ExternalControllerManager::updateAllDevices ( )

◆ updateParameters()

void tracktion::engine::ExternalControllerManager::updateParameters ( )

◆ updateMarkers()

void tracktion::engine::ExternalControllerManager::updateMarkers ( )

◆ updateTrackRecordLights()

void tracktion::engine::ExternalControllerManager::updateTrackRecordLights ( )

◆ updatePunchLights()

void tracktion::engine::ExternalControllerManager::updatePunchLights ( )

◆ updateScrollLights()

void tracktion::engine::ExternalControllerManager::updateScrollLights ( )

◆ updateUndoLights()

void tracktion::engine::ExternalControllerManager::updateUndoLights ( )

◆ updatePadColours()

void tracktion::engine::ExternalControllerManager::updatePadColours ( )

◆ getNumChannelTracks()

int tracktion::engine::ExternalControllerManager::getNumChannelTracks ( ) const

◆ getChannelTrack()

Track * tracktion::engine::ExternalControllerManager::getChannelTrack ( int  channel) const

◆ mapTrackNumToChannelNum()

int tracktion::engine::ExternalControllerManager::mapTrackNumToChannelNum ( int  channelNum) const

◆ getXTCount()

int tracktion::engine::ExternalControllerManager::getXTCount ( const juce::String &  controller)

◆ setXTCount()

void tracktion::engine::ExternalControllerManager::setXTCount ( const juce::String &  controller,
int   
)

◆ refreshXTOrder()

void tracktion::engine::ExternalControllerManager::refreshXTOrder ( )

◆ userTouchedFader()

void tracktion::engine::ExternalControllerManager::userTouchedFader ( int  channelNum,
bool  touch 
)

◆ userTouchedPanPot()

void tracktion::engine::ExternalControllerManager::userTouchedPanPot ( int  channelNum,
bool  touch 
)

◆ userTouchedMasterLevelFader()

void tracktion::engine::ExternalControllerManager::userTouchedMasterLevelFader ( bool  touch)

◆ userTouchedMasterPanPot()

void tracktion::engine::ExternalControllerManager::userTouchedMasterPanPot ( bool  touch)

◆ userTouchedAux()

void tracktion::engine::ExternalControllerManager::userTouchedAux ( int  channelNum,
int  auxNum,
AuxPosition  ap,
bool  touch 
)

◆ userTouchedQuickParam()

void tracktion::engine::ExternalControllerManager::userTouchedQuickParam ( bool  touch)

◆ userMovedFader()

void tracktion::engine::ExternalControllerManager::userMovedFader ( int  channelNum,
float  newSliderPos,
bool  delta 
)

◆ userMovedMasterFader()

void tracktion::engine::ExternalControllerManager::userMovedMasterFader ( Edit ,
float  newLevel,
bool  delta 
)

◆ userMovedMasterPanPot()

void tracktion::engine::ExternalControllerManager::userMovedMasterPanPot ( Edit ,
float  newLevel,
bool  delta 
)

◆ userMovedPanPot()

void tracktion::engine::ExternalControllerManager::userMovedPanPot ( int  channelNum,
float  newPan,
bool  delta 
)

◆ userPressedSolo()

void tracktion::engine::ExternalControllerManager::userPressedSolo ( int  channelNum)

◆ userPressedSoloIsolate()

void tracktion::engine::ExternalControllerManager::userPressedSoloIsolate ( int  channelNum)

◆ userPressedMute()

void tracktion::engine::ExternalControllerManager::userPressedMute ( int  channelNum,
bool  muteVolumeControl 
)

◆ userSelectedTrack()

void tracktion::engine::ExternalControllerManager::userSelectedTrack ( int  channelNum)

◆ userSelectedOneTrack()

void tracktion::engine::ExternalControllerManager::userSelectedOneTrack ( int  channelNum)

◆ userSelectedClipInTrack()

void tracktion::engine::ExternalControllerManager::userSelectedClipInTrack ( int  channelNum)

◆ userSelectedPluginInTrack()

void tracktion::engine::ExternalControllerManager::userSelectedPluginInTrack ( int  channelNum)

◆ userMovedAux()

void tracktion::engine::ExternalControllerManager::userMovedAux ( int  channelNum,
int  auxNum,
AuxPosition  ap,
float  newPosition,
bool  delta 
)

◆ userPressedAux()

void tracktion::engine::ExternalControllerManager::userPressedAux ( int  channelNum,
int  auxNum 
)

◆ userMovedQuickParam()

void tracktion::engine::ExternalControllerManager::userMovedQuickParam ( float  newLevel)

◆ userLaunchedClip()

void tracktion::engine::ExternalControllerManager::userLaunchedClip ( int  channelNum,
int  clip,
bool  press 
)

◆ userStoppedClip()

void tracktion::engine::ExternalControllerManager::userStoppedClip ( int  channelNum,
bool  press 
)

◆ userLaunchedScene()

void tracktion::engine::ExternalControllerManager::userLaunchedScene ( int  scene,
bool  press 
)

◆ updateDeviceState()

void tracktion::engine::ExternalControllerManager::updateDeviceState ( )

◆ repaintTrack()

void tracktion::engine::ExternalControllerManager::repaintTrack ( int  channelNum)

◆ repaintPlugin()

void tracktion::engine::ExternalControllerManager::repaintPlugin ( Plugin )

◆ repaintSlots()

void tracktion::engine::ExternalControllerManager::repaintSlots ( int  channelNum)

Member Data Documentation

◆ isVisibleOnControlSurface

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.

◆ mapEditTrackNumToControlSurfaceChannelNum

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.

◆ setFolderTrackOpen

std::function<void (FolderTrack&, bool)> tracktion::engine::ExternalControllerManager::setFolderTrackOpen

Callback that can be set allow surfaces to open/close folders.

◆ isFolderTrackOpen

std::function<bool (FolderTrack&)> tracktion::engine::ExternalControllerManager::isFolderTrackOpen

Callback that can be set allow surfaces to show the open/close status of folders.

◆ setScrollingEnabled

std::function<void (Edit&, bool)> tracktion::engine::ExternalControllerManager::setScrollingEnabled

Callback that can be set allow surfaces to set the scroll status of an Edit.

◆ isScrollingEnabled

std::function<bool (Edit&)> tracktion::engine::ExternalControllerManager::isScrollingEnabled

Callback that can be set allow surfaces to show the scroll status of an Edit.

◆ launchClip

std::function<void (Edit&, Track&, int, bool)> tracktion::engine::ExternalControllerManager::launchClip

Launch clip by track and index.

◆ stopClip

std::function<void (Edit&, Track*, bool)> tracktion::engine::ExternalControllerManager::stopClip

Stop all clips on track.

If track is nullptr, stop all tracks

◆ launchScene

std::function<void (Edit&, int, bool)> tracktion::engine::ExternalControllerManager::launchScene

Launch scene by index.

◆ engine

Engine& tracktion::engine::ExternalControllerManager::engine

The documentation for this class was generated from the following file: