Start File;

This commit is contained in:
bjorn 2016-11-02 20:09:28 -07:00
parent 956ea96827
commit c33534f703
2 changed files with 55 additions and 0 deletions

35
src/filesystem/file.c Normal file
View File

@ -0,0 +1,35 @@
#include "file.h"
File* lovrFileCreate(const char* filename) {
File* file = malloc(sizeof(File));
file->filename = filename;
file->mode = MODE_CLOSED;
return file;
}
void lovrFileDestroy(File* file) {
//
}
int lovrFileOpen(File* file, FileMode mode) {
switch (mode) {
case MODE_READ:
if (!lovrFilesystemExists(file->filename)) {
error(
}
file->handle = PHYSFS_openRead(file->filename);
break;
case MODE_WRITE:
file->handle = PHYSFS_openWrite(file->filename);
break;
case MODE_APPEND:
file->handle = PHYSFS_openAppend(file->filename);
break;
case MODE_CLOSED:
break;
}
}

20
src/filesystem/file.h Normal file
View File

@ -0,0 +1,20 @@
#ifndef LOVR_FILE_TYPES
#define LOVR_FILE_TYPES
typedef enum {
MODE_CLOSED,
MODE_READ,
MODE_WRITE,
MODE_APPEND
} FileMode;
typedef struct {
const char* filename;
PHYSFS_file* handle;
FileMode mode;
} File;
#endif
File* lovrFileCreate(const char* filename);
void lovrFileDestroy(File* file);