about summary refs log tree commit diff
path: root/src/engine/client/client.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/client/client.h')
-rw-r--r--src/engine/client/client.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/engine/client/client.h b/src/engine/client/client.h
index 1a35788b..8486e481 100644
--- a/src/engine/client/client.h
+++ b/src/engine/client/client.h
@@ -73,6 +73,36 @@ public:
 };
 
 
+class CFileCollection
+{
+	enum
+	{
+		MAX_ENTRIES=1000,
+		TIMESTAMP_LENGTH=20,	// _YYYY-MM-DD_HH-MM-SS
+	};
+
+	int64 m_aTimestamps[MAX_ENTRIES];
+	int m_NumTimestamps;
+	int m_MaxEntries;
+	char m_aFileDesc[128];
+	int m_FileDescLength;
+	char m_aFileExt[32];
+	int m_FileExtLength;
+	char m_aPath[512];
+	IStorage *m_pStorage;
+
+	bool IsFilenameValid(const char *pFilename);
+	int64 ExtractTimestamp(const char *pTimestring);
+	void BuildTimestring(int64 Timestamp, char *pTimestring);
+
+public:
+	void Init(IStorage *pStorage, const char *pPath, const char *pFileDesc, const char *pFileExt, int MaxEntries);
+	void AddEntry(int64 Timestamp);
+
+	static void FilelistCallback(const char *pFilename, int IsDir, int StorageType, void *pUser);
+};
+
+
 class CClient : public IClient, public CDemoPlayer::IListner
 {
 	// needed interfaces