| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | 
							- /*
 
-  * EQ.h
 
-  * ----
 
-  * Purpose: Mixing code for equalizer.
 
-  * Notes  : Ugh... This should really be removed at some point.
 
-  * Authors: Olivier Lapicque
 
-  *          OpenMPT Devs
 
-  * The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
 
-  */
 
- #pragma once
 
- #include "openmpt/all/BuildSettings.hpp"
 
- #include "openmpt/base/Types.hpp"
 
- #include "openmpt/soundbase/MixSample.hpp"
 
- #include <array>
 
- #include <cstddef>
 
- OPENMPT_NAMESPACE_BEGIN
 
- #ifndef NO_EQ
 
- inline constexpr std::size_t MAX_EQ_CHANNELS = 4;
 
- inline constexpr std::size_t MAX_EQ_BANDS = 6;
 
- struct EQBANDSTATE
 
- {
 
- 	float x1 = 0.0f;
 
- 	float x2 = 0.0f;
 
- 	float y1 = 0.0f;
 
- 	float y2 = 0.0f;
 
- };
 
- struct EQBANDSETTINGS
 
- {
 
- 	float a0;
 
- 	float a1;
 
- 	float a2;
 
- 	float b1;
 
- 	float b2;
 
- 	float Gain;
 
- 	float CenterFrequency;
 
- };
 
- class CEQ
 
- {
 
- private:
 
- 	std::array<std::array<EQBANDSTATE, MAX_EQ_BANDS>, MAX_EQ_CHANNELS> m_ChannelState;
 
- 	std::array<EQBANDSETTINGS, MAX_EQ_BANDS> m_Bands;
 
- 	template <typename TMixSample>
 
- 	void ProcessTemplate(TMixSample *frontBuffer, TMixSample *rearBuffer, std::size_t countFrames, std::size_t numChannels);
 
- public:
 
- 	CEQ();
 
- 	void Initialize(bool bReset, uint32 MixingFreq);
 
- 	void Process(MixSampleInt *frontBuffer, MixSampleInt *rearBuffer, std::size_t countFrames, std::size_t numChannels);
 
- 	void Process(MixSampleFloat *frontBuffer, MixSampleFloat *rearBuffer, std::size_t countFrames, std::size_t numChannels);
 
- 	void SetEQGains(const uint32 *pGains, const uint32 *pFreqs, bool bReset, uint32 MixingFreq);
 
- };
 
- #endif // !NO_EQ
 
- OPENMPT_NAMESPACE_END
 
 
  |