9 #ifndef __S3A_renderer_dsp__LoudspeakerArray__ 12 #define __S3A_renderer_dsp__LoudspeakerArray__ 35 template<
typename CoeffType>
102 void loadXmlFile( std::string
const & filePath );
108 void loadXmlStream( std::istream & stream );
114 void loadXmlString( std::string
const & xmlString );
140 LoudspeakerIdType
const & loudspeakerId( LoudspeakerIndexType
const & index )
const;
156 LoudspeakerIndexType getSpeakerIndexFromId( LoudspeakerIdType
const &
id )
const ;
174 std::size_t
setTriplet( std::size_t iTri, std::size_t l1, std::size_t l2, std::size_t l3 )
176 m_triplet[iTri][0] = l1;
177 m_triplet[iTri][1] = l2;
178 m_triplet[iTri][2] = l3;
201 bool is2D()
const {
return m_is2D; };
279 return m_gainAdjustment;
300 bool outputEqualisationPresent()
const;
306 std::size_t outputEqualisationNumberOfBiquads()
const;
321 m_position[
id - 1].set( x, y, z, inf );
325 std::size_t setChannel( std::size_t
id, std::size_t chan )
327 m_channel[
id - 1] = chan;
331 bool m_is2D, m_isInfinite;
333 std::vector<XYZ> m_position;
335 std::vector< TripletType > m_triplet;
337 std::vector<ChannelIndex> m_channel;
339 std::map<LoudspeakerIdType, LoudspeakerIndexType> m_id;
345 std::vector<ChannelIndex> m_subwooferChannels;
347 efl::BasicMatrix<SampleType> m_subwooferGains;
349 efl::BasicMatrix<SampleType> m_reRoutingCoeff;
358 efl::BasicVector<SampleType> m_gainAdjustment;
360 efl::BasicVector<SampleType> m_delayAdjustment;
362 std::unique_ptr<rbbl::BiquadCoefficientMatrix<SampleType> > mOutputEqs;
std::size_t ChannelIndex
Definition: LoudspeakerArray.h:70
efl::BasicVector< SampleType > const & getGainAdjustment() const
Definition: LoudspeakerArray.h:277
std::size_t setTriplet(std::size_t iTri, std::size_t l1, std::size_t l2, std::size_t l3)
Definition: LoudspeakerArray.h:174
std::size_t getNumSpeakers() const
Definition: LoudspeakerArray.h:190
std::size_t getNumSubwoofers() const
Definition: LoudspeakerArray.h:213
std::string LoudspeakerIdType
Definition: LoudspeakerArray.h:51
TripletType & getTriplet(std::size_t iTri)
Definition: LoudspeakerArray.h:182
bool isInfinite() const
Definition: LoudspeakerArray.h:202
XYZ const & getPosition(LoudspeakerIdType const &id) const
Definition: LoudspeakerArray.h:129
SampleType getLoudspeakerGainAdjustment(std::size_t spkIdx) const
Definition: LoudspeakerArray.h:264
ChannelIndex channelIndex(std::size_t spkIndex) const
Definition: LoudspeakerArray.h:149
efl::BasicMatrix< SampleType > const & getSubwooferGains() const
Definition: LoudspeakerArray.h:223
TripletType const & getTriplet(std::size_t iTri) const
Definition: LoudspeakerArray.h:184
XYZ const & getPosition(std::size_t iSpk) const
Definition: LoudspeakerArray.h:121
std::array< LoudspeakerIndexType, 3 > TripletType
Definition: LoudspeakerArray.h:64
std::size_t getNumRegularSpeakers() const
Definition: LoudspeakerArray.h:195
SampleType getLoudspeakerDelayAdjustment(std::size_t spkIdx) const
Definition: LoudspeakerArray.h:266
SampleType getSubwooferGain(std::size_t subIdx, std::size_t spkIdx) const
Definition: LoudspeakerArray.h:232
Definition: options.cpp:10
std::size_t getNumTriplets() const
Definition: LoudspeakerArray.h:199
SampleType getSubwooferDelayAdjustment(std::size_t spkIdx) const
Definition: LoudspeakerArray.h:270
ChannelIndex getSpeakerChannelFromId(LoudspeakerIdType const &id) const
Definition: LoudspeakerArray.h:172
Definition: LoudspeakerArray.h:42
SampleType getSubwooferGainAdjustment(std::size_t spkIdx) const
Definition: LoudspeakerArray.h:268
SampleType getReroutingCoefficient(std::size_t virtIdx, std::size_t realIdx) const
Definition: LoudspeakerArray.h:255
efl::BasicMatrix< SampleType > const & getReroutingCoefficients() const
Definition: LoudspeakerArray.h:246
XYZ & getPosition(LoudspeakerIdType const &id)
Definition: LoudspeakerArray.h:127
Definition: LoudspeakerArray.h:36
efl::BasicVector< SampleType > const & getDelayAdjustment() const
Definition: LoudspeakerArray.h:287
ChannelIndex getSubwooferChannel(std::size_t subIdx) const
Definition: LoudspeakerArray.h:217
ChannelIndex const * getSubwooferChannels() const
Definition: LoudspeakerArray.h:215
ChannelIndex const * getLoudspeakerChannels() const
Definition: LoudspeakerArray.h:197
XYZ const * getPositions() const
Definition: LoudspeakerArray.h:133
XYZ & getPosition(std::size_t iSpk)
Definition: LoudspeakerArray.h:119
visr::SampleType SampleType
Definition: LoudspeakerArray.h:62
ChannelIndex getSpeakerChannel(std::size_t spkIndex) const
Definition: LoudspeakerArray.h:165
float SampleType
Definition: constants.hpp:14
XYZ * getPositions()
Definition: LoudspeakerArray.h:131
bool is2D() const
Definition: LoudspeakerArray.h:201
std::size_t LoudspeakerIndexType
Definition: LoudspeakerArray.h:57