12 #include <utility/threading.h>
13 #include <nap/signalslot.h>
16 #include <audio/utility/audiotypes.h>
17 #include <audio/core/process.h>
54 void process(
float** inputBuffer,
float** outputBuffer,
unsigned long framesPerBuffer);
63 void process(std::vector<SampleBuffer*>& inputBuffer, std::vector<SampleBuffer*>& outputBuffer,
64 unsigned long framesPerBuffer);
115 void setInputChannelCount(
int inputChannelCount);
121 void setOutputChannelCount(
int outputChannelCount);
127 void setSampleRate(
float sampleRate);
136 void setInternalBufferSize(
int size);
143 void registerRootProcess(
Process& rootProcess);
151 void unregisterRootProcess(
Process& rootProcess);
160 template<
typename T,
typename... Args>
163 auto owner =
SafeOwner<T>(mDeletionQueue,
new T(std::forward<Args>(args)...));
194 void registerProcess(
Process& process);
197 void unregisterProcess(
Process& process);
206 void provideOutputBufferForChannel(
SampleBuffer* buffer,
int channel);
214 const SampleValue& getInputSample(
int channel,
int index)
const
216 return mInputBuffer[channel][mInternalBufferOffset + index];
219 int mInputChannelCount = 0;
220 int mOutputChannelCount = 0;
221 float mSampleRate = 0;
222 float mSamplesPerMillisecond = 0;
223 int mInternalBufferSize = 64;
226 unsigned int mInternalBufferOffset = 0;
229 OutputMapping mOutputMapping;
231 std::vector<float*> mInputBuffer;
233 std::set<Process*> mProcesses;
234 std::set<Process*> mRootProcesses;
237 DeletionQueue& mDeletionQueue;
int getOutputChannelCount() const
Definition: audionodemanager.h:86
float getSampleRate() const
Definition: audionodemanager.h:91
SafeOwner< T > makeSafe(Args &&... args)
Definition: audionodemanager.h:161
const DiscreteTimeValue & getSampleTime() const
Definition: audionodemanager.h:109
Definition: outputnode.h:23
DeletionQueue & getDeletionQueue()
Definition: audionodemanager.h:184
float SampleValue
Definition: audiotypes.h:28
Signal< NodeManager & > mChannelCountChangedSignal
Definition: audionodemanager.h:189
Definition: audionodemanager.h:33
Definition: threading.h:22
NodeManager(DeletionQueue &deletionQueue)
Definition: audionodemanager.h:43
int getInternalBufferSize() const
Definition: audionodemanager.h:104
std::function< void()> Task
Definition: threading.h:26
nap::uint64 DiscreteTimeValue
Definition: audiotypes.h:125
int getInputChannelCount() const
Definition: audionodemanager.h:81
Definition: templateapp.h:17
std::vector< std::vector< SampleBuffer * > > OutputMapping
Definition: audionodemanager.h:40
float getSamplesPerMillisecond() const
Definition: audionodemanager.h:96
Signal< DiscreteTimeValue > mUpdateSignal
Definition: audionodemanager.h:69
std::vector< SampleValue > SampleBuffer
Definition: audiotypes.h:34
SafeOwner< T > makeSafe(T *ptr)
Definition: audionodemanager.h:175