score::Command Class Referenceabstract

The Command class. More...

Inheritance diagram for score::Command:
Scenario::EditScript< Model, Model::p_script > Scenario::EditScript< BytebeatModel, BytebeatModel::p_script > Scenario::EditScript< JitEffectModel, JitEffectModel::p_script > Scenario::EditScript< FaustEffectModel, FaustEffectModel::p_script > Scenario::EditScript< Filter::Model, Filter::Model::p_program > Scenario::EditScript< Pd::ProcessModel, Pd::ProcessModel::p_script > Scenario::EditScript< JS::ProcessModel, JS::ProcessModel::p_script > Automation::ChangeAddress Automation::InitAutomation ControlSurface::AddControl ControlSurface::RemoveControl Curve::MovePoint Curve::SetSegmentParameters Curve::UpdateCurve Dataflow::CreateCable Dataflow::LoadCables Dataflow::RemoveCable Dataflow::UpdateCable Explorer::Command::AddAddress Explorer::Command::AddWholeAddress Explorer::Command::LoadDevice Explorer::Command::ReloadWholeDevice Explorer::Command::Remove Explorer::Command::RemoveAddress Explorer::Command::ReplaceDevice Explorer::Command::UpdateAddressSettings Explorer::Command::UpdateDeviceSettings Gradient::ChangeGradient Interpolation::ChangeAddress Mapping::ChangeSourceAddress Mapping::ChangeTargetAddress Media::ChangeAudioFile Media::ChangeSteps Media::LoadProcessedAudioFile Midi::AddNote Midi::AddNotes Midi::ChangeNotesVelocity Midi::MoveNotes Midi::RemoveNotes Midi::ReplaceNotes Midi::RescaleMidi Midi::ScaleNotes Midi::SetChannel Midi::SetRange Nodal::CreateNode Nodal::RemoveNode Nodal::ReplaceAllNodes Patternist::UpdatePattern Process::ChangePortSettings Process::LoadPreset Process::MoveNodes Process::SetControlOutletValue Process::SetControlValue Scenario::Command::AddControlMessagesToState Scenario::Command::AddLayerInNewSlot Scenario::Command::AddLayerModelToSlot Scenario::Command::AddOnlyProcessToInterval Scenario::Command::AddSlotToRack Scenario::Command::AddStateProcessToState Scenario::Command::AddTrigger< Scenario_T > Scenario::Command::ChangeElementColor< T > Scenario::Command::ChangeElementComments< T > Scenario::Command::ChangeElementLabel< T > Scenario::Command::ChangeElementName< T > Scenario::Command::ChangeSlotPosition Scenario::Command::ChangeStartState Scenario::Command::ClearInterval Scenario::Command::ClearState Scenario::Command::CreateCommentBlock Scenario::Command::CreateEvent_State Scenario::Command::CreateInterval Scenario::Command::CreateInterval_State Scenario::Command::CreateInterval_State_Event Scenario::Command::CreateInterval_State_Event_TimeSync Scenario::Command::CreateProcessAndLayers Scenario::Command::CreateSequenceProcesses Scenario::Command::CreateState Scenario::Command::CreateTimeSync_Event_State Scenario::Command::DuplicateInterval Scenario::Command::DuplicateOnlyProcessToInterval Scenario::Command::HideRack Scenario::Command::InsertContentInState Scenario::Command::LoadLayerInInterval Scenario::Command::LoadOnlyLayerInInterval Scenario::Command::MergeEvents Scenario::Command::MergeTimeSyncs Scenario::Command::MoveBaseEvent< SimpleScenario_T > Scenario::Command::MoveCommentBlock Scenario::Command::MoveInterval Scenario::Command::MoveNewEvent Scenario::Command::MoveNewState Scenario::Command::MoveProcess Scenario::Command::PasteProcessesInInterval Scenario::Command::PutProcessBefore Scenario::Command::PutStateProcessBefore Scenario::Command::RemoveCommentBlock Scenario::Command::RemoveMessageNodes Scenario::Command::RemoveProcessFromInterval Scenario::Command::RemoveSelection Scenario::Command::RemoveSlotFromRack Scenario::Command::RemoveStateProcess Scenario::Command::RemoveTrigger< Scenario_T > Scenario::Command::RenameAddressInState Scenario::Command::ReplaceStateBase Scenario::Command::ResizeSlotVertically Scenario::Command::ScenarioPasteElements Scenario::Command::ScenarioPasteElementsAfter Scenario::Command::SerializableMoveEvent Scenario::Command::SetAutoTrigger Scenario::Command::SetBus Scenario::Command::SetCommentText Scenario::Command::SetCondition Scenario::Command::SetMaxDuration Scenario::Command::SetMinDuration Scenario::Command::SetRigidity Scenario::Command::SetTimeSignatures Scenario::Command::SetTrigger Scenario::Command::ShowRack Scenario::Command::SlotCommand Scenario::Command::SplitEvent Scenario::Command::SplitTimeSync Scenario::Command::SplitWholeEvent Scenario::Command::SplitWholeSync Scenario::EditScript< Process_T, Property_T > Spline3D::ChangeSpline Spline::ChangeSpline score::AggregateCommand score::PropertyCommand score::PropertyCommand_T< T > vst3::CreateControl vst3::RemoveControl vst3::SetControl vst::CreateControl vst::RemoveControl vst::SetControl

Detailed Description

The Command class.

The base of the command system in score It is timestamped, because we can then compare between clients.

Maybe the score_plugin_network should replace the Command by a TimestampedCommand instead ? What if other plug-ins also want to add functionality ?

Note: for mergeWith put two timestamps, one for the initial command (5 sec) and one for each new command merged.

Commands are serializable / deserializable.

Public Member Functions

virtual void undo (const score::DocumentContext &ctx) const =0
 
virtual void redo (const score::DocumentContext &ctx) const =0
 
virtual const CommandGroupKeyparentKey () const noexcept=0
 
virtual const CommandKeykey () const noexcept=0
 
QByteArray serialize () const
 
void deserialize (const QByteArray &)
 
virtual QString description () const =0
 

Protected Member Functions

virtual void serializeImpl (DataStreamInput &) const =0
 
virtual void deserializeImpl (DataStreamOutput &)=0
 

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