Ardour  9.0-pre0-582-g084a23a80d
MIDI::MachineControl Class Reference

#include <mmc.h>

Public Types

enum  Command {
  cmdStop = 0x1 , cmdPlay = 0x2 , cmdDeferredPlay = 0x3 , cmdFastForward = 0x4 ,
  cmdRewind = 0x5 , cmdRecordStrobe = 0x6 , cmdRecordExit = 0x7 , cmdRecordPause = 0x8 ,
  cmdPause = 0x9 , cmdEject = 0xA , cmdChase = 0xB , cmdCommandErrorReset = 0xC ,
  cmdMmcReset = 0xD , cmdIllegalMackieJogStart = 0x20 , cmdIllegalMackieJogStop = 0x21 , cmdWrite = 0x40 ,
  cmdMaskedWrite = 0x41 , cmdRead = 0x42 , cmdUpdate = 0x43 , cmdLocate = 0x44 ,
  cmdVariablePlay = 0x45 , cmdSearch = 0x46 , cmdShuttle = 0x47 , cmdStep = 0x48 ,
  cmdAssignSystemMaster = 0x49 , cmdGeneratorCommand = 0x4A , cmdMtcCommand = 0x4B , cmdMove = 0x4C ,
  cmdAdd = 0x4D , cmdSubtract = 0x4E , cmdDropFrameAdjust = 0x4F , cmdProcedure = 0x50 ,
  cmdEvent = 0x51 , cmdGroup = 0x52 , cmdCommandSegment = 0x53 , cmdDeferredVariablePlay = 0x54 ,
  cmdRecordStrobeVariable = 0x55 , cmdWait = 0x7C , cmdResume = 0x7F
}
 
typedef PBD::Signal< void(MachineControl &)> MMCSignal
 

Public Member Functions

 MachineControl ()
 
void set_ports (MIDI::Port *input, MIDI::Port *output)
 
Portinput_port ()
 
Portoutput_port ()
 
void set_receive_device_id (byte id)
 
void set_send_device_id (byte id)
 
byte receive_device_id () const
 
byte send_device_id () const
 
void enable_send (bool)
 
bool send_enabled () const
 
void send (MachineControlCommand const &, timestamp_t when)
 

Static Public Member Functions

static bool is_mmc (byte *sysex_buf, size_t len)
 

Public Attributes

MMCSignal Stop
 
MMCSignal Play
 
MMCSignal DeferredPlay
 
MMCSignal FastForward
 
MMCSignal Rewind
 
MMCSignal RecordStrobe
 
MMCSignal RecordExit
 
MMCSignal RecordPause
 
MMCSignal Pause
 
MMCSignal Eject
 
MMCSignal Chase
 
MMCSignal CommandErrorReset
 
MMCSignal MmcReset
 
MMCSignal JogStart
 
MMCSignal JogStop
 
MMCSignal Write
 
MMCSignal MaskedWrite
 
MMCSignal Read
 
MMCSignal Update
 
MMCSignal VariablePlay
 
MMCSignal Search
 
MMCSignal AssignSystemMaster
 
MMCSignal GeneratorCommand
 
MMCSignal MidiTimeCodeCommand
 
MMCSignal Move
 
MMCSignal Add
 
MMCSignal Subtract
 
MMCSignal DropFrameAdjust
 
MMCSignal Procedure
 
MMCSignal Event
 
MMCSignal Group
 
MMCSignal CommandSegment
 
MMCSignal DeferredVariablePlay
 
MMCSignal RecordStrobeVariable
 
MMCSignal Wait
 
MMCSignal Resume
 
PBD::Signal< void()> SPPStart
 
PBD::Signal< void()> SPPContinue
 
PBD::Signal< void()> SPPStop
 
PBD::Signal< void(MachineControl &, float, bool)> Shuttle
 
PBD::Signal< void(MachineControl &, size_t, bool)> TrackRecordStatusChange
 
PBD::Signal< void(MachineControl &, size_t, bool)> TrackMuteChange
 
PBD::Signal< void(MachineControl &, const byte *)> Locate
 
PBD::Signal< void(MachineControl &, int)> Step
 
byte updateRate
 
byte responseError
 
byte commandError
 
byte commandErrorLevel
 
