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(
const Component::SPtr& fromComponent,
int fromOutput,
int toInput );
99 void DisconnectInput(
int inputNo );
100 void DisconnectInput(
const Component::SCPtr& 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 void Tick( TickMode mode = TickMode::Series,
int bufferNo = 0 );
113 void Reset( TickMode mode = TickMode::Series,
int bufferNo = 0 );
118 void SetInputCount_(
int inputCount,
const std::vector<std::string>& inputNames = {} );
119 void SetOutputCount_(
int outputCount,
const std::vector<std::string>& 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.