Add audio cache for faster initialization

This commit is contained in:
Sergeanur
2020-07-17 13:48:25 +03:00
parent 693a5e0c2a
commit 949d0c8853
5 changed files with 35 additions and 2 deletions

View File

@ -959,6 +959,15 @@ cSampleManager::Initialise(void)
}
#ifdef AUDIO_CACHE
TRACE("cache");
FILE *cacheFile = fopen("audio\\sound.cache", "rb");
if (cacheFile) {
fread(nStreamLength, sizeof(uint32), TOTAL_STREAMED_SOUNDS, cacheFile);
fclose(cacheFile);
m_bInitialised = true;
}else {
#endif
TRACE("cdrom");
S32 tatalms;
@ -1115,7 +1124,13 @@ cSampleManager::Initialise(void)
_bUseHDDAudio = false;
}
#endif
#ifdef AUDIO_CACHE
cacheFile = fopen("audio\\sound.cache", "wb");
fwrite(nStreamLength, sizeof(uint32), TOTAL_STREAMED_SOUNDS, cacheFile);
fclose(cacheFile);
}
#endif
TRACE("stream");
{
for ( int32 i = 0; i < MAX_STREAMS; i++ )

View File

@ -604,7 +604,13 @@ cSampleManager::Initialise(void)
return false;
}
}
#ifdef AUDIO_CACHE
FILE *cacheFile = fopen("audio\\sound.cache", "rb");
if (cacheFile) {
fread(nStreamLength, sizeof(uint32), TOTAL_STREAMED_SOUNDS, cacheFile);
fclose(cacheFile);
} else
#endif
{
for ( int32 i = 0; i < TOTAL_STREAMED_SOUNDS; i++ )
@ -622,6 +628,11 @@ cSampleManager::Initialise(void)
else
USERERROR("Can't open '%s'\n", StreamedNameTable[i]);
}
#ifdef AUDIO_CACHE
cacheFile = fopen("audio\\sound.cache", "wb");
fwrite(nStreamLength, sizeof(uint32), TOTAL_STREAMED_SOUNDS, cacheFile);
fclose(cacheFile);
#endif
}
LoadSampleBank(SAMPLEBANK_MAIN);