aboutsummaryrefslogtreecommitdiff
path: root/sword2/driver/d_sound.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sword2/driver/d_sound.cpp')
-rw-r--r--sword2/driver/d_sound.cpp165
1 files changed, 74 insertions, 91 deletions
diff --git a/sword2/driver/d_sound.cpp b/sword2/driver/d_sound.cpp
index cc88f6aac0..6fb8ac6274 100644
--- a/sword2/driver/d_sound.cpp
+++ b/sword2/driver/d_sound.cpp
@@ -358,6 +358,7 @@
#include "stdafx.h"
#include "driver96.h"
#include "rdwin.h" // for hwnd.
+#include "d_sound.h"
// Decompression macros
#define MakeCompressedByte(shift,sign,amplitude) (((shift)<<4) + ((sign)<<3) + (amplitude))
@@ -366,6 +367,13 @@
#define GetCompressedAmplitude(byte) ((byte) & 7)
#define GetdAPower(dA,power) for (power = 15;power>0 && !((dA) & (1<<power)); power--)
+/*
+LPDIRECTSOUND lpDS;
+LPDIRECTSOUNDBUFFER dsbPrimary;
+LPDIRECTSOUNDBUFFER dsbSpeech;
+LPDIRECTSOUNDBUFFER dsbFx[MAXFX];
+*/
+
int32 panTable[33] = {
-10000,
-1500, -1400, -1300, -1200,
@@ -387,46 +395,6 @@ int32 volTable[241] = {
};
-/*
-LPDIRECTSOUND lpDS;
-LPDIRECTSOUNDBUFFER dsbPrimary;
-LPDIRECTSOUNDBUFFER dsbSpeech;
-LPDIRECTSOUNDBUFFER dsbFx[MAXFX];
-*/
-
-int32 fxId[MAXFX];
-uint8 fxCached[MAXFX];
-uint8 fxiPaused[MAXFX];
-uint8 fxLooped[MAXFX];
-uint8 fxVolume[MAXFX];
-
-uint8 soundOn = 0;
-uint8 speechStatus = 0;
-uint8 fxPaused = 0;
-uint8 speechPaused = 0;
-uint8 speechVol = 14;
-uint8 fxVol = 14;
-uint8 speechMuted = 0;
-uint8 fxMuted = 0;
-uint8 compressedMusic = 0;
-
-int16 musStreaming[MAXMUS];
-int16 musicPaused[MAXMUS];
-int16 musCounter[MAXMUS];
-int16 musFading[MAXMUS];
-int16 musLooping[MAXMUS];
-//DSBUFFERDESC dsbdMus[MAXMUS];
-//LPDIRECTSOUNDBUFFER lpDsbMus[MAXMUS];
-FILE *fpMus[MAXMUS];
-//PCMWAVEFORMAT wfMus[MAXMUS];
-int32 streamCursor[MAXMUS];
-char musFilename[MAXMUS][256];
-int32 musFilePos[MAXMUS];
-int32 musEnd[MAXMUS];
-int16 musLastSample[MAXMUS];
-uint32 musId[MAXMUS];
-uint32 volMusic[2] = {16, 16};
-uint8 musicMuted = 0;
int32 musicVolTable[17] = {
-10000,
-5000, -3000, -2500, -2250,
@@ -437,10 +405,25 @@ int32 musicVolTable[17] = {
-void UpdateSampleStreaming(void);
-void UpdateCompSampleStreaming(void);
-int32 DipMusic(void);
+BS2Sound::BS2Sound(void) {
+
+ soundOn = 0;
+ speechStatus = 0;
+ fxPaused = 0;
+ speechPaused = 0;
+ speechVol = 14;
+ fxVol = 14;
+ speechMuted = 0;
+ fxMuted = 0;
+ compressedMusic = 0;
+ volMusic[0] = 16;
+ volMusic[1] = 16;
+ musicMuted = 0;
+
+}
+
+/* not used seemingly - khalek
#define SPEECH_EXPANSION
@@ -473,12 +456,12 @@ int16 ExpandSpeech(int16 sample)
}
#endif
-
+*/
// --------------------------------------------------------------------------
// This function reverse the pan table, thus reversing the stereo.
// --------------------------------------------------------------------------
-int32 ReverseStereo(void)
+int32 BS2Sound::ReverseStereo(void)
{
int32 i,j;
@@ -497,7 +480,7 @@ int32 ReverseStereo(void)
// --------------------------------------------------------------------------
// This function returns the index of the sound effect with the ID passed in.
// --------------------------------------------------------------------------
-int32 GetFxIndex(int32 id)
+int32 BS2Sound::GetFxIndex(int32 id)
{
@@ -515,7 +498,7 @@ int32 GetFxIndex(int32 id)
}
-int32 IsFxOpen(int32 id)
+int32 BS2Sound::IsFxOpen(int32 id)
{
int32 i = 0;
@@ -540,7 +523,7 @@ int32 IsFxOpen(int32 id)
// out the ones which are no longer required in a buffer. It is called on
// a slow timer from rdwin.c
// --------------------------------------------------------------------------
-void FxServer(void)
+void BS2Sound::FxServer(void)
{
warning("stub FxServer");
@@ -603,7 +586,7 @@ void FxServer(void)
-int32 InitialiseSound(uint16 freq, uint16 channels, uint16 bitDepth)
+int32 BS2Sound::InitialiseSound(uint16 freq, uint16 channels, uint16 bitDepth)
{
warning("stub InitaliseSound( %d, %d, %d )", freq, channels, bitDepth);
@@ -689,7 +672,7 @@ int32 InitialiseSound(uint16 freq, uint16 channels, uint16 bitDepth)
}
-int32 PlaySpeech(uint8 *data, uint8 vol, int8 pan)
+int32 BS2Sound::PlaySpeech(uint8 *data, uint8 vol, int8 pan)
{
warning("stub PlaySpeech");
@@ -793,7 +776,7 @@ int32 PlaySpeech(uint8 *data, uint8 vol, int8 pan)
}
-int32 AmISpeaking()
+int32 BS2Sound::AmISpeaking()
{
warning("stub AmISpeaking");
/*
@@ -837,7 +820,7 @@ int32 AmISpeaking()
}
-int32 GetCompSpeechSize(const char *filename, uint32 speechid)
+int32 BS2Sound::GetCompSpeechSize(const char *filename, uint32 speechid)
{
int32 i;
uint32 speechIndex[2];
@@ -874,7 +857,7 @@ int32 GetCompSpeechSize(const char *filename, uint32 speechid)
}
-int32 PreFetchCompSpeech(const char *filename, uint32 speechid, uint8 *waveMem)
+int32 BS2Sound::PreFetchCompSpeech(const char *filename, uint32 speechid, uint8 *waveMem)
{
uint32 i;
uint16 *data16;
@@ -968,7 +951,7 @@ int32 PreFetchCompSpeech(const char *filename, uint32 speechid, uint8 *waveMem)
}
-int32 PlayCompSpeech(const char *filename, uint32 speechid, uint8 vol, int8 pan)
+int32 BS2Sound::PlayCompSpeech(const char *filename, uint32 speechid, uint8 vol, int8 pan)
{
warning("stub PlayCompSpeech( %s, %d, %d, %d )", filename, speechid, vol, pan);
/*
@@ -1131,7 +1114,7 @@ int32 PlayCompSpeech(const char *filename, uint32 speechid, uint8 vol, int8 pan)
}
-int32 StopSpeechBS2(void)
+int32 BS2Sound::StopSpeechBS2(void)
{
warning("stub StopSpeechBS2");
@@ -1163,7 +1146,7 @@ int32 StopSpeechBS2(void)
-int32 GetSpeechStatus(void)
+int32 BS2Sound::GetSpeechStatus(void)
{
warning("stub GetSpeechStatus");
/*
@@ -1192,7 +1175,7 @@ int32 GetSpeechStatus(void)
}
-void SetSpeechVolume(uint8 volume)
+void BS2Sound::SetSpeechVolume(uint8 volume)
{
warning("stub SetSpeechVolume");
/*
@@ -1203,13 +1186,13 @@ void SetSpeechVolume(uint8 volume)
}
-uint8 GetSpeechVolume()
+uint8 BS2Sound::GetSpeechVolume()
{
return speechVol;
}
-void MuteSpeech(uint8 mute)
+void BS2Sound::MuteSpeech(uint8 mute)
{
warning("stub MuteSpeech( %d )", mute);
/*
@@ -1226,13 +1209,13 @@ void MuteSpeech(uint8 mute)
}
-uint8 IsSpeechMute(void)
+uint8 BS2Sound::IsSpeechMute(void)
{
return (speechMuted);
}
-int32 PauseSpeech(void)
+int32 BS2Sound::PauseSpeech(void)
{
warning("PauseSpeech");
/*
@@ -1245,7 +1228,7 @@ int32 PauseSpeech(void)
return(RD_OK);
}
-int32 UnpauseSpeech(void)
+int32 BS2Sound::UnpauseSpeech(void)
{
warning("UnpauseSpeech");
/*
@@ -1259,7 +1242,7 @@ int32 UnpauseSpeech(void)
}
-int32 OpenFx(int32 id, uint8 *data)
+int32 BS2Sound::OpenFx(int32 id, uint8 *data)
{
warning("stub OpenFx( %d )", id);
@@ -1374,7 +1357,7 @@ int32 OpenFx(int32 id, uint8 *data)
}
-int32 PlayFx(int32 id, uint8 *data, uint8 vol, int8 pan, uint8 type)
+int32 BS2Sound::PlayFx(int32 id, uint8 *data, uint8 vol, int8 pan, uint8 type)
{
warning("stub PlayFx( %d, %d, %d, %d )", id, vol, pan, type);
@@ -1480,7 +1463,7 @@ int32 PlayFx(int32 id, uint8 *data, uint8 vol, int8 pan, uint8 type)
}
-int32 SetFxVolumePan(int32 id, uint8 vol, int8 pan)
+int32 BS2Sound::SetFxVolumePan(int32 id, uint8 vol, int8 pan)
{
warning("stub SetFxVolumePan( %d, %d, %d )", id, vol, pan);
/*
@@ -1496,7 +1479,7 @@ int32 SetFxVolumePan(int32 id, uint8 vol, int8 pan)
return RD_OK;
}
-int32 SetFxIdVolume(int32 id, uint8 vol)
+int32 BS2Sound::SetFxIdVolume(int32 id, uint8 vol)
{
warning("stub SetFxIdVolume( %d, %d )", id, vol);
/*
@@ -1513,7 +1496,7 @@ int32 SetFxIdVolume(int32 id, uint8 vol)
-int32 ClearAllFx(void)
+int32 BS2Sound::ClearAllFx(void)
{
warning("stub ClearAllFx");
@@ -1548,7 +1531,7 @@ int32 ClearAllFx(void)
}
-int32 CloseFx(int32 id)
+int32 BS2Sound::CloseFx(int32 id)
{
warning("stub CloseFx( %d )", id);
@@ -1579,7 +1562,7 @@ int32 CloseFx(int32 id)
}
-int32 PauseFx(void)
+int32 BS2Sound::PauseFx(void)
{
warning("stub PauseFx");
@@ -1614,7 +1597,7 @@ int32 PauseFx(void)
}
-int32 PauseFxForSequence(void)
+int32 BS2Sound::PauseFxForSequence(void)
{
warning("stub PauseFxForSequence");
@@ -1649,7 +1632,7 @@ int32 PauseFxForSequence(void)
-int32 UnpauseFx(void)
+int32 BS2Sound::UnpauseFx(void)
{
warning("stub UnpauseFx");
@@ -1674,13 +1657,13 @@ int32 UnpauseFx(void)
-uint8 GetFxVolume()
+uint8 BS2Sound::GetFxVolume()
{
return fxVol;
}
-void SetFxVolume(uint8 volume)
+void BS2Sound::SetFxVolume(uint8 volume)
{
warning("stub SetFxVolume( %d )", volume);
/*
@@ -1697,7 +1680,7 @@ void SetFxVolume(uint8 volume)
}
-void MuteFx(uint8 mute)
+void BS2Sound::MuteFx(uint8 mute)
{
warning("stub MuteFx( %d )");
/*
@@ -1719,7 +1702,7 @@ void MuteFx(uint8 mute)
*/
}
-uint8 IsFxMute(void)
+uint8 BS2Sound::IsFxMute(void)
{
return (fxMuted);
}
@@ -1727,7 +1710,7 @@ uint8 IsFxMute(void)
-static void StartMusicFadeDown(int i)
+void BS2Sound::StartMusicFadeDown(int i)
{
@@ -1740,7 +1723,7 @@ static void StartMusicFadeDown(int i)
}
-int32 StreamMusic(uint8 *filename, int32 looping)
+int32 BS2Sound::StreamMusic(uint8 *filename, int32 looping)
{
warning("stub StreamMusic( %s, %d )", filename, looping);
@@ -1983,7 +1966,7 @@ int32 StreamMusic(uint8 *filename, int32 looping)
}
-void UpdateSampleStreaming(void)
+void BS2Sound::UpdateSampleStreaming(void)
{
warning("stub UpdateSampleStreaming");
@@ -2139,7 +2122,7 @@ void UpdateSampleStreaming(void)
-int32 StreamCompMusic(const char *filename, uint32 musicId, int32 looping)
+int32 BS2Sound::StreamCompMusic(const char *filename, uint32 musicId, int32 looping)
{
warning("stub StreamCompMusic( %s, %d, %d )", filename, musicId, looping);
/*
@@ -2550,7 +2533,7 @@ int32 StreamCompMusic(const char *filename, uint32 musicId, int32 looping)
}
-void UpdateCompSampleStreaming(void)
+void BS2Sound::UpdateCompSampleStreaming(void)
{
warning("stub UpdateCompSampleStreaming");
/*
@@ -2760,7 +2743,7 @@ void UpdateCompSampleStreaming(void)
*/
}
-int32 DipMusic()
+int32 BS2Sound::DipMusic()
{
warning("stub DipMusic");
/*
@@ -2835,7 +2818,7 @@ int32 DipMusic()
return RD_OK;
}
-int32 MusicTimeRemaining()
+int32 BS2Sound::MusicTimeRemaining()
{
warning("stub MusicTimeRemaaining");
/*
@@ -2862,7 +2845,7 @@ int32 MusicTimeRemaining()
-void StopMusic(void)
+void BS2Sound::StopMusic(void)
{
int32 i;
@@ -2897,7 +2880,7 @@ void StopMusic(void)
}
-int32 PauseMusic(void)
+int32 BS2Sound::PauseMusic(void)
{
warning("stub PauseMusic");
/*
@@ -2924,7 +2907,7 @@ int32 PauseMusic(void)
return(RD_OK);
}
-int32 UnpauseMusic(void)
+int32 BS2Sound::UnpauseMusic(void)
{
warning("stub UnpauseMusic");
/*
@@ -2949,7 +2932,7 @@ int32 UnpauseMusic(void)
}
-void SetMusicVolume(uint8 volume)
+void BS2Sound::SetMusicVolume(uint8 volume)
{
warning("stub SetMusicVolume( %d )", volume);
/*
@@ -2964,13 +2947,13 @@ void SetMusicVolume(uint8 volume)
}
-uint8 GetMusicVolume()
+uint8 BS2Sound::GetMusicVolume()
{
return (uint8) volMusic[0];
}
-void MuteMusic(uint8 mute)
+void BS2Sound::MuteMusic(uint8 mute)
{
warning("stub MuteMusic( %d )", mute);
/*
@@ -2998,14 +2981,14 @@ void MuteMusic(uint8 mute)
}
-uint8 IsMusicMute(void)
+uint8 BS2Sound::IsMusicMute(void)
{
return (musicMuted);
}
-void GetSoundStatus(_drvSoundStatus *s)
+void BS2Sound::GetSoundStatus(_drvSoundStatus *s)
{
int i;
@@ -3050,7 +3033,7 @@ void GetSoundStatus(_drvSoundStatus *s)
}
-void SetSoundStatus(_drvSoundStatus *s)
+void BS2Sound::SetSoundStatus(_drvSoundStatus *s)
{
int i;