summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llvfs/llvfs.cpp66
-rw-r--r--indra/llvfs/llvfs.h1
2 files changed, 57 insertions, 10 deletions
diff --git a/indra/llvfs/llvfs.cpp b/indra/llvfs/llvfs.cpp
index 89ad65be9f..95d851cfcf 100644
--- a/indra/llvfs/llvfs.cpp
+++ b/indra/llvfs/llvfs.cpp
@@ -1938,6 +1938,60 @@ void LLVFS::dumpStatistics()
}
// Debug Only!
+LLString get_extension(LLAssetType::EType type)
+{
+ LLString extension;
+ switch(type)
+ {
+ case LLAssetType::AT_TEXTURE:
+ extension = ".jp2"; // ".j2c"; // IrfanView recognizes .jp2 -sjb
+ break;
+ case LLAssetType::AT_SOUND:
+ extension = ".ogg";
+ break;
+ case LLAssetType::AT_SOUND_WAV:
+ extension = ".wav";
+ break;
+ case LLAssetType::AT_TEXTURE_TGA:
+ extension = ".tga";
+ break;
+ case LLAssetType::AT_IMAGE_JPEG:
+ extension = ".jpeg";
+ break;
+ case LLAssetType::AT_ANIMATION:
+ extension = ".lla";
+ break;
+ default:
+ extension = ".data";
+ break;
+ }
+ return extension;
+}
+
+void LLVFS::listFiles()
+{
+ lockData();
+
+ for (fileblock_map::iterator it = mFileBlocks.begin(); it != mFileBlocks.end(); ++it)
+ {
+ LLVFSFileSpecifier file_spec = it->first;
+ LLVFSFileBlock *file_block = it->second;
+ S32 length = file_block->mLength;
+ S32 size = file_block->mSize;
+ if (length != BLOCK_LENGTH_INVALID && size > 0)
+ {
+ LLUUID id = file_spec.mFileID;
+ LLString extension = get_extension(file_spec.mFileType);
+ llinfos << " File: " << id
+ << " Type: " << LLAssetType::getDesc(file_spec.mFileType)
+ << " Size: " << size
+ << llendl;
+ }
+ }
+
+ unlockData();
+}
+
#include "llapr.h"
void LLVFS::dumpFiles()
{
@@ -1959,16 +2013,8 @@ void LLVFS::dumpFiles()
getData(id, type, buffer, 0, size);
lockData();
- LLString extention = ".data";
- switch(type)
- {
- case LLAssetType::AT_TEXTURE:
- extention = ".jp2"; // ".j2c"; // IrfanView recognizes .jp2 -sjb
- break;
- default:
- break;
- }
- LLString filename = id.getString() + extention;
+ LLString extension = get_extension(type);
+ LLString filename = id.getString() + extension;
llinfos << " Writing " << filename << llendl;
apr_file_t* file = ll_apr_file_open(filename, LL_APR_WB);
ll_apr_file_write(file, buffer, size);
diff --git a/indra/llvfs/llvfs.h b/indra/llvfs/llvfs.h
index c3fb0cdf22..5089e059e8 100644
--- a/indra/llvfs/llvfs.h
+++ b/indra/llvfs/llvfs.h
@@ -96,6 +96,7 @@ public:
void dumpMap();
void dumpLockCounts();
void dumpStatistics();
+ void listFiles();
void dumpFiles();
protected: