3 #ifndef VISR_PML_ARRAY_CONFIGURATION_HPP_INCLUDED 4 #define VISR_PML_ARRAY_CONFIGURATION_HPP_INCLUDED 12 #include <initializer_list> 22 template<
typename ValueType >
class BasicVector;
34 explicit Speaker( std::size_t pId,
double pGainAdjustment,
double pDelayAdjustment )
35 : id( pId ), gainAdjustment( pGainAdjustment ), delayAdjustment( pDelayAdjustment )
47 return lhs.
id < rhs.
id;
51 using ArrayType = std::set<Speaker, CompareSpeakers>;
74 void loadXml( std::string
const & filePath );
78 template<
typename ValueType >
81 if( gains.
size() != numberOfOutputs() )
83 throw std::invalid_argument(
"ArrayConfiguration::getGains(): Size of outputMatrix does not match the array size." );
85 std::size_t outIdx( 0 );
86 for( ArrayType::const_iterator arrayIt( mArray.begin() ); arrayIt != mArray.end(); ++arrayIt, ++outIdx )
88 gains[outIdx] =
static_cast<ValueType
>(arrayIt->gainAdjustment);
92 template<
typename ValueType >
95 if( delays.
size() != numberOfOutputs() )
97 throw std::invalid_argument(
"ArrayConfiguration::getDelays(): Size of outputMatrix does not match the array size." );
99 std::size_t outIdx( 0 );
100 for( ArrayType::const_iterator arrayIt( mArray.begin() ); arrayIt != mArray.end(); ++arrayIt, ++outIdx )
102 delays[outIdx] =
static_cast<ValueType
>(arrayIt->delayAdjustment);
116 #endif // VISR_PML_ARRAY_CONFIGURATION_HPP_INCLUDED Speaker(std::size_t pId, double pGainAdjustment, double pDelayAdjustment)
Definition: array_configuration.hpp:34
std::size_t numberOfOutputs() const
Definition: array_configuration.hpp:63
void getDelays(efl::BasicVector< ValueType > &delays) const
Definition: array_configuration.hpp:93
std::size_t numberOfSubwoofers() const
Definition: array_configuration.hpp:67
std::vector< std::size_t > SubwooferList
Definition: array_configuration.hpp:57
std::size_t size() const
Definition: basic_vector.hpp:179
double gainAdjustment
Definition: array_configuration.hpp:39
std::set< Speaker, CompareSpeakers > ArrayType
Definition: array_configuration.hpp:51
Definition: options.cpp:10
Definition: array_configuration.hpp:31
double delayAdjustment
Definition: array_configuration.hpp:40
Definition: array_configuration.hpp:28
std::size_t numberOfLoudspeakers() const
Definition: array_configuration.hpp:65
SubwooferList const & subwooferIndices() const
Definition: array_configuration.hpp:69
bool operator()(Speaker const &lhs, Speaker const &rhs) const
Definition: array_configuration.hpp:45
void getGains(efl::BasicVector< ValueType > &gains) const
Definition: array_configuration.hpp:79
Definition: basic_vector.hpp:28
std::size_t id
Definition: array_configuration.hpp:38
Definition: array_configuration.hpp:43