diff options
author | Andrei Karas <akaras@inbox.ru> | 2013-11-07 16:32:18 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2013-11-07 18:56:07 +0300 |
commit | 64535f9763c432bbb46be2769560bfd6a2202d72 (patch) | |
tree | 08221a911005ad417cbdc339b02a416b757122a5 /src/utils | |
parent | cf77bdc4baa273d8750175411cb59af3ca3c07ac (diff) | |
download | mv-64535f9763c432bbb46be2769560bfd6a2202d72.tar.gz mv-64535f9763c432bbb46be2769560bfd6a2202d72.tar.bz2 mv-64535f9763c432bbb46be2769560bfd6a2202d72.tar.xz mv-64535f9763c432bbb46be2769560bfd6a2202d72.zip |
add progress bar while loading in SDL2 in Android.
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/files.cpp | 19 | ||||
-rw-r--r-- | src/utils/files.h | 4 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/utils/files.cpp b/src/utils/files.cpp index 6f57d3062..bfaed472a 100644 --- a/src/utils/files.cpp +++ b/src/utils/files.cpp @@ -63,6 +63,18 @@ void Files::extractLocale() #endif // ANDROID #if defined(ANDROID) || defined(__native_client__) + +namespace +{ + int mFilesCount = 0; + Files::CopyFileCallbackPtr mCallbackPtr = nullptr; +} // namespace + +void Files::setCopyCallBack(Files::CopyFileCallbackPtr callback) +{ + mCallbackPtr = callback; +} + void Files::copyPhysFsFile(const std::string &inFile, const std::string &outFile) { @@ -72,6 +84,13 @@ void Files::copyPhysFsFile(const std::string &inFile, fwrite(buf, 1, size, file); fclose(file); free(buf); +#ifdef ANDROID + if (mCallbackPtr) + { + mCallbackPtr(mFilesCount); + mFilesCount ++; + } +#endif } void Files::copyPhysFsDir(const std::string &inDir, const std::string &outDir) diff --git a/src/utils/files.h b/src/utils/files.h index 735812563..f356d7688 100644 --- a/src/utils/files.h +++ b/src/utils/files.h @@ -30,6 +30,10 @@ namespace Files #endif #if defined(ANDROID) || defined(__native_client__) + typedef void (*CopyFileCallbackPtr) (int cnt); + + void setCopyCallBack(CopyFileCallbackPtr callback); + void copyPhysFsFile(const std::string &inFile, const std::string &outFile); void copyPhysFsDir(const std::string &inDir, const std::string &outDir); |