X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=build%2Fandroid%2Fapp%2Fsrc%2Fmain%2Fcpp%2Fmain.cpp;h=6ae80c1a4fa91d49346b7dee8efb351646b3c504;hb=8fa6f63e5d7c6054d8d45ca8b37525567872ae54;hp=09fe76aaffda1bf2e46db17716cf02c49dd7dae4;hpb=1d3a43d6f7d92377858f0f655c3659e7881c912a;p=platform%2Fcore%2Fuifw%2Fdali-demo.git diff --git a/build/android/app/src/main/cpp/main.cpp b/build/android/app/src/main/cpp/main.cpp index 09fe76a..6ae80c1 100644 --- a/build/android/app/src/main/cpp/main.cpp +++ b/build/android/app/src/main/cpp/main.cpp @@ -16,50 +16,52 @@ */ // EXTERNAL INCLUDES -#include #include +#include #include #include #include #include #include -#include #include +#include #include // from android_native_app_glue.c + +#define TAG "dalidemo" +#define LOGE(...) ((void)__android_log_print(ANDROID_LOG_ERROR, TAG, ##__VA_ARGS__)) #ifndef NDEBUG -#define LOGV(...) ((void)__android_log_print(ANDROID_LOG_VERBOSE, "dalidemo", __VA_ARGS__)) +#define LOGV(...) ((void)__android_log_print(ANDROID_LOG_VERBOSE, TAG, ##__VA_ARGS__)) #else -#define LOGV(...) ((void)0) +#define LOGV(...) ((void)0) #endif namespace { - -void free_saved_state(struct android_app *android_app) +void free_saved_state(struct android_app* android_app) { LOGV("free_saved_state"); pthread_mutex_lock(&android_app->mutex); - if (android_app->savedState != NULL) + if(android_app->savedState != NULL) { free(android_app->savedState); - android_app->savedState = NULL; + android_app->savedState = NULL; android_app->savedStateSize = 0; } pthread_mutex_unlock(&android_app->mutex); } -void android_app_destroy(struct android_app *android_app) +void android_app_destroy(struct android_app* android_app) { LOGV("android_app_destroy"); free_saved_state(android_app); pthread_mutex_lock(&android_app->mutex); - if (android_app->inputQueue != NULL) + if(android_app->inputQueue != NULL) { AInputQueue_detachLooper(android_app->inputQueue); } @@ -73,20 +75,20 @@ void android_app_destroy(struct android_app *android_app) // Can't touch android_app object after this. } -} +} // namespace void ExtractAsset(struct android_app* state, const std::string& assetPath, const std::string& filePath) { AAsset* asset = AAssetManager_open(state->activity->assetManager, assetPath.c_str(), AASSET_MODE_BUFFER); - if (asset) + if(asset) { size_t length = AAsset_getLength(asset) + 1; char* buffer = new char[length]; - length = AAsset_read(asset, buffer, length); + length = AAsset_read(asset, buffer, length); FILE* file = fopen(filePath.c_str(), "wb"); - if (file) + if(file) { fwrite(buffer, 1, length, file); fclose(file); @@ -100,13 +102,13 @@ void ExtractAsset(struct android_app* state, const std::string& assetPath, const void ExtractAssets(struct android_app* state, const std::string& assetDirPath, const std::string& filesDirPath) { AAssetDir* assetDir = AAssetManager_openDir(state->activity->assetManager, assetDirPath.c_str()); - if (assetDir) + if(assetDir) { - if (mkdir(filesDirPath.c_str(), S_IRWXU) != -1) + if(mkdir(filesDirPath.c_str(), S_IRWXU) != -1) { - const char *filename = NULL; + const char* filename = NULL; std::string assetPath = assetDirPath + "/"; - while ((filename = AAssetDir_getNextFileName(assetDir)) != NULL) + while((filename = AAssetDir_getNextFileName(assetDir)) != NULL) { ExtractAsset(state, assetPath + filename, filesDirPath + "/" + filename); } @@ -119,24 +121,24 @@ void ExtractAssets(struct android_app* state, const std::string& assetDirPath, c void ExtractFontConfig(struct android_app* state, std::string assetFontConfig, std::string fontsPath) { AAsset* asset = AAssetManager_open(state->activity->assetManager, assetFontConfig.c_str(), AASSET_MODE_BUFFER); - if (asset) + if(asset) { size_t length = AAsset_getLength(asset) + 1; char* buffer = new char[length]; - length = AAsset_read(asset, buffer, length); + length = AAsset_read(asset, buffer, length); std::string fontConfig = std::string(buffer, length); - int i = fontConfig.find("~"); - if (i != std::string::npos) + int i = fontConfig.find("~"); + if(i != std::string::npos) { std::string filesDir = state->activity->internalDataPath; fontConfig.replace(i, 1, filesDir); } std::string fontsFontConfig = fontsPath; - FILE* file = fopen(fontsFontConfig.c_str(), "wb"); - if (file) + FILE* file = fopen(fontsFontConfig.c_str(), "wb"); + if(file) { fwrite(fontConfig.c_str(), 1, fontConfig.size(), file); fclose(file); @@ -149,11 +151,12 @@ void ExtractFontConfig(struct android_app* state, std::string assetFontConfig, s extern "C" void FcConfigPathInit(const char* path, const char* file); -void android_main( struct android_app* state ) +void android_main(struct android_app* state) { LOGV("android_main() >>"); std::string filesDir = state->activity->internalDataPath; + LOGV("filesDir=%s", filesDir.c_str() ); std::string fontconfigPath = filesDir + "/fonts"; setenv("FONTCONFIG_PATH", fontconfigPath.c_str(), 1); @@ -161,14 +164,14 @@ void android_main( struct android_app* state ) std::string fontconfigFile = fontconfigPath + "/fonts.conf"; setenv("FONTCONFIG_FILE", fontconfigFile.c_str(), 1); - struct stat st = { 0 }; - FcConfigPathInit( fontconfigPath.c_str(), fontconfigFile.c_str() ); + struct stat st = {0}; + FcConfigPathInit(fontconfigPath.c_str(), fontconfigFile.c_str()); - if (stat(fontconfigPath.c_str(), &st) == -1) + if(stat(fontconfigPath.c_str(), &st) == -1) { mkdir(fontconfigPath.c_str(), S_IRWXU); ExtractFontConfig(state, "fonts/fonts.conf", fontconfigPath + "/fonts.conf"); - ExtractFontConfig(state, "fonts/fonts.dtd", fontconfigPath + "/fonts.dtd" ); + ExtractFontConfig(state, "fonts/fonts.dtd", fontconfigPath + "/fonts.dtd"); ExtractFontConfig(state, "fonts/local.conf", fontconfigPath + "/local.conf"); ExtractAssets(state, "fonts/dejavu", fontconfigPath + "/dejavu"); ExtractAssets(state, "fonts/tizen", fontconfigPath + "/tizen"); @@ -183,34 +186,37 @@ void android_main( struct android_app* state ) DaliDemoNativeActivity nativeActivity(state->activity); - int status = 0; - std::string libpath = "/data/data/com.sec.dalidemo/lib/libdali-demo.so"; + int status = 0; + std::string libpath = "/data/data/com.sec.dalidemo/lib/libdali-demo.so"; std::string callParam = nativeActivity.GetIntentStringExtra("start"); - if (callParam.empty()) + if(callParam.empty()) { callParam = nativeActivity.GetMetaData("start"); } - if (!callParam.empty()) + if(!callParam.empty()) { - libpath = "/data/data/com.sec.dalidemo/lib/lib" + callParam + ".so"; + libpath = "/data/data/com.sec.dalidemo/lib/lib" + callParam + ".so"; } void* handle = dlopen(libpath.c_str(), RTLD_LAZY); - if (!handle) + if(!handle) { + int err = errno; + LOGE("Err=%d Fail to open lib %s", err, libpath.c_str()); + status = err; std::exit(status); } - dlerror(); /* Clear any existing error */ + dlerror(); /* Clear any existing error */ - int (*main)(int, char**) = (int(*)(int, char**))dlsym(handle, "main"); - if (main) + int (*main)(int, char**) = (int (*)(int, char**))dlsym(handle, "main"); + if(main) { - status = main( 0, nullptr ); + status = main(0, nullptr); } - if (handle) + if(handle) { dlclose(handle); handle = nullptr;