summaryrefslogtreecommitdiff
path: root/indra/llaudio
diff options
context:
space:
mode:
authorAndrey Lihatskiy <alihatskiy@productengine.com>2021-12-26 14:01:06 +0200
committerAndrey Lihatskiy <alihatskiy@productengine.com>2021-12-26 14:01:06 +0200
commit747dbb7da2482ce00b15b268344ad1306ea850cf (patch)
treef6fb6731f8f851087d4d7011ca02e96d03187116 /indra/llaudio
parent8b3a19f19c3215c9d83d4d89c9c0a6a6e2ea3230 (diff)
parent0a873cd95547f003878c6d00d0883ff792f4a865 (diff)
Merge branch 'master' into DRTVWR-540-maint
Diffstat (limited to 'indra/llaudio')
-rw-r--r--indra/llaudio/CMakeLists.txt6
-rw-r--r--indra/llaudio/llaudiodecodemgr.cpp58
-rw-r--r--indra/llaudio/llaudiodecodemgr.h1
-rw-r--r--indra/llaudio/llaudioengine.cpp15
-rw-r--r--indra/llaudio/llaudioengine.h13
5 files changed, 32 insertions, 61 deletions
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: