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

#include <tracktion_MidiOutputDevice.h>

Inheritance diagram for tracktion::engine::MidiOutputDevice:

Public Member Functions

 MidiOutputDevice (Engine &, juce::MidiDeviceInfo)
 
 ~MidiOutputDevice () override
 
juce::String openDevice () override
 
void closeDevice () override
 
void setEnabled (bool) override
 
bool isMidi () const override
 
virtual MidiOutputDeviceInstancecreateInstance (EditPlaybackContext &)
 
juce::String prepareToPlay (Edit *, TimePosition)
 
bool start ()
 
void stop ()
 
juce::String getNameForMidiNoteNumber (int note, int midiChannel, bool useSharp=true) const
 
bool isConnectedToExternalController () const
 
void setExternalController (ExternalController *)
 sets the external controller messages are coming from
 
void removeExternalController (ExternalController *)
 
void updateMidiTC (Edit *)
 
void setSendingMMC (bool)
 
bool isSendingMMC () const noexcept
 
bool isSendingClock () const noexcept
 
void setSendingClock (bool)
 
bool isSendingTimecode () const noexcept
 
void flipSendingTimecode ()
 
void setSendControllerMidiClock (bool b) noexcept
 
bool isSendingControllerMidiClock () const noexcept
 
void fireMessage (const juce::MidiMessage &)
 
void sendNoteOffMessages ()
 
TimeDuration getDeviceDelay () const noexcept
 
int getPreDelayMs () const noexcept
 
void setPreDelayMs (int)
 
juce::StringArray getProgramSets () const
 
int getCurrentSetIndex () const
 
void setCurrentProgramSet (const juce::String &)
 
juce::String getCurrentProgramSet () const
 
juce::String getProgramName (int programNumber, int bank)
 
bool canEditProgramSet (int index) const
 
bool canDeleteProgramSet (int index) const
 
juce::String getBankName (int bank)
 
int getBankID (int bank)
 
bool areMidiPatchesZeroBased ()
 
MidiProgramManagergetMidiProgramManager () const
 
- Public Member Functions inherited from tracktion::engine::OutputDevice
 OutputDevice (Engine &, juce::String type, juce::String name, juce::String deviceID)
 
 ~OutputDevice () override
 
virtual juce::String getName () const
 
juce::String getAlias () const
 the alias is the name shown in the draggable input device components
 
void setAlias (const juce::String &alias)
 
juce::String getDeviceID () const
 
juce::String getSelectableDescription () override
 Subclasses must return a description of what they are.
 
bool isEnabled () const
 
- Public Member Functions inherited from tracktion::engine::Selectable
 Selectable ()
 
virtual ~Selectable ()
 
virtual void selectionStatusChanged (bool isNowSelected)
 Can be overridden to tell this object that it has just been selected or deselected.
 
virtual void changed ()
 This should be called to send a change notification to any SelectableListeners that are registered with this object.
 
virtual void selectableAboutToBeDeleted ()
 Called just before the selectable is about to be deleted so any subclasses should still be valid at this point.
 
void addListener (SelectableListener *)
 
void removeListener (SelectableListener *)
 
void addSelectableListener (SelectableListener *)
 
void removeSelectableListener (SelectableListener *)
 
void cancelAnyPendingUpdates ()
 If changed() has been called, this will cancel any pending async change notificaions.
 
void deselect ()
 
void propertiesChanged ()
 
void notifyListenersOfDeletion ()
 
WeakRef getWeakRef ()
 

Static Public Member Functions

static void setControllerOffMessagesSent (Engine &, bool)
 
static bool getControllerOffMessagesSent (Engine &)
 
- Static Public Member Functions inherited from tracktion::engine::Selectable
static void initialise ()
 
static bool isSelectableValid (const Selectable *) noexcept
 checks whether this object has been deleted.
 

Protected Member Functions

virtual void sendMessageNow (const juce::MidiMessage &message)
 
void loadProps ()
 
void saveProps ()
 

Protected Attributes

juce::MidiDeviceInfo deviceInfo
 
int preDelayMillisecs = 0
 
int audioAdjustmentDelay = 0
 
std::unique_ptr< MidiTimecodeGenerator > timecodeGenerator
 
std::unique_ptr< MidiClockGenerator > midiClockGenerator
 
bool sendTimecode = false
 
bool sendMidiClock = false
 
bool playing = false
 
juce::String programNameSet
 
double sampleRate = 0
 
std::unique_ptr< juce::MidiOutput > outputDevice
 
bool sendingMMC = false
 
bool sendControllerMidiClock = false
 