byte motionControlTally
 
byte velocityTally
 
byte stopMode
 
byte fastMode
 
byte recordMode
 
byte recordStatus
 
bool trackRecordStatus [48]
 
bool trackRecordReady [48]
 
byte globalMonitor
 
byte recordMonitor
 
byte trackSyncMonitor
 
byte trackInputMonitor
 
byte stepLength
 
byte playSpeedReference
 
byte fixedSpeed
 
byte lifterDefeat
 
byte controlDisable
 
byte trackMute [48]
 
byte failure
 
byte selectedTimeCode
 
byte shortSelectedTimeCode
 
byte timeStandard
 
byte selectedTimeCodeSource
 
byte selectedTimeCodeUserbits
 
byte selectedMasterCode
 
byte requestedOffset
 
byte actualOffset
 
byte lockDeviation
 
byte shortSelectedMasterCode
 
byte shortRequestedOffset
 
byte shortActualOffset
 
byte shortLockDeviation
 
byte resolvedPlayMode
 
byte chaseMode
 
byte generatorTimeCode
 
byte shortGeneratorTimeCode
 
byte generatorCommandTally
 
byte generatorSetUp
 
byte generatorUserbits
 
byte vitcInsertEnable
 
byte midiTimeCodeInput
 
byte shortMidiTimeCodeInput
 
byte midiTimeCodeCommandTally
 
byte midiTimeCodeSetUp
 
byte gp0
 
byte gp1
 
byte gp2
 
byte gp3
 
byte gp4
 
byte gp5
 
byte gp6
 
byte gp7
 
byte shortGp0
 
byte shortGp1
 
byte shortGp2
 
byte shortGp3
 
byte shortGp4
 
byte shortGp5
 
byte shortGp6
 
byte shortGp7
 
byte procedureResponse
 
byte eventResponse
 
byte responseSegment
 
byte wait
 
byte resume
 

Private Member Functions

void process_mmc_message (Parser &p, byte *, size_t len)
 
int do_masked_write (byte *, size_t len)
 
int do_locate (byte *, size_t len)
 
int do_step (byte *, size_t len)
 
int do_shuttle (byte *, size_t len)
 
void write_track_status (byte *, size_t len, byte reg)
 
void spp_start ()
 
void spp_continue ()
 
void spp_stop ()
 

Private Attributes

byte _receive_device_id
 
byte _send_device_id
 
Port_input_port
 
Port_output_port
 
bool _enable_send
 true if MMC sending is enabled More...
 
PBD::ScopedConnectionList port_connections
 connections to our parser for incoming data More...
 

Detailed Description

Class to handle incoming and outgoing MIDI machine control messages

Definition at line 45 of file mmc.h.

Member Typedef Documentation

◆ MMCSignal

Definition at line 48 of file mmc.h.

Member Enumeration Documentation

◆ Command

Enumerator
cmdStop 
cmdPlay 
cmdDeferredPlay 
cmdFastForward 
cmdRewind 
cmdRecordStrobe 
cmdRecordExit 
cmdRecordPause 
cmdPause 
cmdEject 
cmdChase 
cmdCommandErrorReset 
cmdMmcReset 
cmdIllegalMackieJogStart 
cmdIllegalMackieJogStop 
cmdWrite 
cmdMaskedWrite 
cmdRead 
cmdUpdate 
cmdLocate 
cmdVariablePlay 
cmdSearch 
cmdShuttle 
cmdStep 
cmdAssignSystemMaster 
cmdGeneratorCommand 
cmdMtcCommand 
cmdMove 
cmdAdd 
cmdSubtract 
cmdDropFrameAdjust 
cmdProcedure 
cmdEvent 
cmdGroup 
cmdCommandSegment 
cmdDeferredVariablePlay 
cmdRecordStrobeVariable 
cmdWait 
cmdResume 

Definition at line 50 of file mmc.h.

Constructor & Destructor Documentation

◆ MachineControl()

MIDI::MachineControl::MachineControl ( )

Member Function Documentation

◆ do_locate()

int MIDI::MachineControl::do_locate ( byte ,
size_t  len 
)
private

◆ do_masked_write()

int MIDI::MachineControl::do_masked_write ( byte ,
size_t  len 
)
private

