From 168d177197bd7558bbe0ca13d01c984ad8638da7 Mon Sep 17 00:00:00 2001
From: Callum Prentice <callum@lindenlab.com>
Date: Tue, 9 Mar 2021 14:39:51 -0800
Subject: This set of changes reverts the merge with master (git revert
 c83e740) and results in a version of the DRTVWR-519 that matches what was
 presemt before it was deployed as a release viewer *plus* 3 small fixes from
 Maxim (See commits).  This branch can now be used for additional fixes before
 eventually being used to release D-519 as normal

---
 indra/llaudio/CMakeLists.txt       |  6 ++--
 indra/llaudio/llaudiodecodemgr.cpp | 58 +++++++++++++++-----------------------
 indra/llaudio/llaudiodecodemgr.h   |  1 -
 indra/llaudio/llaudioengine.cpp    | 15 ++++------
 indra/llaudio/llaudioengine.h      | 13 +--------
 5 files changed, 32 insertions(+), 61 deletions(-)

(limited to 'indra/llaudio')

diff --git a/indra/llaudio/CMakeLists.txt b/indra/llaudio/CMakeLists.txt
index 558ede7bf6..92a5cfe22f 100644
--- a/indra/llaudio/CMakeLists.txt
+++ b/indra/llaudio/CMakeLists.txt
@@ -9,14 +9,14 @@ include(OPENAL)
 include(LLCommon)
 include(LLMath)
 include(LLMessage)
-include(LLVFS)
+include(LLFileSystem)
 
 include_directories(
     ${LLAUDIO_INCLUDE_DIRS}
     ${LLCOMMON_INCLUDE_DIRS}
     ${LLMATH_INCLUDE_DIRS}
     ${LLMESSAGE_INCLUDE_DIRS}
-    ${LLVFS_INCLUDE_DIRS}
+    ${LLFILESYSTEM_INCLUDE_DIRS}
     ${OGG_INCLUDE_DIRS}
     ${VORBISENC_INCLUDE_DIRS}
     ${VORBISFILE_INCLUDE_DIRS}
@@ -86,7 +86,7 @@ target_link_libraries(
     ${LLCOMMON_LIBRARIES}
     ${LLMATH_LIBRARIES}
     ${LLMESSAGE_LIBRARIES}
-    ${LLVFS_LIBRARIES}
+    ${LLFILESYSTEM_LIBRARIES}
     ${VORBISENC_LIBRARIES}
     ${VORBISFILE_LIBRARIES}
     ${VORBIS_LIBRARIES}
diff --git a/indra/llaudio/llaudiodecodemgr.cpp b/indra/llaudio/llaudiodecodemgr.cpp
index e7db84f6ab..ff0aa6e76e 100644
--- a/indra/llaudio/llaudiodecodemgr.cpp
+++ b/indra/llaudio/llaudiodecodemgr.cpp
@@ -29,7 +29,7 @@
 
 #include "llaudioengine.h"
 #include "lllfsthread.h"
-#include "llvfile.h"
+#include "llfilesystem.h"
 #include "llstring.h"
 #include "lldir.h"
 #include "llendianswizzle.h"
@@ -90,19 +90,17 @@ protected:
 	LLUUID mUUID;
 
 	std::vector<U8> mWAVBuffer;
-#if !defined(USE_WAV_VFILE)
 	std::string mOutFilename;
 	LLLFSThread::handle_t mFileHandle;
-#endif
 	
-	LLVFile *mInFilep;
+	LLFileSystem *mInFilep;
 	OggVorbis_File mVF;
 	S32 mCurrentSection;
 };
 
-size_t vfs_read(void *ptr, size_t size, size_t nmemb, void *datasource)
+size_t cache_read(void *ptr, size_t size, size_t nmemb, void *datasource)
 {
-	LLVFile *file = (LLVFile *)datasource;
+	LLFileSystem *file = (LLFileSystem *)datasource;
 
 	if (file->read((U8*)ptr, (S32)(size * nmemb)))	/*Flawfinder: ignore*/
 	{
@@ -115,11 +113,11 @@ size_t vfs_read(void *ptr, size_t size, size_t nmemb, void *datasource)
 	}
 }
 
-S32 vfs_seek(void *datasource, ogg_int64_t offset, S32 whence)
+S32 cache_seek(void *datasource, ogg_int64_t offset, S32 whence)
 {
-	LLVFile *file = (LLVFile *)datasource;
+	LLFileSystem *file = (LLFileSystem *)datasource;
 
-	// vfs has 31-bit files
+	// cache has 31-bit files
 	if (offset > S32_MAX)
 	{
 		return -1;
@@ -137,7 +135,7 @@ S32 vfs_seek(void *datasource, ogg_int64_t offset, S32 whence)
 		origin = -1;
 		break;
 	default:
-		LL_ERRS("AudioEngine") << "Invalid whence argument to vfs_seek" << LL_ENDL;
+		LL_ERRS("AudioEngine") << "Invalid whence argument to cache_seek" << LL_ENDL;
 		return -1;
 	}
 
@@ -151,16 +149,16 @@ S32 vfs_seek(void *datasource, ogg_int64_t offset, S32 whence)
 	}
 }
 
