NAP
fftnode.h
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4 
5 #pragma once
6 
7 // Local includes
8 #include "fftbuffer.h"
9 
10 // Std includes
11 #include <atomic>
12 
13 // NAP includes
14 #include <nap/resourceptr.h>
15 
16 // Audio includes
17 #include <audio/core/audionode.h>
18 #include <audio/utility/dirtyflag.h>
19 #include <audio/utility/safeptr.h>
20 #include <audio/core/process.h>
21 
22 namespace nap
23 {
24  // Forward declarations
25  class AudioService;
26 
31  class NAPAPI FFTNode : public audio::Node
32  {
33  public:
40 
41  // Destructor
42  virtual ~FFTNode();
43 
47  void process() override;
48 
52  const FFTBuffer& getFFTBuffer() const { return *mFFTBuffer; }
53 
57  FFTBuffer& getFFTBuffer() { return *mFFTBuffer; }
58 
59  // The input for the audio signal that will be analyzed
60  audio::InputPin mInput = { this };
61 
62  // The FFT buffer
63  std::unique_ptr<FFTBuffer> mFFTBuffer;
64  };
65 }
nap::FFTNode
Definition: fftnode.h:31
nap::FFTBuffer
Definition: fftbuffer.h:19
nap::FFTNode::getFFTBuffer
FFTBuffer & getFFTBuffer()
Definition: fftnode.h:57
nap::audio::NodeManager
Definition: audionodemanager.h:33
nap::FFTNode::mFFTBuffer
std::unique_ptr< FFTBuffer > mFFTBuffer
Definition: fftnode.h:63
nap::audio::Node
Definition: audionode.h:33
nap::audio::InputPin
Definition: audiopin.h:91
nap
Definition: templateapp.h:17
nap::FFTBuffer::EOverlap::One
@ One
nap::FFTNode::getFFTBuffer
const FFTBuffer & getFFTBuffer() const
Definition: fftnode.h:52
nap::FFTBuffer::EOverlap
EOverlap
Definition: fftbuffer.h:29