|
|
| version 1.1, 2003/10/16 17:58:48 | version 1.3, 2003/10/26 08:59:53 |
|---|---|
| Line 10 | Line 10 |
| #include "vermouth.h" | #include "vermouth.h" |
| #endif | #endif |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| void __fastcall satuation_s16mmx(SINT16 *dst, const SINT32 *src, UINT size); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #if 1 | #if 1 |
| #define DSBUFFERDESC_SIZE 20 // DirectX3 Structsize | #define DSBUFFERDESC_SIZE 20 // DirectX3 Structsize |
| Line 31 static UINT dsstreambytes; | Line 39 static UINT dsstreambytes; |
| static BYTE dsstreamevent; | static BYTE dsstreamevent; |
| static LPDIRECTSOUNDBUFFER pDSwave3[SOUND_MAXPCM]; | static LPDIRECTSOUNDBUFFER pDSwave3[SOUND_MAXPCM]; |
| static BYTE mute; | static BYTE mute; |
| static void (PARTSCALL *fnmix)(SINT16 *dst, | |
| const SINT32 *src, UINT size); | |
| #if defined(VERMOUTH_LIB) | #if defined(VERMOUTH_LIB) |
| MIDIMOD vermouth_module = NULL; | MIDIMOD vermouth_module = NULL; |
| Line 85 UINT soundmng_create(UINT rate, UINT ms) | Line 95 UINT soundmng_create(UINT rate, UINT ms) |
| samples = (rate * ms) / 2000; | samples = (rate * ms) / 2000; |
| samples = (samples + 3) & (~3); | samples = (samples + 3) & (~3); |
| dsstreambytes = samples * 2 * sizeof(SINT16); | dsstreambytes = samples * 2 * sizeof(SINT16); |
| soundmng_setreverse(FALSE); | |
| ZeroMemory(&pcmwf, sizeof(PCMWAVEFORMAT)); | ZeroMemory(&pcmwf, sizeof(PCMWAVEFORMAT)); |
| pcmwf.wf.wFormatTag = WAVE_FORMAT_PCM; | pcmwf.wf.wFormatTag = WAVE_FORMAT_PCM; |
| Line 204 const SINT32 *pcm; | Line 215 const SINT32 *pcm; |
| } | } |
| if (SUCCEEDED(hr)) { | if (SUCCEEDED(hr)) { |
| if (pcm) { | if (pcm) { |
| satuation_s16((SINT16 *)blockptr1, pcm, blocksize1); | (*fnmix)((SINT16 *)blockptr1, pcm, blocksize1); |
| } | } |
| else { | else { |
| ZeroMemory(blockptr1, blocksize1); | ZeroMemory(blockptr1, blocksize1); |
| Line 238 void soundmng_sync(void) { | Line 249 void soundmng_sync(void) { |
| } | } |
| void soundmng_setreverse(BOOL reverse) { | void soundmng_setreverse(BOOL reverse) { |
| if (!reverse) { | |
| if (mmxflag) { | |
| fnmix = satuation_s16; | |
| } | |
| else { | |
| fnmix = satuation_s16mmx; | |
| } | |
| } | |
| else { | |
| fnmix = satuation_s16x; | |
| } | |
| } | } |