-S32 vfs_close (void *datasource)
+S32 cache_close (void *datasource)
 {
-	LLVFile *file = (LLVFile *)datasource;
+	LLFileSystem *file = (LLFileSystem *)datasource;
 	delete file;
 	return 0;
 }
 
-long vfs_tell (void *datasource)
+long cache_tell (void *datasource)
 {
-	LLVFile *file = (LLVFile *)datasource;
+	LLFileSystem *file = (LLFileSystem *)datasource;
 	return file->tell();
 }
 
@@ -172,11 +170,10 @@ LLVorbisDecodeState::LLVorbisDecodeState(const LLUUID &uuid, const std::string &
 	mUUID = uuid;
 	mInFilep = NULL;
 	mCurrentSection = 0;
-#if !defined(USE_WAV_VFILE)
 	mOutFilename = out_filename;
 	mFileHandle = LLLFSThread::nullHandle();
-#endif
-	// No default value for mVF, it's an ogg structure?
+
+    // No default value for mVF, it's an ogg structure?
 	// Hey, let's zero it anyway, for predictability.
 	memset(&mVF, 0, sizeof(mVF));
 }
@@ -193,15 +190,15 @@ LLVorbisDecodeState::~LLVorbisDecodeState()
 
 BOOL LLVorbisDecodeState::initDecode()
 {
-	ov_callbacks vfs_callbacks;
-	vfs_callbacks.read_func = vfs_read;
-	vfs_callbacks.seek_func = vfs_seek;
-	vfs_callbacks.close_func = vfs_close;
-	vfs_callbacks.tell_func = vfs_tell;
+	ov_callbacks cache_callbacks;
+	cache_callbacks.read_func = cache_read;
+	cache_callbacks.seek_func = cache_seek;
+	cache_callbacks.close_func = cache_close;
+	cache_callbacks.tell_func = cache_tell;
 
 	LL_DEBUGS("AudioEngine") << "Initing decode from vfile: " << mUUID << LL_ENDL;
 
-	mInFilep = new LLVFile(gVFS, mUUID, LLAssetType::AT_SOUND);
+	mInFilep = new LLFileSystem(mUUID, LLAssetType::AT_SOUND);
 	if (!mInFilep || !mInFilep->getSize())
 	{
 		LL_WARNS("AudioEngine") << "unable to open vorbis source vfile for reading" << LL_ENDL;
@@ -210,7 +207,7 @@ BOOL LLVorbisDecodeState::initDecode()
 		return FALSE;
 	}
 
-	S32 r = ov_open_callbacks(mInFilep, &mVF, NULL, 0, vfs_callbacks);
+	S32 r = ov_open_callbacks(mInFilep, &mVF, NULL, 0, cache_callbacks);
 	if(r < 0) 
 	{
 		LL_WARNS("AudioEngine") << r << " Input to vorbis decode does not appear to be an Ogg bitstream: " << mUUID << LL_ENDL;
@@ -370,7 +367,7 @@ BOOL LLVorbisDecodeState::decodeSection()
 {
 	if (!mInFilep)
 	{
-		LL_WARNS("AudioEngine") << "No VFS file to decode in vorbis!" << LL_ENDL;
+		LL_WARNS("AudioEngine") << "No cache file to decode in vorbis!" << LL_ENDL;
 		return TRUE;
 	}
 	if (mDone)
@@ -420,9 +417,7 @@ BOOL LLVorbisDecodeState::finishDecode()
 		return TRUE; // We've finished
 	}
 
-#if !defined(USE_WAV_VFILE)	
 	if (mFileHandle == LLLFSThread::nullHandle())
-#endif
 	{
 		ov_clear(&mVF);
   
@@ -495,11 +490,9 @@ BOOL LLVorbisDecodeState::finishDecode()
 			mValid = FALSE;
 			return TRUE; // we've finished
 		}
-#if !defined(USE_WAV_VFILE)
 		mBytesRead = -1;
 		mFileHandle = LLLFSThread::sLocal->write(mOutFilename, &mWAVBuffer[0], 0, mWAVBuffer.size(),
 							 new WriteResponder(this));
-#endif
 	}
 
 	if (mFileHandle != LLLFSThread::nullHandle())
@@ -521,11 +514,6 @@ BOOL LLVorbisDecodeState::finishDecode()
 	
 	mDone = TRUE;
 
-#if defined(USE_WAV_VFILE)
-	// write the data.
-	LLVFile output(gVFS, mUUID, LLAssetType::AT_SOUND_WAV);
-	output.write(&mWAVBuffer[0], mWAVBuffer.size());
-#endif
 	LL_DEBUGS("AudioEngine") << "Finished decode for " << getUUID() << LL_ENDL;
 
 	return TRUE;
@@ -535,7 +523,7 @@ void LLVorbisDecodeState::flushBadFile()
 {
 	if (mInFilep)
 	{
-		LL_WARNS("AudioEngine") << "Flushing bad vorbis file from VFS for " << mUUID << LL_ENDL;
+		LL_WARNS("AudioEngine") << "Flushing bad vorbis file from cache for " << mUUID << LL_ENDL;
 		mInFilep->remove();
 	}
 }
diff --git a/indra/llaudio/llaudiodecodemgr.h b/indra/llaudio/llaudiodecodemgr.h
index 8228e20e8c..ceaff3f2d8 100644
--- a/indra/llaudio/llaudiodecodemgr.h
+++ b/indra/llaudio/llaudiodecodemgr.h
@@ -33,7 +33,6 @@
 #include "llassettype.h"
 #include "llframetimer.h"
 
-class LLVFS;
 class LLVorbisDecodeState;
 
 class LLAudioDecodeMgr
diff --git a/indra/llaudio/llaudioengine.cpp b/indra/llaudio/llaudioengine.cpp
index 1d447f32ae..d35f249973 100644
--- a/indra/llaudio/llaudioengine.cpp
+++ b/indra/llaudio/llaudioengine.cpp
@@ -35,7 +35,7 @@
 
 #include "sound_ids.h"  // temporary hack for min/max distances
 
-#include "llvfs.h"
+#include "llfilesystem.h"
 #include "lldir.h"
 #include "llaudiodecodemgr.h"
 #include "llassetstorage.h"
@@ -684,13 +684,9 @@ bool LLAudioEngine::preloadSound(const LLUUID &uuid)
 		return true;
 	}
 
