VISR
0.11.8
Versatile Interactive Scene Renderer
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
listener_compensation.hpp
Go to the documentation of this file.
1
//
2
// LoudspeakerArray.h
3
//
4
// Created by Marcos F. Sim�n G�lvez on 02/02/2015.
5
// Copyright (c) 2014 ISVR, University of Southampton. All rights reserved.
6
//
7
8
9
#ifndef __S3A_renderer_dsp__listenerCompensation__
10
11
#define __S3A_renderer_dsp__listenerCompensation__
12
13
#include "
export_symbols.hpp
"
14
15
#include <
libefl/basic_matrix.hpp
>
16
17
#include <
libvisr/atomic_component.hpp
>
18
#include <
libvisr/parameter_input.hpp
>
19
#include <
libvisr/parameter_output.hpp
>
20
21
#include <
libpanning/defs.h
>
22
#include <
libpanning/XYZ.h
>
23
#include <
libpanning/LoudspeakerArray.h
>
24
25
#include <
libefl/basic_vector.hpp
>
26
27
#include <
libpml/double_buffering_protocol.hpp
>
28
#include <
libpml/listener_position.hpp
>
29
#include <
libpml/vector_parameter.hpp
>
30
31
#include <memory>
32
33
namespace
visr
34
{
35
36
namespace
rcl
37
{
38
39
class
VISR_RCL_LIBRARY_SYMBOL
ListenerCompensation
:
public
AtomicComponent
40
{
41
public
:
42
using
SampleType
=
visr::SampleType
;
43
public
:
51
explicit
ListenerCompensation
(
SignalFlowContext
const
& context,
52
char
const
* name,
53
CompositeComponent
* parent,
54
panning::LoudspeakerArray
const
& arrayConfig );
55
59
ListenerCompensation
(
ListenerCompensation
const
&) =
delete
;
60
65
void
process()
override
;
66
67
private
:
68
std::size_t getNumSpeakers( )
const
69
{
70
return
m_array.getNumSpeakers( );
71
}
72
73
int
setListenerPosition(
Afloat
x,
Afloat
y,
Afloat
z )
74
{
//assigning the position of the listener
75
m_listenerPos.set( x, y, z );
76
return
0;
77
}
78
84
int
calcGainComp(
efl::BasicVector<Afloat>
& gainComp );
// this function calculates the gain compensation
85
91
int
calcDelayComp(
efl::BasicVector<Afloat>
& delayComp );
// this function calculates the delay compensation
92
93
panning::LoudspeakerArray
m_array;
//passing the address of the loudspeaker array
94
panning::XYZ
m_listenerPos;
//position of the listener
95
std::size_t
const
mNumberOfLoudspeakers;
96
97
ParameterInput<pml::DoubleBufferingProtocol, pml::ListenerPosition >
mPositionInput;
98
ParameterOutput<pml::DoubleBufferingProtocol, pml::VectorParameter<Afloat>
> mGainOutput;
99
ParameterOutput<pml::DoubleBufferingProtocol, pml::VectorParameter<Afloat>
> mDelayOutput;
100
};
//class Listener Compensation
101
102
}
// namespace rcl
103
}
// namespace visr
104
105
106
#endif
/* defined(__S3A_renderer_dsp__LoudspeakerArray__) */
double_buffering_protocol.hpp
visr::panning::XYZ
Definition:
XYZ.h:23
visr::ParameterOutput
Definition:
parameter_output.hpp:45
parameter_input.hpp
defs.h
LoudspeakerArray.h
visr::rcl::ListenerCompensation
Definition:
listener_compensation.hpp:39
basic_matrix.hpp
visr
Definition:
options.cpp:10
visr::AtomicComponent
Definition:
atomic_component.hpp:21
visr::ParameterInput< pml::DoubleBufferingProtocol, pml::ListenerPosition >
visr::CompositeComponent
Definition:
composite_component.hpp:29
visr::panning::LoudspeakerArray
Definition:
LoudspeakerArray.h:42
basic_vector.hpp
parameter_output.hpp
visr::SignalFlowContext
Definition:
signal_flow_context.hpp:15
visr::rcl::ListenerCompensation::SampleType
visr::SampleType SampleType
Definition:
listener_compensation.hpp:42
XYZ.h
export_symbols.hpp
listener_position.hpp
atomic_component.hpp
visr::efl::BasicVector
Definition:
basic_vector.hpp:28
vector_parameter.hpp
visr::SampleType
float SampleType
Definition:
constants.hpp:14
Afloat
float Afloat
Definition:
defs.h:15
src
librcl
listener_compensation.hpp
Generated on Fri Nov 16 2018 13:42:28 for VISR by
1.8.11