3 #ifndef VISR_LIBRRL_AUDIO_SIGNAL_FLOW_HPP_INCLUDED 4 #define VISR_LIBRRL_AUDIO_SIGNAL_FLOW_HPP_INCLUDED 23 class AtomicComponent;
24 class ParameterPortBase;
28 class ComponentImplementation;
29 class CompositeComponentImplementation;
36 class AudioSignalPool;
37 class AudioConnectionMap;
38 class ParameterConnectionMap;
71 bool process(
SampleType const *
const * captureSamples,
86 void process(
SampleType const * captureSamples,
87 std::size_t captureChannelStride,
88 std::size_t captureSampleStride,
90 std::size_t playbackChannelStride,
91 std::size_t playbackSampleStride );
113 static void processFunction(
void* userData,
127 std::size_t period()
const;
129 std::size_t numberOfAudioCapturePorts( )
const;
131 std::size_t numberOfAudioPlaybackPorts( )
const;
137 char const * audioCapturePortName( std::size_t idx )
const;
143 char const * audioPlaybackPortName( std::size_t idx )
const;
149 std::size_t numberOfCaptureChannels()
const;
155 std::size_t numberOfPlaybackChannels()
const;
168 return mProtocolReceiveEndpoints.size();
173 return mProtocolSendEndpoints.size();
178 return mProtocolReceiveEndpoints;
183 return mProtocolSendEndpoints;
229 bool initialiseSchedule( std::ostream & messages,
236 std::size_t numberCommunicationProtocols()
const;
241 void executeComponents( );
254 using CommunicationProtocolContainer = std::vector<std::unique_ptr<CommunicationProtocolBase> >;
256 CommunicationProtocolContainer mCommunicationProtocols;
264 std::vector<impl::AudioPortBaseImplementation *> mToplevelInputs;
266 std::vector<impl::AudioPortBaseImplementation *> mToplevelOutputs;
272 std::unique_ptr<AudioSignalPool> mAudioSignalPool;
280 std::vector < impl::AudioPortBaseImplementation*> mTopLevelAudioInputs;
281 std::vector < impl::AudioPortBaseImplementation*> mTopLevelAudioOutputs;
284 std::vector<char*> mCaptureChannels;
285 std::vector<char*> mPlaybackChannels;
291 ProtocolReceiveEndpoints mProtocolReceiveEndpoints;
293 ProtocolSendEndpoints mProtocolSendEndpoints;
297 using InternalComponentList = std::vector<std::unique_ptr<AtomicComponent> >;
299 InternalComponentList mInfrastructureComponents;
301 using ProcessingSchedule = std::vector<AtomicComponent * >;
303 ProcessingSchedule mProcessingSchedule;
309 #endif // #ifndef VISR_LIBRRL_AUDIO_SIGNAL_FLOW_HPP_INCLUDED std::size_t numberExternalParameterSendPorts() const
Definition: audio_signal_flow.hpp:171
std::size_t SignalIndexType
Definition: audio_signal_flow.hpp:52
std::map< std::string, std::unique_ptr< CommunicationProtocolBase::Input > > ProtocolSendEndpoints
Definition: audio_signal_flow.hpp:164
Definition: audio_signal_flow.hpp:49
Definition: component_implementation.hpp:34
ProtocolReceiveEndpoints const & externalParameterReceiveEndpoints() const
Definition: audio_signal_flow.hpp:176
Definition: component.hpp:38
Definition: options.cpp:10
Definition: audio_connection_map.hpp:64
ProtocolSendEndpoints const & externalParameterSendEndpoints() const
Definition: audio_signal_flow.hpp:181
Definition: parameter_connection_map.hpp:28
std::size_t numberExternalParameterReceivePorts() const
Definition: audio_signal_flow.hpp:166
float SampleType
Definition: constants.hpp:14
std::map< std::string, std::unique_ptr< CommunicationProtocolBase::Output > > ProtocolReceiveEndpoints
Definition: audio_signal_flow.hpp:163
Definition: communication_protocol_base.hpp:131