bool softDevice = false
 
ExternalControllerexternalController = nullptr
 
juce::BigInteger midiNotesOn
 
juce::BigInteger channelsUsed
 
int sustain = 0
 
MidiMessageArray midiMessages
 
juce::CriticalSection noteOnLock
 
- Protected Attributes inherited from tracktion::engine::OutputDevice
bool enabled = false
 

Additional Inherited Members

- Public Types inherited from tracktion::engine::Selectable
using WeakRef = juce::WeakReference< Selectable >
 
- Public Attributes inherited from tracktion::engine::OutputDevice
Engineengine
 
- Public Attributes inherited from tracktion::engine::Selectable
WeakRef::Master masterReference
 

Constructor & Destructor Documentation

◆ MidiOutputDevice()

tracktion::engine::MidiOutputDevice::MidiOutputDevice ( Engine ,
juce::MidiDeviceInfo   
)

◆ ~MidiOutputDevice()

tracktion::engine::MidiOutputDevice::~MidiOutputDevice ( )
override

Member Function Documentation

◆ openDevice()

juce::String tracktion::engine::MidiOutputDevice::openDevice ( )
overridevirtual

◆ closeDevice()

void tracktion::engine::MidiOutputDevice::closeDevice ( )
overridevirtual

◆ setEnabled()

void tracktion::engine::MidiOutputDevice::setEnabled ( bool  )
overridevirtual

◆ isMidi()

bool tracktion::engine::MidiOutputDevice::isMidi ( ) const
overridevirtual

Reimplemented from tracktion::engine::OutputDevice.

◆ createInstance()

virtual MidiOutputDeviceInstance * tracktion::engine::MidiOutputDevice::createInstance ( EditPlaybackContext )
virtual

◆ prepareToPlay()

juce::String tracktion::engine::MidiOutputDevice::prepareToPlay ( Edit ,
TimePosition   
)

◆ start()

bool tracktion::engine::MidiOutputDevice::start ( )

◆ stop()

void tracktion::engine::MidiOutputDevice::stop ( )

◆ setControllerOffMessagesSent()

static void tracktion::engine::MidiOutputDevice::setControllerOffMessagesSent ( Engine ,
bool   
)
static

◆ getControllerOffMessagesSent()

static bool tracktion::engine::MidiOutputDevice::getControllerOffMessagesSent ( Engine )
static

◆ getNameForMidiNoteNumber()

juce::String tracktion::engine::MidiOutputDevice::getNameForMidiNoteNumber ( int  note,
int  midiChannel,
bool  useSharp = true 
) const

◆ isConnectedToExternalController()

bool tracktion::engine::MidiOutputDevice::isConnectedToExternalController ( ) const

References externalController.

◆ setExternalController()

void tracktion::engine::MidiOutputDevice::setExternalController ( ExternalController )

sets the external controller messages are coming from

◆ removeExternalController()

void tracktion::engine::MidiOutputDevice::removeExternalController ( ExternalController )

◆ updateMidiTC()

void tracktion::engine::MidiOutputDevice::updateMidiTC ( Edit )

◆ setSendingMMC()

void tracktion::engine::MidiOutputDevice::setSendingMMC ( bool  )

◆ isSendingMMC()

bool tracktion::engine::MidiOutputDevice::isSendingMMC ( ) const
noexcept

References sendingMMC.

◆ isSendingClock()

bool tracktion::engine::MidiOutputDevice::isSendingClock ( ) const
noexcept

References sendMidiClock.

◆ setSendingClock()

void tracktion::engine::MidiOutputDevice::setSendingClock ( bool  )

◆ isSendingTimecode()

bool tracktion::engine::MidiOutputDevice::isSendingTimecode ( ) const
noexcept

References sendTimecode.

◆ flipSendingTimecode()

void tracktion::engine::MidiOutputDevice::flipSendingTimecode ( )

◆ setSendControllerMidiClock()

void tracktion::engine::MidiOutputDevice::setSendControllerMidiClock ( bool  b)
noexcept

◆ isSendingControllerMidiClock()

bool tracktion::engine::MidiOutputDevice::isSendingControllerMidiClock ( ) const
noexcept

◆ fireMessage()

void tracktion::engine::MidiOutputDevice::fireMessage ( const juce::MidiMessage &  )

◆ sendNoteOffMessages()

void tracktion::engine::MidiOutputDevice::sendNoteOffMessages ( )

◆ getDeviceDelay()

TimeDuration tracktion::engine::MidiOutputDevice::getDeviceDelay ( ) const
noexcept

◆ getPreDelayMs()

