RavEngine
Loading...
Searching...
No Matches
AudioGraphAsset.hpp
1
#pragma once
2
#include "AudioTypes.hpp"
3
#include "DataStructures.hpp"
4
5
namespace
RavEngine
{
6
10
struct
AudioFilterLayer
{
11
virtual
void
process(
const
PlanarSampleBufferInlineView
&,
PlanarSampleBufferInlineView
&) = 0;
12
};
13
17
struct
AudioGainFilterLayer
:
public
AudioFilterLayer
{
18
float
gain = 1;
19
void
process(
const
PlanarSampleBufferInlineView
& in,
PlanarSampleBufferInlineView
& out)
final
{
20
for
(
int
c = 0; c < in.GetNChannels(); c++) {
21
auto
channel = in[c];
22
#pragma omp simd
23
for
(
int
i = 0; i < channel.size(); i++) {
24
out[c][i] = channel[i] * gain;
25
}
26
}
27
}
28
AudioGainFilterLayer
() {}
29
AudioGainFilterLayer
(
float
gain) : gain(gain) {}
30
};
31
35
class
AudioGraphAsset
{
36
37
uint8_t nchannels = 0;
38
39
public
:
40
41
LinkedList<std::shared_ptr<AudioFilterLayer>
> filters;
42
48
AudioGraphAsset
(uint8_t nchannels);
49
57
void
Render
(
PlanarSampleBufferInlineView
&
inout
,
PlanarSampleBufferInlineView
&
scratchBuffer
, uint8_t nchannels);
58
59
};
60
61
}
RavEngine::AudioGraphAsset
Definition
AudioGraphAsset.hpp:35
RavEngine::AudioGraphAsset::Render
void Render(PlanarSampleBufferInlineView &inout, PlanarSampleBufferInlineView &scratchBuffer, uint8_t nchannels)
Definition
AudioGraphAsset.cpp:12
RavEngine::PlanarSampleBufferInlineView
Definition
AudioTypes.hpp:20
moodycamel::ConcurrentQueue
Definition
concurrentqueue.h:747
RavEngine
Definition
Animation.hpp:6
RavEngine::AudioFilterLayer
Definition
AudioGraphAsset.hpp:10
RavEngine::AudioGainFilterLayer
Definition
AudioGraphAsset.hpp:17
RavEngine
include
RavEngine
AudioGraphAsset.hpp
Generated by
1.9.8