◆ do_shuttle()

int MIDI::MachineControl::do_shuttle ( byte ,
size_t  len 
)
private

◆ do_step()

int MIDI::MachineControl::do_step ( byte ,
size_t  len 
)
private

◆ enable_send()

void MIDI::MachineControl::enable_send ( bool  )

◆ input_port()

Port* MIDI::MachineControl::input_port ( )
inline

Definition at line 103 of file mmc.h.

◆ is_mmc()

static bool MIDI::MachineControl::is_mmc ( byte sysex_buf,
size_t  len 
)
static

◆ output_port()

Port* MIDI::MachineControl::output_port ( )
inline

Definition at line 104 of file mmc.h.

◆ process_mmc_message()

void MIDI::MachineControl::process_mmc_message ( Parser p,
byte ,
size_t  len 
)
private

◆ receive_device_id()

byte MIDI::MachineControl::receive_device_id ( ) const
inline

Definition at line 108 of file mmc.h.

◆ send()

void MIDI::MachineControl::send ( MachineControlCommand const &  ,
timestamp_t  when 
)

◆ send_device_id()

byte MIDI::MachineControl::send_device_id ( ) const
inline

Definition at line 109 of file mmc.h.

◆ send_enabled()

bool MIDI::MachineControl::send_enabled ( ) const
inline

Definition at line 111 of file mmc.h.

◆ set_ports()

void MIDI::MachineControl::set_ports ( MIDI::Port input,
MIDI::Port output 
)

◆ set_receive_device_id()

void MIDI::MachineControl::set_receive_device_id ( byte  id)

◆ set_send_device_id()

void MIDI::MachineControl::set_send_device_id ( byte  id)

◆ spp_continue()

void MIDI::MachineControl::spp_continue ( )
private

◆ spp_start()

void MIDI::MachineControl::spp_start ( )
private

◆ spp_stop()

void MIDI::MachineControl::spp_stop ( )
private

◆ write_track_status()

void MIDI::MachineControl::write_track_status ( byte ,
size_t  len,
byte  reg 
)
private

Member Data Documentation

◆ _enable_send

bool MIDI::MachineControl::_enable_send
private

true if MMC sending is enabled

Definition at line 272 of file mmc.h.

◆ _input_port

Port* MIDI::MachineControl::_input_port
private

Definition at line 270 of file mmc.h.

◆ _output_port

Port* MIDI::MachineControl::_output_port
private

Definition at line 271 of file mmc.h.

◆ _receive_device_id

byte MIDI::MachineControl::_receive_device_id
private

Definition at line 268 of file mmc.h.

◆ _send_device_id

byte MIDI::MachineControl::_send_device_id
private

Definition at line 269 of file mmc.h.

◆ actualOffset

byte MIDI::MachineControl::actualOffset

Definition at line 227 of file mmc.h.

◆ Add

MMCSignal MIDI::MachineControl::Add

Definition at line 145 of file mmc.h.

◆ AssignSystemMaster

MMCSignal MIDI::MachineControl::AssignSystemMaster

Definition at line 141 of file mmc.h.

◆ Chase

MMCSignal MIDI::MachineControl::Chase

Definition at line 130 of file mmc.h.

◆ chaseMode

byte MIDI::MachineControl::chaseMode

Definition at line 234 of file mmc.h.

◆ commandError

byte MIDI::MachineControl::commandError

Definition at line 198 of file mmc.h.

◆ commandErrorLevel

byte MIDI::MachineControl::commandErrorLevel

Definition at line 199 of file mmc.h.

◆ CommandErrorReset

MMCSignal MIDI::MachineControl::CommandErrorReset

Definition at line 131 of file mmc.h.

◆ CommandSegment

MMCSignal MIDI::MachineControl::CommandSegment

Definition at line 151 of file mmc.h.

◆ controlDisable

byte MIDI::MachineControl::controlDisable

Definition at line 217 of file mmc.h.

◆ DeferredPlay

MMCSignal MIDI::MachineControl::DeferredPlay

Definition at line 122 of file mmc.h.

◆ DeferredVariablePlay

MMCSignal MIDI::MachineControl::DeferredVariablePlay

Definition at line 152 of file mmc.h.

