VISR
0.11.6
Versatile Interactive Scene Renderer
object_gain_eq_calculator.hpp
Go to the documentation of this file.
1
/* Copyright Institute of Sound and Vibration Research - All rights reserved */
2
3
#ifndef VISR_LIBRCL_OBJECT_GAIN_EQ_CALCULATOR_HPP_INCLUDED
4
#define VISR_LIBRCL_OBJECT_GAIN_EQ_CALCULATOR_HPP_INCLUDED
5
6
#include "
export_symbols.hpp
"
7
8
#include <
libvisr/atomic_component.hpp
>
9
#include <
libvisr/parameter_input.hpp
>
10
#include <
libvisr/parameter_output.hpp
>
11
12
#include <memory>
13
14
#include <
libpml/double_buffering_protocol.hpp
>
15
#include <
libpml/biquad_parameter.hpp
>
16
#include <
libpml/object_vector.hpp
>
17
#include <
libpml/vector_parameter.hpp
>
18
19
namespace
visr
20
{
21
// forward declarations
22
namespace
objectmodel
23
{
24
class
ObjectVector;
25
}
26
namespace
efl
27
{
28
template
<
typename
SampleType >
class
BasicVector;
29
}
30
namespace
rbbl
31
{
32
template
<
typename
SampleType >
class
BiquadCoefficient;
33
template
<
typename
SampleType >
class
BiquadCoefficientMatrix;
34
}
35
36
namespace
rcl
37
{
38
42
class
VISR_RCL_LIBRARY_SYMBOL
ObjectGainEqCalculator
:
public
AtomicComponent
43
{
44
public
:
48
using
CoefficientType
=
SampleType
;
49
58
explicit
ObjectGainEqCalculator
(
SignalFlowContext
const
& context,
59
char
const
* name,
60
CompositeComponent
* parent,
61
std::size_t numberOfObjectChannels,
62
std::size_t numberOfBiquadSections );
63
67
ObjectGainEqCalculator
(
ObjectGainEqCalculator
const
& ) =
delete
;
68
72
~
ObjectGainEqCalculator
();
73
77
void
process( )
override
;
78
79
private
:
87
void
process(
objectmodel::ObjectVector
const
& objects,
88
efl::BasicVector<CoefficientType>
& objectSignalGains,
89
rbbl::BiquadCoefficientMatrix<CoefficientType>
& objectChannelEqs );
90
91
ParameterInput<pml::DoubleBufferingProtocol, pml::ObjectVector>
mObjectInput;
92
ParameterOutput<pml::DoubleBufferingProtocol, pml::VectorParameter<CoefficientType>
> mGainOutput;
93
ParameterOutput<pml::DoubleBufferingProtocol, pml::BiquadParameterMatrix<CoefficientType>
> mEqOutput;
94
98
std::size_t
const
cNumberOfObjectChannels;
99
100
std::size_t
const
cNumberOfBiquadSections;
101
105
SamplingFrequencyType
const
cSamplingFrequency;
106
};
107
108
}
// namespace rcl
109
}
// namespace visr
110
111
#endif // #ifndef VISR_LIBRCL_OBJECT_GAIN_EQ_CALCULATOR_HPP_INCLUDED
double_buffering_protocol.hpp
visr::ParameterOutput
Definition:
parameter_output.hpp:45
parameter_input.hpp
visr::rcl::ObjectGainEqCalculator::CoefficientType
SampleType CoefficientType
Definition:
object_gain_eq_calculator.hpp:48
visr
Definition:
options.cpp:10
visr::AtomicComponent
Definition:
atomic_component.hpp:21
object_vector.hpp
visr::ParameterInput
Definition:
parameter_input.hpp:45
visr::CompositeComponent
Definition:
composite_component.hpp:29
parameter_output.hpp
visr::SignalFlowContext
Definition:
signal_flow_context.hpp:15
export_symbols.hpp
visr::rbbl::BiquadCoefficientMatrix
Definition:
LoudspeakerArray.h:36
biquad_parameter.hpp
visr::rcl::ObjectGainEqCalculator
Definition:
object_gain_eq_calculator.hpp:42
atomic_component.hpp
visr::objectmodel::ObjectVector
Definition:
object_vector.hpp:22
visr::efl::BasicVector< CoefficientType >
visr::SamplingFrequencyType
std::size_t SamplingFrequencyType
Definition:
constants.hpp:19
vector_parameter.hpp
visr::SampleType
float SampleType
Definition:
constants.hpp:14
src
librcl
object_gain_eq_calculator.hpp
Generated on Thu Nov 8 2018 02:14:36 for VISR by
1.8.14