2018-02-19 01:25:43 -03:00
|
|
|
/*
|
|
|
|
* AGC.h
|
|
|
|
* -----
|
|
|
|
* Purpose: Automatic Gain Control
|
|
|
|
* 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
|
|
|
|
|
2021-12-26 08:29:43 -03:00
|
|
|
#include "openmpt/all/BuildSettings.hpp"
|
2019-01-23 23:16:37 -03:00
|
|
|
|
2018-02-19 01:25:43 -03:00
|
|
|
|
|
|
|
OPENMPT_NAMESPACE_BEGIN
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef NO_AGC
|
|
|
|
|
|
|
|
class CAGC
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
UINT m_nAGC;
|
|
|
|
std::size_t m_nAGCRecoverCount;
|
|
|
|
UINT m_Timeout;
|
|
|
|
public:
|
|
|
|
CAGC();
|
|
|
|
void Initialize(bool bReset, DWORD MixingFreq);
|
|
|
|
public:
|
|
|
|
void Process(int *MixSoundBuffer, int *RearSoundBuffer, std::size_t count, std::size_t nChannels);
|
|
|
|
void Adjust(UINT oldVol, UINT newVol);
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // NO_AGC
|
|
|
|
|
|
|
|
|
|
|
|
OPENMPT_NAMESPACE_END
|