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

#include <tracktion_MidiOutputDevice.h>

Inheritance diagram for engine::MidiOutputDevice:

Public Member Functions

 MidiOutputDevice (Engine &, juce::MidiDeviceInfo)
 
 ~MidiOutputDevice () override
 
juce::String getDeviceTypeDescription () const 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 engine::OutputDevice
 OutputDevice (Engine &, juce::String name, juce::String deviceID)
 
 ~OutputDevice () override
 
bool isMidi () const override
 
bool isTrackDevice () const override
 

Static Public Member Functions

static void setControllerOffMessagesSent (Engine &, bool)
 
static bool getControllerOffMessagesSent (Engine &)
 

Public Attributes

LevelMeasurer levelMeasurer
 Measures MIDI activity for outgoing messages so the UI can show a meter.
 

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
 
juce::SpinLock outputDeviceLock
 
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
 

Constructor & Destructor Documentation

◆ MidiOutputDevice()

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

◆ ~MidiOutputDevice()

engine::MidiOutputDevice::~MidiOutputDevice ( )
override

Member Function Documentation

◆ getDeviceTypeDescription()

juce::String engine::MidiOutputDevice::getDeviceTypeDescription ( ) const
override

◆ openDevice()

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

Implements engine::OutputDevice.

◆ closeDevice()

void engine::MidiOutputDevice::closeDevice ( )
overridevirtual

Implements engine::OutputDevice.

◆ setEnabled()

void engine::MidiOutputDevice::setEnabled ( bool  )
override

◆ isMidi()

bool engine::MidiOutputDevice::isMidi ( ) const
override

◆ createInstance()

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

◆ prepareToPlay()

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

◆ start()

bool engine::MidiOutputDevice::start ( )

◆ stop()

void engine::MidiOutputDevice::stop ( )

◆ setControllerOffMessagesSent()

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

◆ getControllerOffMessagesSent()

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

◆ getNameForMidiNoteNumber()

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

◆ isConnectedToExternalController()

bool engine::MidiOutputDevice::isConnectedToExternalController ( ) const

◆ setExternalController()

void engine::MidiOutputDevice::setExternalController ( ExternalController )

sets the external controller messages are coming from

◆ removeExternalController()

void engine::MidiOutputDevice::removeExternalController ( ExternalController )

◆ updateMidiTC()

void engine::MidiOutputDevice::updateMidiTC ( Edit )

◆ setSendingMMC()

void engine::MidiOutputDevice::setSendingMMC ( bool  )

◆ isSendingMMC()

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

◆ isSendingClock()

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

◆ setSendingClock()

void engine::MidiOutputDevice::setSendingClock ( bool  )

◆ isSendingTimecode()

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

◆ flipSendingTimecode()

void engine::MidiOutputDevice::flipSendingTimecode ( )

◆ setSendControllerMidiClock()

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

◆ isSendingControllerMidiClock()

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

◆ fireMessage()

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

◆ sendNoteOffMessages()

void engine::MidiOutputDevice::sendNoteOffMessages ( )

◆ getDeviceDelay()

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

◆ getPreDelayMs()

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

◆ setPreDelayMs()

void engine::MidiOutputDevice::setPreDelayMs ( int  )

◆ getProgramSets()

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

◆ getCurrentSetIndex()

int engine::MidiOutputDevice::getCurrentSetIndex ( ) const

◆ setCurrentProgramSet()

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

◆ getCurrentProgramSet()

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

◆ getProgramName()

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

◆ canEditProgramSet()

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

◆ canDeleteProgramSet()

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

◆ getBankName()

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

◆ getBankID()

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

◆ areMidiPatchesZeroBased()

bool engine::MidiOutputDevice::areMidiPatchesZeroBased ( )

◆ getMidiProgramManager()

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

◆ sendMessageNow()

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

◆ loadProps()

void engine::MidiOutputDevice::loadProps ( )
protected

◆ saveProps()

void engine::MidiOutputDevice::saveProps ( )
protected

Member Data Documentation

◆ levelMeasurer

LevelMeasurer engine::MidiOutputDevice::levelMeasurer

Measures MIDI activity for outgoing messages so the UI can show a meter.

◆ deviceInfo

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

◆ preDelayMillisecs

int engine::MidiOutputDevice::preDelayMillisecs = 0
protected

◆ audioAdjustmentDelay

int engine::MidiOutputDevice::audioAdjustmentDelay = 0
protected

◆ timecodeGenerator

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

◆ midiClockGenerator

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

◆ sendTimecode

bool engine::MidiOutputDevice::sendTimecode = false
protected

◆ sendMidiClock

bool engine::MidiOutputDevice::sendMidiClock = false
protected

◆ playing

bool engine::MidiOutputDevice::playing = false
protected

◆ programNameSet

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

◆ sampleRate

double engine::MidiOutputDevice::sampleRate = 0
protected

◆ outputDevice

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

◆ outputDeviceLock

juce::SpinLock engine::MidiOutputDevice::outputDeviceLock
protected

◆ sendingMMC

bool engine::MidiOutputDevice::sendingMMC = false
protected

◆ sendControllerMidiClock

bool engine::MidiOutputDevice::sendControllerMidiClock = false
protected

◆ softDevice

bool engine::MidiOutputDevice::softDevice = false
protected

◆ externalController

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

◆ midiNotesOn

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

◆ channelsUsed

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

◆ sustain

int engine::MidiOutputDevice::sustain = 0
protected

◆ midiMessages

MidiMessageArray engine::MidiOutputDevice::midiMessages
protected

◆ noteOnLock

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

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