52 lines
		
	
	
		
			1,016 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
		
			1,016 B
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								// Part of SAASound copyright 1998-2018 Dave Hooper <dave@beermex.com>
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// SAAEnv.h: interface for the CSAAEnv class.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//////////////////////////////////////////////////////////////////////
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef SAAENV_H_INCLUDED
							 | 
						||
| 
								 | 
							
								#define SAAENV_H_INCLUDED
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class CSAAEnv  
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
									int m_nLeftLevel, m_nRightLevel;
							 | 
						||
| 
								 | 
							
									ENVDATA const * m_pEnvData;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									bool m_bEnabled;
							 | 
						||
| 
								 | 
							
									bool m_bInvertRightChannel;
							 | 
						||
| 
								 | 
							
									BYTE m_nPhase;
							 | 
						||
| 
								 | 
							
									BYTE m_nPhasePosition;
							 | 
						||
| 
								 | 
							
									bool m_bEnvelopeEnded;
							 | 
						||
| 
								 | 
							
									bool m_bLooping;
							 | 
						||
| 
								 | 
							
									char m_nNumberOfPhases;
							 | 
						||
| 
								 | 
							
									char m_nResolution;
							 | 
						||
| 
								 | 
							
									bool m_bNewData;
							 | 
						||
| 
								 | 
							
									BYTE m_nNextData;
							 | 
						||
| 
								 | 
							
									bool m_bClockExternally;
							 | 
						||
| 
								 | 
							
									static const ENVDATA cs_EnvData[8];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									void Tick(void);
							 | 
						||
| 
								 | 
							
									void SetLevels(void);
							 | 
						||
| 
								 | 
							
									void SetNewEnvData(int nData);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
									CSAAEnv();
							 | 
						||
| 
								 | 
							
									~CSAAEnv();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									void InternalClock(void);
							 | 
						||
| 
								 | 
							
									void ExternalClock(void);
							 | 
						||
| 
								 | 
							
									void SetEnvControl(int nData); // really just a BYTE
							 | 
						||
| 
								 | 
							
									int LeftLevel(void) const;
							 | 
						||
| 
								 | 
							
									int RightLevel(void) const;
							 | 
						||
| 
								 | 
							
									bool IsActive(void) const;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								inline bool CSAAEnv::IsActive(void) const
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									return m_bEnabled;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif	// SAAENV_H_INCLUDED
							 |