Started Work on File System Viewer. It isn't very pretty yet

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@570 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Sonicadvance1
2008-09-18 03:18:19 +00:00
parent 07421b08eb
commit 28cd7e220c
7 changed files with 57 additions and 21 deletions

View File

@ -159,8 +159,17 @@ void CFileSystemGCWii::GetStringFromOffset(u64 _Offset, char* Filename) const
m_rVolume.Read(_Offset, 255, (u8*)Filename);
}
size_t CFileSystemGCWii::GetFileList(std::vector<SFileInfo> *_rFilenames)
{
(*_rFilenames).resize(m_FileInfoVector.size());
for (size_t i = 0; i < m_FileInfoVector.size(); i++)
{
(*_rFilenames)[i] = m_FileInfoVector[i];
}
return m_FileInfoVector.size();
}
const CFileSystemGCWii::SFileInfo*
const SFileInfo*
CFileSystemGCWii::FindFileInfo(const char* _rFullPath) const
{
for (size_t i = 0; i < m_FileInfoVector.size(); i++)

View File

@ -48,17 +48,6 @@ class CFileSystemGCWii
private:
// file info of an FST entry
struct SFileInfo
{
u32 m_NameOffset;
u64 m_Offset;
u32 m_FileSize;
char m_FullPath[512];
bool IsDirectory() {return((m_NameOffset& 0xFF000000) != 0 ? true : false);}
};
typedef std::vector<SFileInfo>CFileInfoVector;
CFileInfoVector m_FileInfoVector;
@ -68,6 +57,8 @@ class CFileSystemGCWii
u32 Read32(u64 _Offset) const;
virtual size_t GetFileList(std::vector<SFileInfo> *_rFilenames);
void GetStringFromOffset(u64 _Offset, char* Filename) const;
const SFileInfo* FindFileInfo(const char* _rFullPath) const;

View File

@ -33,7 +33,7 @@ class IFileSystem
virtual bool IsInitialized() = 0;
// virtual size_t GetFileList(std::vector<std::string&> _rFilenames) = 0;
virtual size_t GetFileList(std::vector<SFileInfo> *_rFilenames) = 0;
virtual size_t GetFileSize(const char* _rFullPath) = 0;

View File

@ -19,9 +19,20 @@
#define _VOLUME_H
#include <string>
#include <vector>
#include "Common.h"
// file info of an FST entry
struct SFileInfo
{
u32 m_NameOffset;
u64 m_Offset;
u32 m_FileSize;
char m_FullPath[512];
bool IsDirectory() {return((m_NameOffset& 0xFF000000) != 0 ? true : false);}
};
namespace DiscIO
{
class IVolume