VISR
0.11.1
Versatile Interactive Scene Renderer
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
cap_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_CAP_GAIN_CALCULATOR_HPP_INCLUDED
4
#define VISR_LIBRCL_CAP_GAIN_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 <
libpml/double_buffering_protocol.hpp
>
13
#include <
libpml/shared_data_protocol.hpp
>
14
#include <
libpml/listener_position.hpp
>
15
#include <
libpml/matrix_parameter.hpp
>
16
#include <
libpml/object_vector.hpp
>
17
18
#include <
libpanning/LoudspeakerArray.h
>
19
#include <
libpanning/CAP.h
>
20
#include <
libpanning/XYZ.h
>
21
22
#include <vector>
23
24
namespace
visr
25
{
26
// forward declarations
27
namespace
objectmodel
28
{
29
class
ObjectVector;
30
}
31
namespace
efl
32
{
33
template
<
typename
SampleType >
class
BasicMatrix;
34
}
35
namespace
pml
36
{
37
class
ListenerPosition;
38
}
39
40
namespace
rcl
41
{
42
46
class
VISR_RCL_LIBRARY_SYMBOL
CAPGainCalculator
:
public
AtomicComponent
47
{
48
public
:
52
using
CoefficientType
=
visr::SampleType
;
53
62
explicit
CAPGainCalculator
(
SignalFlowContext
const
& context,
63
char
const
* name,
64
CompositeComponent
* parent,
65
std::size_t numberOfObjects,
66
panning::LoudspeakerArray
const
& arrayConfig );
67
71
CAPGainCalculator
(
CAPGainCalculator
const
& ) =
delete
;
72
73
77
~
CAPGainCalculator
();
78
82
void
process()
override
;
83
84
private
:
91
void
process(
objectmodel::ObjectVector
const
& objects,
92
pml::ListenerPosition
const
& listener,
93
efl::BasicMatrix<CoefficientType>
& gainMatrix );
94
98
std::size_t
const
mNumberOfObjects;
99
104
std::size_t
const
mNumberOfLoudspeakers;
105
110
std::vector<panning::XYZ> mSourcePositions;
111
115
panning::CAP
mCapCalculator;
116
120
std::valarray<objectmodel::LevelType> mLevels;
121
122
ParameterInput<pml::DoubleBufferingProtocol, pml::ObjectVector >
mObjectVectorInput;
123
124
ParameterInput<pml::DoubleBufferingProtocol, pml::ListenerPosition >
mListenerPositionInput;
125
126
ParameterOutput<pml::SharedDataProtocol, pml::MatrixParameter<CoefficientType>
> mGainOutput;
127
};
128
129
}
// namespace rcl
130
}
// namespace visr
131
132
#endif // #ifndef VISR_LIBRCL_CAP_GAIN_CALCULATOR_HPP_INCLUDED
double_buffering_protocol.hpp
CAP.h
visr::ParameterOutput
Definition:
parameter_output.hpp:45
parameter_input.hpp
LoudspeakerArray.h
visr
Definition:
options.cpp:10
visr::AtomicComponent
Definition:
atomic_component.hpp:21
object_vector.hpp
visr::ParameterInput< pml::DoubleBufferingProtocol, pml::ObjectVector >
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
export_symbols.hpp
visr::panning::CAP
Definition:
CAP.h:28
visr::rcl::CAPGainCalculator
Definition:
cap_gain_calculator.hpp:46
visr::pml::ListenerPosition
Definition:
listener_position.hpp:31
listener_position.hpp
atomic_component.hpp
shared_data_protocol.hpp
visr::objectmodel::ObjectVector
Definition:
object_vector.hpp:22
visr::SampleType
float SampleType
Definition:
constants.hpp:14
visr::rcl::CAPGainCalculator::CoefficientType
visr::SampleType CoefficientType
Definition:
cap_gain_calculator.hpp:52
visr::efl::BasicMatrix< CoefficientType >
src
librcl
cap_gain_calculator.hpp
Generated on Tue Oct 30 2018 16:25:44 for VISR by
1.8.11