diff --git a/project/include/utils/FileIO.h b/project/include/utils/FileIO.h index 3debd00ef..d2e4d7593 100644 --- a/project/include/utils/FileIO.h +++ b/project/include/utils/FileIO.h @@ -14,6 +14,7 @@ namespace lime { FILE_HANDLE (void* handle) : handle (handle) {} FILE* getFile (); + int getLength (); }; diff --git a/project/src/audio/format/OGG.cpp b/project/src/audio/format/OGG.cpp index f075d2764..9064d2255 100644 --- a/project/src/audio/format/OGG.cpp +++ b/project/src/audio/format/OGG.cpp @@ -130,7 +130,7 @@ namespace lime { //#ifdef ANDROID //ov_open (file, &oggFile, NULL, info.length); //#else - ov_open (file->getFile (), &oggFile, NULL, 0); + ov_open (file->getFile (), &oggFile, NULL, file->getLength ()); //#endif } else { diff --git a/project/src/backend/sdl/SDLFileIO.cpp b/project/src/backend/sdl/SDLFileIO.cpp index f3d238aa8..6270af549 100644 --- a/project/src/backend/sdl/SDLFileIO.cpp +++ b/project/src/backend/sdl/SDLFileIO.cpp @@ -16,6 +16,14 @@ namespace lime { return ((SDL_RWops*)handle)->hidden.stdio.fp; + } else if (((SDL_RWops*)handle)->type == SDL_RWOPS_JNIFILE) { + + #ifdef ANDROID + FILE* file = ::fdopen (((SDL_RWops*)handle)->hidden.androidio.fd, "rb"); + ::fseek (file, ((SDL_RWops*)handle)->hidden.androidio.offset, 0); + return file; + #endif + } return NULL; @@ -23,6 +31,13 @@ namespace lime { } + int FILE_HANDLE::getLength () { + + return SDL_RWsize (((SDL_RWops*)handle)); + + } + + int fclose (FILE_HANDLE *stream) { if (stream) { diff --git a/project/src/utils/FileIO.cpp b/project/src/utils/FileIO.cpp index e0407c787..70878fe2e 100644 --- a/project/src/utils/FileIO.cpp +++ b/project/src/utils/FileIO.cpp @@ -15,6 +15,13 @@ namespace lime { } + int FILE_HANDLE::getLength () { + + return 0; + + } + + int fclose (FILE_HANDLE *stream) { if (stream) { diff --git a/tools/helpers/AndroidHelper.hx b/tools/helpers/AndroidHelper.hx index 477486c57..07fbc6e13 100644 --- a/tools/helpers/AndroidHelper.hx +++ b/tools/helpers/AndroidHelper.hx @@ -215,7 +215,12 @@ class AndroidHelper { if (deviceID == null) { Sys.sleep (3); - Sys.print ("."); + + if (!LogHelper.verbose) { + + Sys.print ("."); + + } } else {