-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathATKInputFilter.h
35 lines (27 loc) · 883 Bytes
/
ATKInputFilter.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#ifndef ATKINPUTFILTER_H
#define ATKINPUTFILTER_H
#include <ATK/Core/TypedBaseFilter.h>
template <typename DataType>
class ATKInputFilter : public ATK::TypedBaseFilter<DataType> {
public:
using ATK::TypedBaseFilter<DataType>::outputs;
explicit ATKInputFilter(int channels) : ATK::TypedBaseFilter<DataType>(0, channels), mChannels(channels) {}
void set_inputs(double** inputs, int size) {
mInputs = inputs;
mSize = size;
}
protected:
double** mInputs = nullptr;
int mSize = 0;
int mChannels = 1;
virtual void process_impl(int64_t size) const {
for (int c = 0; c < mChannels; ++c) {
for (int64_t i = 0; i < size; ++i) {
outputs[c][i] = mInputs[c][i];
}
}
}
};
template class ATKInputFilter<float>;
template class ATKInputFilter<double>;
#endif // ATKINPUTFILTER_H