--- hatari/src/includes/sound.h 2019/04/01 07:14:48 1.1.1.9 +++ hatari/src/includes/sound.h 2019/04/09 08:58:11 1.1.1.14 @@ -1,8 +1,8 @@ /* Hatari - sound.h - This file is distributed under the GNU Public License, version 2 or at - your option any later version. Read the file gpl.txt for details. + This file is distributed under the GNU General Public License, version 2 + or at your option any later version. Read the file gpl.txt for details. Matthias Arndt 2008-08-15 - cleanup to have definitions and declarations for both sound cores in one place @@ -14,12 +14,13 @@ /* definitions common for all sound rendering engines */ -#define MIXBUFFER_SIZE 8192 /* Size of circular buffer to store sample to (44Khz) */ +#define MIXBUFFER_SIZE 16384 /* Size of circular buffer to store sample to (44Khz) */ -extern Uint8 SoundRegs[ 14 ]; /* store YM regs 0 to 13 */ +extern Uint8 SoundRegs[ 14 ]; /* store YM regs 0 to 13 */ extern int nGeneratedSamples; extern bool bEnvelopeFreqFlag; extern Sint16 MixBuffer[MIXBUFFER_SIZE][2]; +extern bool Sound_BufferIndexNeedReset; /* STSound sound renderer active */ #include @@ -42,20 +43,38 @@ typedef yms16 ymsample; /* Output sam #define YM_LINEAR_MIXING 1 /* Use ymout1c5bit[] to build ymout5[] */ #define YM_TABLE_MIXING 2 /* Use volumetable_original to build ymout5[] */ +#define YM_MODEL_MIXING 3 /* Use circuit analysis model to build ymout5[] */ extern int YmVolumeMixing; -extern bool UseLowPassFilter; + +#define YM2149_LPF_FILTER_NONE 0 +#define YM2149_LPF_FILTER_LPF_STF 1 +#define YM2149_LPF_FILTER_PWM 2 +extern int YM2149_LPF_Filter; + +#define YM2149_HPF_FILTER_NONE 0 +#define YM2149_HPF_FILTER_IIR 1 +extern int YM2149_HPF_Filter; + +#define YM2149_RESAMPLE_METHOD_NEAREST 0 +#define YM2149_RESAMPLE_METHOD_WEIGHTED_AVERAGE_2 1 +#define YM2149_RESAMPLE_METHOD_WEIGHTED_AVERAGE_N 2 +extern int YM2149_Resample_Method; + extern void Sound_Init(void); extern void Sound_Reset(void); extern void Sound_ResetBufferIndex(void); extern void Sound_MemorySnapShot_Capture(bool bSave); -extern void Sound_Update(void); +extern void Sound_Update(bool FillFrame); extern void Sound_Update_VBL(void); extern void Sound_WriteReg( int reg , Uint8 data ); extern bool Sound_BeginRecording(char *pszCaptureFileName); extern void Sound_EndRecording(void); extern bool Sound_AreWeRecording(void); +extern void Sound_SetYmVolumeMixing(void); +extern ymsample Subsonic_IIR_HPF_Left(ymsample x0); +extern ymsample Subsonic_IIR_HPF_Right(ymsample x0); #endif /* HATARI_SOUND_H */