|
|
1.1 root 1: /*
1.1.1.4 root 2: Hatari - sound.h
3:
4: This file is distributed under the GNU Public License, version 2 or at
5: your option any later version. Read the file gpl.txt for details.
1.1.1.9 root 6:
7: Matthias Arndt 2008-08-15
8: - cleanup to have definitions and declarations for both sound cores in one place
1.1 root 9: */
10:
1.1.1.3 root 11: #ifndef HATARI_SOUND_H
12: #define HATARI_SOUND_H
13:
14:
1.1.1.9 root 15: /* definitions common for all sound rendering engines */
16:
1.1.1.10! root 17: #define MIXBUFFER_SIZE 16384 /* Size of circular buffer to store sample to (44Khz) */
1.1 root 18:
1.1.1.10! root 19: extern Uint8 SoundRegs[ 14 ]; /* store YM regs 0 to 13 */
1.1.1.9 root 20: extern int nGeneratedSamples;
21: extern bool bEnvelopeFreqFlag;
22: extern Sint16 MixBuffer[MIXBUFFER_SIZE][2];
23:
24: /* STSound sound renderer active */
25: #include <SDL_types.h>
26:
27:
28: /* Internal data types */
29:
30: typedef Sint64 yms64;
31:
32: typedef Sint8 yms8;
33: typedef Sint16 yms16;
34: typedef Sint32 yms32;
1.1.1.3 root 35:
1.1.1.9 root 36: typedef Uint8 ymu8;
37: typedef Uint16 ymu16;
38: typedef Uint32 ymu32;
39:
40: typedef yms16 ymsample; /* Output samples are mono 16bits signed PCM */
41:
42:
43: #define YM_LINEAR_MIXING 1 /* Use ymout1c5bit[] to build ymout5[] */
44: #define YM_TABLE_MIXING 2 /* Use volumetable_original to build ymout5[] */
45:
46: extern int YmVolumeMixing;
47: extern bool UseLowPassFilter;
1.1 root 48:
49: extern void Sound_Init(void);
50: extern void Sound_Reset(void);
1.1.1.7 root 51: extern void Sound_ResetBufferIndex(void);
1.1.1.9 root 52: extern void Sound_MemorySnapShot_Capture(bool bSave);
1.1 root 53: extern void Sound_Update(void);
54: extern void Sound_Update_VBL(void);
1.1.1.9 root 55: extern void Sound_WriteReg( int reg , Uint8 data );
56: extern bool Sound_BeginRecording(char *pszCaptureFileName);
1.1.1.6 root 57: extern void Sound_EndRecording(void);
1.1.1.9 root 58: extern bool Sound_AreWeRecording(void);
59:
1.1.1.3 root 60:
61: #endif /* HATARI_SOUND_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.