1//============================================================================
2//
3// SSSS tt lll lll
4// SS SS tt ll ll
5// SS tttttt eeee ll ll aaaa
6// SSSS tt ee ee ll ll aa
7// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
8// SS SS tt ee ll ll aa aa
9// SSSS ttt eeeee llll llll aaaaa
10//
11// Copyright (c) 1995-2019 by Bradford W. Mott, Stephen Anthony
12// and the Stella Team
13//
14// See the file "License.txt" for information on usage and redistribution of
15// this file, and for a DISCLAIMER OF ALL WARRANTIES.
16//============================================================================
17
18#ifndef CONVOLUTION_BUFFER_HXX
19#define CONVOLUTION_BUFFER_HXX
20
21#include "bspf.hxx"
22
23class ConvolutionBuffer
24{
25 public:
26
27 explicit ConvolutionBuffer(uInt32 size);
28
29 void shift(float nextValue);
30
31 float convoluteWith(float* kernel) const;
32
33 private:
34
35 unique_ptr<float[]> myData;
36
37 uInt32 myFirstIndex;
38
39 uInt32 mySize;
40
41 private:
42
43 ConvolutionBuffer() = delete;
44 ConvolutionBuffer(const ConvolutionBuffer&) = delete;
45 ConvolutionBuffer(ConvolutionBuffer&&) = delete;
46 ConvolutionBuffer& operator=(const ConvolutionBuffer&) = delete;
47 ConvolutionBuffer& operator=(ConvolutionBuffer&&) = delete;
48
49};
50
51#endif // CONVOLUTION_BUFFER_HXX
52