diff options
-rw-r--r-- | indra/llvfs/llvfs.cpp | 66 | ||||
-rw-r--r-- | indra/llvfs/llvfs.h | 1 |
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: |