VISR
0.11.1
Versatile Interactive Scene Renderer
hoa_allrad_gain_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_HOA_ALLRAP_GAIN_CALCULATOR_HPP_INCLUDED
4
#define VISR_LIBRCL_HOA_ALLRAP_GAIN_CALCULATOR_HPP_INCLUDED
5
6
#include "
export_symbols.hpp
"
7
8
#include <
libvisr/constants.hpp
>
9
#include <
libvisr/atomic_component.hpp
>
10
#include <
libvisr/parameter_input.hpp
>
11
#include <
libvisr/parameter_output.hpp
>
12
13
#include <
libobjectmodel/object.hpp
>
// needed basically for type definitions
14
15
#include <
libpanning/AllRAD.h
>
16
#include <
libpanning/LoudspeakerArray.h
>
17
#include <
libpanning/VBAP.h
>
18
#include <
libpanning/XYZ.h
>
19
20
#include <
libpml/double_buffering_protocol.hpp
>
21
#include <
libpml/listener_position.hpp
>
22
#include <
libpml/matrix_parameter.hpp
>
23
#include <
libpml/object_vector.hpp
>
24
#include <
libpml/shared_data_protocol.hpp
>
25
26
#include <vector>
27
28
namespace
visr
29
{
30
// forward declarations
31
namespace
objectmodel
32
{
33
class
ObjectVector;
34
}
35
namespace
efl
36
{
37
template
<
typename
SampleType >
class
BasicMatrix;
38
}
39
40
namespace
rcl
41
{
42
48
class
VISR_RCL_LIBRARY_SYMBOL
HoaAllRadGainCalculator
:
public
AtomicComponent
49
{
50
public
:
54
using
CoefficientType
=
SampleType
;
55
69
explicit
HoaAllRadGainCalculator
(
SignalFlowContext
const
& context,
70
char
const
* name,
71
CompositeComponent
* parent,
72
std::size_t numberOfObjectChannels,
73
panning::LoudspeakerArray
const
& regularArrayConfig,
74
panning::LoudspeakerArray
const
& realArrayConfig,
75
efl::BasicMatrix<Afloat>
const
& decodeMatrix,
76
pml::ListenerPosition
const
& listenerPosition =
pml::ListenerPosition
(),
77
bool
adaptiveListenerPosition =
false
);
78
82
HoaAllRadGainCalculator
(
HoaAllRadGainCalculator
const
& ) =
delete
;
83
84
88
~
HoaAllRadGainCalculator
();
89
93
void
process()
override
;
94
95
private
:
96
107
void
setListenerPosition(
CoefficientType
x,
CoefficientType
y,
CoefficientType
z );
108
117
void
setListenerPosition(
pml::ListenerPosition
const
& pos );
118
119
ParameterInput<pml::DoubleBufferingProtocol, pml::ObjectVector>
mObjectInput;
120
121
ParameterInput<pml::SharedDataProtocol, pml::MatrixParameter<SampleType>
> mGainMatrixInput;
122
123
ParameterOutput<pml::SharedDataProtocol, pml::MatrixParameter<SampleType>
> mGainMatrixOutput;
124
125
std::unique_ptr<ParameterInput<pml::DoubleBufferingProtocol, pml::ListenerPosition > > mListenerInput;
126
127
std::unique_ptr<panning::AllRAD> mAllRadCalculator;
128
133
efl::BasicMatrix<Afloat>
mRegularDecodeMatrix;
134
135
efl::BasicMatrix<Afloat>
mRealDecodeMatrix;
136
};
137
138
}
// namespace rcl
139
}
// namespace visr
140
141
#endif // #ifndef VISR_LIBRCL_HOA_ALLRAP_GAIN_CALCULATOR_HPP_INCLUDED
double_buffering_protocol.hpp
visr::ParameterOutput
Definition:
parameter_output.hpp:45
parameter_input.hpp
object.hpp
LoudspeakerArray.h
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
visr::panning::LoudspeakerArray
Definition:
LoudspeakerArray.h:42
parameter_output.hpp
visr::SignalFlowContext
Definition:
signal_flow_context.hpp:15
matrix_parameter.hpp
XYZ.h
visr::rcl::HoaAllRadGainCalculator
Definition:
hoa_allrad_gain_calculator.hpp:48
export_symbols.hpp
VBAP.h
constants.hpp
visr::pml::ListenerPosition
Definition:
listener_position.hpp:31
listener_position.hpp
visr::rcl::HoaAllRadGainCalculator::CoefficientType
SampleType CoefficientType
Definition:
hoa_allrad_gain_calculator.hpp:54
atomic_component.hpp
shared_data_protocol.hpp
visr::SampleType
float SampleType
Definition:
constants.hpp:14
AllRAD.h
visr::efl::BasicMatrix< Afloat >
src
librcl
hoa_allrad_gain_calculator.hpp
Generated on Tue Oct 30 2018 16:18:52 for VISR by
1.8.14