Browse Source

Use BASS_ASYNCFILE flag (allegedly good for low latency output)

kiwec 2 months ago
parent
commit
ed9d3123ef
2 changed files with 2 additions and 0 deletions
  1. 1 0
      src/Engine/Sound.cpp
  2. 1 0
      src/Engine/SoundEngine.cpp

+ 1 - 0
src/Engine/Sound.cpp

@@ -117,6 +117,7 @@ void Sound::initAsync() {
     if(m_bStream) {
         auto flags = BASS_STREAM_DECODE | BASS_SAMPLE_FLOAT;
         if(m_bPrescan) flags |= BASS_STREAM_PRESCAN;
+        if(convar->getConVarByName("snd_async_buffer")->getInt() > 0) flags |= BASS_ASYNCFILE;
         if(env->getOS() == Environment::OS::WINDOWS) flags |= BASS_UNICODE;
 
         m_stream = BASS_StreamCreateFile(false, file_path.c_str(), 0, 0, flags);

+ 1 - 0
src/Engine/SoundEngine.cpp

@@ -35,6 +35,7 @@ ConVar snd_updateperiod("snd_updateperiod", 10, FCVAR_DEFAULT | FCVAR_PRIVATE, "
 ConVar snd_dev_period("snd_dev_period", 10, FCVAR_DEFAULT | FCVAR_PRIVATE,
                       "BASS_CONFIG_DEV_PERIOD length in milliseconds, or if negative then in samples");
 ConVar snd_dev_buffer("snd_dev_buffer", 30, FCVAR_DEFAULT | FCVAR_PRIVATE, "BASS_CONFIG_DEV_BUFFER length in milliseconds");
+ConVar snd_async_buffer("snd_async_buffer", 65536, FCVAR_DEFAULT | FCVAR_PRIVATE, "BASS_CONFIG_ASYNCFILE_BUFFER length in bytes. Set to 0 to disable.");
 
 ConVar snd_restrict_play_frame(
     "snd_restrict_play_frame", true, FCVAR_DEFAULT | FCVAR_PRIVATE,