◆ DropFrameAdjust

MMCSignal MIDI::MachineControl::DropFrameAdjust

Definition at line 147 of file mmc.h.

◆ Eject

MMCSignal MIDI::MachineControl::Eject

Definition at line 129 of file mmc.h.

◆ Event

MMCSignal MIDI::MachineControl::Event

Definition at line 149 of file mmc.h.

◆ eventResponse

byte MIDI::MachineControl::eventResponse

Definition at line 262 of file mmc.h.

◆ failure

byte MIDI::MachineControl::failure

Definition at line 219 of file mmc.h.

◆ FastForward

MMCSignal MIDI::MachineControl::FastForward

Definition at line 123 of file mmc.h.

◆ fastMode

byte MIDI::MachineControl::fastMode

Definition at line 204 of file mmc.h.

◆ fixedSpeed

byte MIDI::MachineControl::fixedSpeed

Definition at line 215 of file mmc.h.

◆ GeneratorCommand

MMCSignal MIDI::MachineControl::GeneratorCommand

Definition at line 142 of file mmc.h.

◆ generatorCommandTally

byte MIDI::MachineControl::generatorCommandTally

Definition at line 237 of file mmc.h.

◆ generatorSetUp

byte MIDI::MachineControl::generatorSetUp

Definition at line 238 of file mmc.h.

◆ generatorTimeCode

byte MIDI::MachineControl::generatorTimeCode

Definition at line 235 of file mmc.h.

◆ generatorUserbits

byte MIDI::MachineControl::generatorUserbits

Definition at line 239 of file mmc.h.

◆ globalMonitor

byte MIDI::MachineControl::globalMonitor

Definition at line 209 of file mmc.h.

◆ gp0

byte MIDI::MachineControl::gp0

Definition at line 245 of file mmc.h.

◆ gp1

byte MIDI::MachineControl::gp1

Definition at line 246 of file mmc.h.

◆ gp2

byte MIDI::MachineControl::gp2

Definition at line 247 of file mmc.h.

◆ gp3

byte MIDI::MachineControl::gp3

Definition at line 248 of file mmc.h.

◆ gp4

byte MIDI::MachineControl::gp4

Definition at line 249 of file mmc.h.

◆ gp5

byte MIDI::MachineControl::gp5

Definition at line 250 of file mmc.h.

◆ gp6

byte MIDI::MachineControl::gp6

Definition at line 251 of file mmc.h.

◆ gp7

byte MIDI::MachineControl::gp7

Definition at line 252 of file mmc.h.

◆ Group

MMCSignal MIDI::MachineControl::Group

Definition at line 150 of file mmc.h.

◆ JogStart

MMCSignal MIDI::MachineControl::JogStart

Definition at line 133 of file mmc.h.

◆ JogStop

MMCSignal MIDI::MachineControl::JogStop

Definition at line 134 of file mmc.h.

◆ lifterDefeat

byte MIDI::MachineControl::lifterDefeat

Definition at line 216 of file mmc.h.

◆ Locate

PBD::Signal<void(MachineControl &, const byte *)> MIDI::MachineControl::Locate

Definition at line 186 of file mmc.h.

◆ lockDeviation

byte MIDI::MachineControl::lockDeviation

Definition at line 228 of file mmc.h.

◆ MaskedWrite

MMCSignal MIDI::MachineControl::MaskedWrite

Definition at line 136 of file mmc.h.

◆ MidiTimeCodeCommand

MMCSignal MIDI::MachineControl::MidiTimeCodeCommand

Definition at line 143 of file mmc.h.

◆ midiTimeCodeCommandTally

byte MIDI::MachineControl::midiTimeCodeCommandTally

Definition at line 243 of file mmc.h.

◆ midiTimeCodeInput

byte MIDI::MachineControl::midiTimeCodeInput

Definition at line 241 of file mmc.h.

◆ midiTimeCodeSetUp

byte MIDI::MachineControl::midiTimeCodeSetUp

Definition at line 244 of file mmc.h.

◆ MmcReset

MMCSignal MIDI::MachineControl::MmcReset

Definition at line 132 of file mmc.h.

◆ motionControlTally

byte MIDI::MachineControl::motionControlTally

Definition at line 201 of file mmc.h.

