Prechádzať zdrojové kódy

Implement get_android_asset_manager in OsFile2

Daniele Bartolini 12 rokov pred
rodič
commit
5f6669283d
2 zmenil súbory, kde vykonal 18 pridanie a 16 odobranie
  1. 1 15
      src/os/android/AndroidOS.cpp
  2. 17 1
      src/os/android/OsFile2.cpp

+ 1 - 15
src/os/android/AndroidOS.cpp

@@ -24,7 +24,7 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 OTHER DEALINGS IN THE SOFTWARE.
 */
 
-#include <android/asset_manager_jni.h>
+#include <jni.h>
 #include <android/log.h>
 #include <cstdarg>
 #include <cstdio>
@@ -36,7 +36,6 @@ OTHER DEALINGS IN THE SOFTWARE.
 #include <unistd.h>
 
 #include "OS.h"
-#include "AndroidOS.h"
 #include "Assert.h"
 #include "StringUtils.h"
 
@@ -46,7 +45,6 @@ namespace os
 {
 
 static timespec			base_time;
-static AAssetManager*	asset_manager = NULL;
 static uint32_t			window_width;
 static uint32_t			window_height;
 
@@ -238,18 +236,6 @@ uint64_t microseconds()
 	return (tmp.tv_sec - base_time.tv_sec) * 1000000 + (tmp.tv_nsec - base_time.tv_nsec) / 1000;
 }
 
-//-----------------------------------------------------------------------------
-AAssetManager* get_android_asset_manager()
-{
-	return asset_manager;
-}
-
-//-----------------------------------------------------------------------------
-extern "C" JNIEXPORT void JNICALL Java_crown_android_CrownLib_initAssetManager(JNIEnv* env, jobject obj, jobject assetManager)
-{
-	asset_manager = AAssetManager_fromJava(env, assetManager);
-}
-
 } // namespace os
 
 //-----------------------------------------------------------------------------

+ 17 - 1
src/os/android/OsFile2.cpp

@@ -24,6 +24,8 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 OTHER DEALINGS IN THE SOFTWARE.
 */
 
+#include <android/asset_manager_jni.h>
+
 #include "Assert.h"
 #include "OS.h"
 #include "OsFile.h"
@@ -32,13 +34,15 @@ OTHER DEALINGS IN THE SOFTWARE.
 namespace crown
 {
 
+static AAssetManager*	g_android_asset_manager = NULL;
+
 //-----------------------------------------------------------------------------
 OsFile::OsFile(const char* path, FileOpenMode mode)
 {
 	// Android assets are always read-only
 	(void) mode;
 	m_mode = FOM_READ;
-	m_asset = AAssetManager_open(os::get_android_asset_manager(), path, AASSET_MODE_RANDOM);
+	m_asset = AAssetManager_open(get_android_asset_manager(), path, AASSET_MODE_RANDOM);
 
 	CE_ASSERT(m_asset != NULL, "Unable to open file: %s", path);
 }
@@ -128,5 +132,17 @@ bool OsFile::eof() const
 	return AAsset_getRemainingLength(m_asset) == 0;
 }
 
+//-----------------------------------------------------------------------------
+AAssetManager* get_android_asset_manager()
+{
+	return g_android_asset_manager;
+}
+
+//-----------------------------------------------------------------------------
+extern "C" JNIEXPORT void JNICALL Java_crown_android_CrownLib_initAssetManager(JNIEnv* env, jobject obj, jobject assetManager)
+{
+	g_android_asset_manager = AAssetManager_fromJava(env, assetManager);
+}
+
 } // namespace crown