-	// At some point we need to have the audio/asset system check the static VFS
-	// before it goes off and fetches stuff from the server.
-	//LL_WARNS() << "Used internal preload for non-local sound" << LL_ENDL;
 	return false;
 }
 
-
 bool LLAudioEngine::isWindEnabled()
 {
 	return mEnableWind;
@@ -1018,13 +1014,12 @@ bool LLAudioEngine::hasDecodedFile(const LLUUID &uuid)
 
 bool LLAudioEngine::hasLocalFile(const LLUUID &uuid)
 {
-	// See if it's in the VFS.
-	bool have_local = gVFS->getExists(uuid, LLAssetType::AT_SOUND);
-	LL_DEBUGS("AudioEngine") << "sound uuid "<<uuid<<" exists in VFS"<<LL_ENDL;
+	// See if it's in the cache.
+	bool have_local = LLFileSystem::getExists(uuid, LLAssetType::AT_SOUND);
+	LL_DEBUGS("AudioEngine") << "sound uuid " << uuid << " exists in cache" << LL_ENDL;
 	return have_local;
 }
 
-
 void LLAudioEngine::startNextTransfer()
 {
 	//LL_INFOS() << "LLAudioEngine::startNextTransfer()" << LL_ENDL;
@@ -1225,7 +1220,7 @@ void LLAudioEngine::startNextTransfer()
 
 
 // static
-void LLAudioEngine::assetCallback(LLVFS *vfs, const LLUUID &uuid, LLAssetType::EType type, void *user_data, S32 result_code, LLExtStat ext_status)
+void LLAudioEngine::assetCallback(const LLUUID &uuid, LLAssetType::EType type, void *user_data, S32 result_code, LLExtStat ext_status)
 {
 	if (!gAudiop)
 	{
diff --git a/indra/llaudio/llaudioengine.h b/indra/llaudio/llaudioengine.h
index 97674f15f7..577b36d667 100644
--- a/indra/llaudio/llaudioengine.h
+++ b/indra/llaudio/llaudioengine.h
@@ -50,15 +50,6 @@ const F32 DEFAULT_MIN_DISTANCE = 2.0f;
 #define MAX_CHANNELS 30
 #define MAX_BUFFERS 40	// Some extra for preloading, maybe?
 
-// This define is intended to allow us to switch from os based wav
-// file loading to vfs based wav file loading. The problem is that I
-// am unconvinced that the LLWaveFile works for loading sounds from
-// memory. So, until that is fixed up, changed, whatever, this remains
-// undefined.
-//#define USE_WAV_VFILE
-
-class LLVFS;
-
 class LLAudioSource;
 class LLAudioData;
 class LLAudioChannel;
@@ -67,11 +58,9 @@ class LLAudioBuffer;
 class LLStreamingAudioInterface;
 struct SoundData;
 
-
 //
 //  LLAudioEngine definition
 //
-
 class LLAudioEngine 
 {
 	friend class LLAudioChannelOpenAL; // bleh. channel needs some listener methods.
@@ -182,7 +171,7 @@ public:
 
 	// Asset callback when we're retrieved a sound from the asset server.
 	void startNextTransfer();
-	static void assetCallback(LLVFS *vfs, const LLUUID &uuid, LLAssetType::EType type, void *user_data, S32 result_code, LLExtStat ext_status);
+	static void assetCallback(const LLUUID &uuid, LLAssetType::EType type, void *user_data, S32 result_code, LLExtStat ext_status);
 
 	friend class LLPipeline; // For debugging
 public:
-- 
cgit v1.2.3