◆ Move

MMCSignal MIDI::MachineControl::Move

Definition at line 144 of file mmc.h.

◆ Pause

MMCSignal MIDI::MachineControl::Pause

Definition at line 128 of file mmc.h.

◆ Play

MMCSignal MIDI::MachineControl::Play

Definition at line 121 of file mmc.h.

◆ playSpeedReference

byte MIDI::MachineControl::playSpeedReference

Definition at line 214 of file mmc.h.

◆ port_connections

PBD::ScopedConnectionList MIDI::MachineControl::port_connections
private

connections to our parser for incoming data

Definition at line 275 of file mmc.h.

◆ Procedure

MMCSignal MIDI::MachineControl::Procedure

Definition at line 148 of file mmc.h.

◆ procedureResponse

byte MIDI::MachineControl::procedureResponse

Definition at line 261 of file mmc.h.

◆ Read

MMCSignal MIDI::MachineControl::Read

Definition at line 137 of file mmc.h.

◆ RecordExit

MMCSignal MIDI::MachineControl::RecordExit

Definition at line 126 of file mmc.h.

◆ recordMode

byte MIDI::MachineControl::recordMode

Definition at line 205 of file mmc.h.

◆ recordMonitor

byte MIDI::MachineControl::recordMonitor

Definition at line 210 of file mmc.h.

◆ RecordPause

MMCSignal MIDI::MachineControl::RecordPause

Definition at line 127 of file mmc.h.

◆ recordStatus

byte MIDI::MachineControl::recordStatus

Definition at line 206 of file mmc.h.

◆ RecordStrobe

MMCSignal MIDI::MachineControl::RecordStrobe

Definition at line 125 of file mmc.h.

◆ RecordStrobeVariable

MMCSignal MIDI::MachineControl::RecordStrobeVariable

Definition at line 153 of file mmc.h.

◆ requestedOffset

byte MIDI::MachineControl::requestedOffset

Definition at line 226 of file mmc.h.

◆ resolvedPlayMode

byte MIDI::MachineControl::resolvedPlayMode

Definition at line 233 of file mmc.h.

◆ responseError

byte MIDI::MachineControl::responseError

Definition at line 197 of file mmc.h.

◆ responseSegment

byte MIDI::MachineControl::responseSegment

Definition at line 263 of file mmc.h.

◆ Resume

MMCSignal MIDI::MachineControl::Resume

Definition at line 155 of file mmc.h.

◆ resume

byte MIDI::MachineControl::resume

Definition at line 265 of file mmc.h.

◆ Rewind

MMCSignal MIDI::MachineControl::Rewind

Definition at line 124 of file mmc.h.

◆ Search

MMCSignal MIDI::MachineControl::Search

Definition at line 140 of file mmc.h.

◆ selectedMasterCode

byte MIDI::MachineControl::selectedMasterCode

Definition at line 225 of file mmc.h.

◆ selectedTimeCode

byte MIDI::MachineControl::selectedTimeCode

Definition at line 220 of file mmc.h.

◆ selectedTimeCodeSource

byte MIDI::MachineControl::selectedTimeCodeSource

Definition at line 223 of file mmc.h.

◆ selectedTimeCodeUserbits

byte MIDI::MachineControl::selectedTimeCodeUserbits

Definition at line 224 of file mmc.h.

◆ shortActualOffset

byte MIDI::MachineControl::shortActualOffset

Definition at line 231 of file mmc.h.

◆ shortGeneratorTimeCode

byte MIDI::MachineControl::shortGeneratorTimeCode

Definition at line 236 of file mmc.h.

◆ shortGp0

byte MIDI::MachineControl::shortGp0

Definition at line 253 of file mmc.h.

◆ shortGp1

byte MIDI::MachineControl::shortGp1

Definition at line 254 of file mmc.h.

◆ shortGp2

byte MIDI::MachineControl::shortGp2

Definition at line 255 of file mmc.h.

◆ shortGp3

byte MIDI::MachineControl::shortGp3

Definition at line 256 of file mmc.h.

◆ shortGp4

byte MIDI::MachineControl::shortGp4

Definition at line 257 of file mmc.h.

◆ shortGp5

byte MIDI::MachineControl::shortGp5

