31#include <dspatch/SignalBus.h>
79 using SPtr = std::shared_ptr<Component>;
80 using SCPtr = std::shared_ptr<const Component>;
82 enum class ProcessOrder
94 Component( ProcessOrder processOrder = ProcessOrder::InOrder );
97 bool ConnectInput( Component::SPtr
const& fromComponent,
int fromOutput,
int toInput );
99 void DisconnectInput(
int inputNo );
100 void DisconnectInput( Component::SCPtr
const& fromComponent );
101 void DisconnectAllInputs();
103 int GetInputCount()
const;
104 int GetOutputCount()
const;
106 std::string GetInputName(
int inputNo )
const;
107 std::string GetOutputName(
int outputNo )
const;
109 void SetBufferCount(
int bufferCount );
110 int GetBufferCount()
const;
112 bool Tick( TickMode mode = TickMode::Series,
int bufferNo = 0 );
113 void Reset(
int bufferNo = 0 );
118 void SetInputCount_(
int inputCount, std::vector<std::string>
const& inputNames = {} );
119 void SetOutputCount_(
int outputCount, std::vector<std::string>
const& outputNames = {} );
123 void _DoTick( Component::TickMode mode,
int bufferNo );
125 internal::Component* p;
Abstract base class for DSPatch components.
Thread class for asynchronously ticking a single circuit component.