Use SDL_RWops
This commit is contained in:
@@ -145,7 +145,7 @@ namespace lime {
|
||||
|
||||
ByteArray ByteArray::FromFile(const OSChar *inFilename)
|
||||
{
|
||||
FILE *file = lime::fopen (inFilename, "rb");
|
||||
FILE_HANDLE *file = lime::fopen (inFilename, "rb");
|
||||
if (!file)
|
||||
{
|
||||
#ifdef ANDROID
|
||||
@@ -170,7 +170,7 @@ value lime_byte_array_overwrite_file(value inFilename, value inBytes) {
|
||||
|
||||
// file is created if it doesn't exist,
|
||||
// if it exists, it is truncated to zero
|
||||
FILE *file = lime::fopen (val_os_string(inFilename), "wb");
|
||||
FILE_HANDLE *file = lime::fopen (val_os_string(inFilename), "wb");
|
||||
if (!file)
|
||||
{
|
||||
#ifdef ANDROID
|
||||
|
||||
@@ -8,24 +8,48 @@
|
||||
namespace lime {
|
||||
|
||||
|
||||
int fclose (FILE *stream) {
|
||||
FILE* FILE_HANDLE::getFile () {
|
||||
|
||||
return ::fclose (stream);
|
||||
return (FILE*)handle;
|
||||
|
||||
}
|
||||
|
||||
|
||||
FILE *fdopen (int fd, const char *mode) {
|
||||
int fclose (FILE_HANDLE *stream) {
|
||||
|
||||
return ::fdopen (fd, mode);
|
||||
if (stream) {
|
||||
|
||||
int value = ::fclose ((FILE*)stream->handle);
|
||||
if (stream) delete stream;
|
||||
return value;
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
FILE* fopen (const char *filename, const char *mode) {
|
||||
FILE_HANDLE *fdopen (int fd, const char *mode) {
|
||||
|
||||
FILE* result = ::fdopen (fd, mode);
|
||||
|
||||
if (result) {
|
||||
|
||||
return new FILE_HANDLE (result);
|
||||
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
||||
}
|
||||
|
||||
|
||||
FILE_HANDLE *fopen (const char *filename, const char *mode) {
|
||||
|
||||
FILE* result;
|
||||
#ifdef HX_MACOS
|
||||
FILE *result = ::fopen (filename, "rb");
|
||||
result = ::fopen (filename, "rb");
|
||||
if (!result) {
|
||||
CFStringRef str = CFStringCreateWithCString (NULL, filename, kCFStringEncodingUTF8);
|
||||
CFURLRef path = CFBundleCopyResourceURL (CFBundleGetMainBundle (), str, NULL, NULL);
|
||||
@@ -42,38 +66,45 @@ namespace lime {
|
||||
CFRelease (path);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
#else
|
||||
return ::fopen (filename, mode);
|
||||
result = ::fopen (filename, mode);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
size_t fread (void *ptr, size_t size, size_t count, FILE *stream) {
|
||||
if (result) {
|
||||
|
||||
return new FILE_HANDLE (result);
|
||||
|
||||
}
|
||||
|
||||
return ::fread (ptr, size, count, stream);
|
||||
return NULL;
|
||||
|
||||
}
|
||||
|
||||
|
||||
int fseek (FILE *stream, long int offset, int origin) {
|
||||
size_t fread (void *ptr, size_t size, size_t count, FILE_HANDLE *stream) {
|
||||
|
||||
return ::fseek (stream, offset, origin);
|
||||
return ::fread (ptr, size, count, stream ? (FILE*)stream->handle : NULL);
|
||||
|
||||
}
|
||||
|
||||
|
||||
long int ftell (FILE *stream) {
|
||||
int fseek (FILE_HANDLE *stream, long int offset, int origin) {
|
||||
|
||||
return ::ftell (stream);
|
||||
return ::fseek (stream ? (FILE*)stream->handle : NULL, offset, origin);
|
||||
|
||||
}
|
||||
|
||||
|
||||
size_t fwrite (const void *ptr, size_t size, size_t count, FILE *stream) {
|
||||
long int ftell (FILE_HANDLE *stream) {
|
||||
|
||||
return ::fwrite (ptr, size, count, stream);
|
||||
return ::ftell (stream ? (FILE*)stream->handle : NULL);
|
||||
|
||||
}
|
||||
|
||||
|
||||
size_t fwrite (const void *ptr, size_t size, size_t count, FILE_HANDLE *stream) {
|
||||
|
||||
return ::fwrite (ptr, size, count, (FILE*)stream->handle);
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user