Definition at line 258 of file mmc.h.

◆ shortGp6

byte MIDI::MachineControl::shortGp6

Definition at line 259 of file mmc.h.

◆ shortGp7

byte MIDI::MachineControl::shortGp7

Definition at line 260 of file mmc.h.

◆ shortLockDeviation

byte MIDI::MachineControl::shortLockDeviation

Definition at line 232 of file mmc.h.

◆ shortMidiTimeCodeInput

byte MIDI::MachineControl::shortMidiTimeCodeInput

Definition at line 242 of file mmc.h.

◆ shortRequestedOffset

byte MIDI::MachineControl::shortRequestedOffset

Definition at line 230 of file mmc.h.

◆ shortSelectedMasterCode

byte MIDI::MachineControl::shortSelectedMasterCode

Definition at line 229 of file mmc.h.

◆ shortSelectedTimeCode

byte MIDI::MachineControl::shortSelectedTimeCode

Definition at line 221 of file mmc.h.

◆ Shuttle

PBD::Signal<void(MachineControl&,float,bool)> MIDI::MachineControl::Shuttle

Definition at line 165 of file mmc.h.

◆ SPPContinue

PBD::Signal<void()> MIDI::MachineControl::SPPContinue

Definition at line 158 of file mmc.h.

◆ SPPStart

PBD::Signal<void()> MIDI::MachineControl::SPPStart

Definition at line 157 of file mmc.h.

◆ SPPStop

PBD::Signal<void()> MIDI::MachineControl::SPPStop

Definition at line 159 of file mmc.h.

◆ Step

PBD::Signal<void(MachineControl &, int)> MIDI::MachineControl::Step

Definition at line 190 of file mmc.h.

◆ stepLength

byte MIDI::MachineControl::stepLength

Definition at line 213 of file mmc.h.

◆ Stop

MMCSignal MIDI::MachineControl::Stop

Definition at line 120 of file mmc.h.

◆ stopMode

byte MIDI::MachineControl::stopMode

Definition at line 203 of file mmc.h.

◆ Subtract

MMCSignal MIDI::MachineControl::Subtract

Definition at line 146 of file mmc.h.

◆ timeStandard

byte MIDI::MachineControl::timeStandard

Definition at line 222 of file mmc.h.

◆ trackInputMonitor

byte MIDI::MachineControl::trackInputMonitor

Definition at line 212 of file mmc.h.

◆ trackMute

byte MIDI::MachineControl::trackMute[48]

Definition at line 218 of file mmc.h.

◆ TrackMuteChange

PBD::Signal<void(MachineControl &,size_t,bool)> MIDI::MachineControl::TrackMuteChange

Definition at line 179 of file mmc.h.

◆ trackRecordReady

bool MIDI::MachineControl::trackRecordReady[48]

Definition at line 208 of file mmc.h.

◆ trackRecordStatus

bool MIDI::MachineControl::trackRecordStatus[48]

Definition at line 207 of file mmc.h.

◆ TrackRecordStatusChange

PBD::Signal<void(MachineControl &,size_t,bool)> MIDI::MachineControl::TrackRecordStatusChange

Definition at line 172 of file mmc.h.

◆ trackSyncMonitor

byte MIDI::MachineControl::trackSyncMonitor

Definition at line 211 of file mmc.h.

◆ Update

MMCSignal MIDI::MachineControl::Update

Definition at line 138 of file mmc.h.

◆ updateRate

byte MIDI::MachineControl::updateRate

Definition at line 196 of file mmc.h.

◆ VariablePlay

MMCSignal MIDI::MachineControl::VariablePlay

Definition at line 139 of file mmc.h.

◆ velocityTally

byte MIDI::MachineControl::velocityTally

Definition at line 202 of file mmc.h.

◆ vitcInsertEnable

byte MIDI::MachineControl::vitcInsertEnable

Definition at line 240 of file mmc.h.

◆ Wait

MMCSignal MIDI::MachineControl::Wait

Definition at line 154 of file mmc.h.

◆ wait

byte MIDI::MachineControl::wait

Definition at line 264 of file mmc.h.

◆ Write

MMCSignal MIDI::MachineControl::Write

Definition at line 135 of file mmc.h.


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