JASPL  0.2
Just Another Signal Processing Library
linearconvolution.h
1 #ifndef LINEARCONVOLUTION_H
2 #define LINEARCONVOLUTION_H
3 
4 //Header for this file
5 //
6 //C System-Headers
7 //
8 //C++ System headers
9 //
10 //OpenCL Headers
11 //
12 //Boost Headers
13 //
14 //Project specific headers
15 #include "../JASPL/jTypeTraits/jtypetraits.h"
16 #include "../JASPL/TaskItem/taskitem.h"
17 
18 namespace jaspl {
19 
20 namespace ocl {
21 
22 template <class T>
23 class LinearConvolution : public TaskItem {
24 
25 
26  public:
27  LinearConvolution( T& convolution_kernel );
28  LinearConvolution( T* convolution_kernel );
30 
31  private:
32  void Trigger();
33  void SetSignal(cl::Buffer& signal_buff , uint sig_size);
34 
35  cl::Buffer& ProcessedSignal();
36  size_t ProcessedSignalBytes();
37  size_t ProcessedSignalSize();
38  bool NeedsToReknew();
39 
40  cl::Buffer kernel_buff;
41  cl::Buffer scratch_buff;
42 
43 };
44 
45 #include "TaskItems/LinearConvolution/linearconvolution.tpp"
46 
47 }
48 
49 }
50 
51 #endif // LINEARCONVOLUTION_H