int tracktion::engine::MidiOutputDevice::getPreDelayMs ( ) const
noexcept

References preDelayMillisecs.

◆ setPreDelayMs()

void tracktion::engine::MidiOutputDevice::setPreDelayMs ( int  )

◆ getProgramSets()

juce::StringArray tracktion::engine::MidiOutputDevice::getProgramSets ( ) const

◆ getCurrentSetIndex()

int tracktion::engine::MidiOutputDevice::getCurrentSetIndex ( ) const

◆ setCurrentProgramSet()

void tracktion::engine::MidiOutputDevice::setCurrentProgramSet ( const juce::String &  )

◆ getCurrentProgramSet()

juce::String tracktion::engine::MidiOutputDevice::getCurrentProgramSet ( ) const

References programNameSet.

◆ getProgramName()

juce::String tracktion::engine::MidiOutputDevice::getProgramName ( int  programNumber,
int  bank 
)

◆ canEditProgramSet()

bool tracktion::engine::MidiOutputDevice::canEditProgramSet ( int  index) const

◆ canDeleteProgramSet()

bool tracktion::engine::MidiOutputDevice::canDeleteProgramSet ( int  index) const

◆ getBankName()

juce::String tracktion::engine::MidiOutputDevice::getBankName ( int  bank)

◆ getBankID()

int tracktion::engine::MidiOutputDevice::getBankID ( int  bank)

◆ areMidiPatchesZeroBased()

bool tracktion::engine::MidiOutputDevice::areMidiPatchesZeroBased ( )

◆ getMidiProgramManager()

MidiProgramManager & tracktion::engine::MidiOutputDevice::getMidiProgramManager ( ) const

◆ sendMessageNow()

virtual void tracktion::engine::MidiOutputDevice::sendMessageNow ( const juce::MidiMessage &  message)
protectedvirtual

◆ loadProps()

void tracktion::engine::MidiOutputDevice::loadProps ( )
protected

◆ saveProps()

void tracktion::engine::MidiOutputDevice::saveProps ( )
protected

Member Data Documentation

◆ deviceInfo

juce::MidiDeviceInfo tracktion::engine::MidiOutputDevice::deviceInfo
protected

◆ preDelayMillisecs

int tracktion::engine::MidiOutputDevice::preDelayMillisecs = 0
protected

Referenced by getPreDelayMs().

◆ audioAdjustmentDelay

int tracktion::engine::MidiOutputDevice::audioAdjustmentDelay = 0
protected

◆ timecodeGenerator

std::unique_ptr<MidiTimecodeGenerator> tracktion::engine::MidiOutputDevice::timecodeGenerator
protected

◆ midiClockGenerator

std::unique_ptr<MidiClockGenerator> tracktion::engine::MidiOutputDevice::midiClockGenerator
protected

◆ sendTimecode

bool tracktion::engine::MidiOutputDevice::sendTimecode = false
protected

Referenced by isSendingTimecode().

◆ sendMidiClock

bool tracktion::engine::MidiOutputDevice::sendMidiClock = false
protected

Referenced by isSendingClock().

◆ playing

bool tracktion::engine::MidiOutputDevice::playing = false
protected

◆ programNameSet

juce::String tracktion::engine::MidiOutputDevice::programNameSet
protected

Referenced by getCurrentProgramSet().

◆ sampleRate

double tracktion::engine::MidiOutputDevice::sampleRate = 0
protected

◆ outputDevice

std::unique_ptr<juce::MidiOutput> tracktion::engine::MidiOutputDevice::outputDevice
protected

◆ sendingMMC

bool tracktion::engine::MidiOutputDevice::sendingMMC = false
protected

Referenced by isSendingMMC().

◆ sendControllerMidiClock

bool tracktion::engine::MidiOutputDevice::sendControllerMidiClock = false
protected

◆ softDevice

bool tracktion::engine::MidiOutputDevice::softDevice = false
protected

◆ externalController

ExternalController* tracktion::engine::MidiOutputDevice::externalController = nullptr
protected

◆ midiNotesOn

juce::BigInteger tracktion::engine::MidiOutputDevice::midiNotesOn
protected

◆ channelsUsed

juce::BigInteger tracktion::engine::MidiOutputDevice::channelsUsed
protected

◆ sustain

int tracktion::engine::MidiOutputDevice::sustain = 0
protected

◆ midiMessages

MidiMessageArray tracktion::engine::MidiOutputDevice::midiMessages
protected

◆ noteOnLock

juce::CriticalSection tracktion::engine::MidiOutputDevice::noteOnLock
protected

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