55 lines
1.2 KiB
C++
Executable file
55 lines
1.2 KiB
C++
Executable file
// Part of SAASound copyright 1998-2018 Dave Hooper <dave@beermex.com>
|
|
//
|
|
// SAANoise.h: interface for the CSAANoise class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef SAANOISE_H_INCLUDED
|
|
#define SAANOISE_H_INCLUDED
|
|
|
|
class CSAANoise
|
|
{
|
|
private:
|
|
unsigned long m_nCounter;
|
|
unsigned long m_nAdd;
|
|
unsigned long m_nCounter_low;
|
|
unsigned int m_nOversample;
|
|
unsigned long m_nCounterLimit_low;
|
|
bool m_bSync; // see description of "SYNC" bit of register 28
|
|
unsigned long m_nSampleRate; // = 44100 when RateMode=0, for example
|
|
int m_nSourceMode;
|
|
unsigned long m_nAddBase; // nAdd for 31.25 kHz noise at 44.1 kHz samplerate
|
|
|
|
// pseudo-random number generator
|
|
unsigned long m_nRand;
|
|
|
|
void ChangeLevel(void);
|
|
|
|
|
|
public:
|
|
CSAANoise();
|
|
CSAANoise(unsigned long seed);
|
|
~CSAANoise();
|
|
|
|
void SetSource(int nSource);
|
|
void Trigger(void);
|
|
void _SetSampleRate(int nSampleRate);
|
|
void _SetOversample(unsigned int oversample);
|
|
void _SetClockRate(int nClockRate);
|
|
void Seed(unsigned long seed);
|
|
|
|
void Tick(void);
|
|
int Level(void) const;
|
|
void Sync(bool bSync);
|
|
|
|
};
|
|
|
|
inline int CSAANoise::Level(void) const
|
|
{
|
|
// returns 0 or 1
|
|
return (m_nRand & 0x00000001);
|
|
}
|
|
|
|
|
|
#endif // SAANOISE_H_INCLUDED
|