123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- #include <jni.h>
- #include <android/log.h>
- #define TAG "sdlpal-jni"
- #define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, TAG,__VA_ARGS__)
- #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG , TAG,__VA_ARGS__)
- #define LOGI(...) __android_log_print(ANDROID_LOG_INFO , TAG,__VA_ARGS__)
- #define LOGW(...) __android_log_print(ANDROID_LOG_WARN , TAG,__VA_ARGS__)
- #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR , TAG,__VA_ARGS__)
- #include "palcommon.h"
- #include "global.h"
- #include "palcfg.h"
- char externalStoragePath[255];
- char midiInterFile[255];
- JavaVM *globalVM;
- jint JNI_OnLoad(JavaVM* vm, void* reserved)
- {
- JNIEnv* env;
- if ((*vm)->GetEnv(vm, (void**)&env, JNI_VERSION_1_2) != JNI_OK) {
- return -1;
- }
- globalVM = vm;
- return JNI_VERSION_1_2;
- }
- JNIEnv *getJNIEnv() {
- JNIEnv* env;
- if ((*globalVM)->GetEnv(globalVM, (void**)&env, JNI_VERSION_1_2) != JNI_OK) {
- return NULL;
- }
- return env;
- }
- /*
- * Class: com_codeplex_sdlpal_PalActivity
- * Method: setExternalStorage
- * Signature: (Ljava/lang/String;)V
- */
- JNIEXPORT void JNICALL Java_com_codeplex_sdlpal_PalActivity_setExternalStorage(JNIEnv *env, jclass cls, jstring j_str)
- {
- const jchar* c_str= NULL;
- char* pBuff = externalStoragePath;
- c_str = (*env)->GetStringCritical(env,j_str,NULL);
- if (c_str == NULL)
- {
- return;
- }
- while(*c_str)
- {
- *pBuff++ = *c_str++;
- }
- (*env)->ReleaseStringCritical(env,j_str,c_str);
- strncat(externalStoragePath,"/sdlpal/",strnlen("/sdlpal/",255));
- return;
- }
- /*
- * Class: com_codeplex_sdlpal_PalActivity
- * Method: setMIDIInterFile
- * Signature: (Ljava/lang/String;)V
- */
- JNIEXPORT void JNICALL Java_com_codeplex_sdlpal_PalActivity_setMIDIInterFile(JNIEnv *env, jclass cls, jstring j_str)
- {
- const jchar* c_str= NULL;
- char* pBuff = midiInterFile;
- memset(midiInterFile,0,sizeof(midiInterFile));
- c_str = (*env)->GetStringCritical(env,j_str,NULL);
- if (c_str == NULL)
- {
- return;
- }
- while(*c_str)
- {
- *pBuff++ = *c_str++;
- }
- //*pBuff = '\0';
- (*env)->ReleaseStringCritical(env,j_str,c_str);
- LOGV("JNI got midi inter filename:%s", midiInterFile);
- return;
- }
- void JNI_mediaplayer_load(){
- JNIEnv* env=getJNIEnv();
- jclass clazz = (*env)->FindClass(env, "com/codeplex/sdlpal/PalActivity");
- jmethodID mid = (*env)->GetStaticMethodID(env, clazz, "JNI_mediaplayer_load", "()V");
- (*env)->CallStaticVoidMethod(env,clazz,mid);
- }
- void JNI_mediaplayer_play() {
- JNIEnv* env=getJNIEnv();
- jclass clazz = (*env)->FindClass(env, "com/codeplex/sdlpal/PalActivity");
- jmethodID mid = (*env)->GetStaticMethodID(env, clazz, "JNI_mediaplayer_play", "()V");
- (*env)->CallStaticVoidMethod(env,clazz,mid);
- }
- void JNI_mediaplayer_stop() {
- JNIEnv* env=getJNIEnv();
- jclass clazz = (*env)->FindClass(env, "com/codeplex/sdlpal/PalActivity");
- jmethodID mid = (*env)->GetStaticMethodID(env, clazz, "JNI_mediaplayer_stop", "()V");
- (*env)->CallStaticVoidMethod(env,clazz,mid);
- }
- int JNI_mediaplayer_isplaying() {
- return 0;
- }
- void JNI_mediaplayer_setvolume(int volume) {
- }
- LPCSTR
- UTIL_BasePath(
- VOID
- )
- {
- return externalStoragePath;
- }
- LPCSTR
- UTIL_SavePath(
- VOID
- )
- {
- return externalStoragePath;
- }
- BOOL
- UTIL_GetScreenSize(
- DWORD *pdwScreenWidth,
- DWORD *pdwScreenHeight
- )
- {
- *pdwScreenWidth = 640;
- *pdwScreenHeight = 400;
- return TRUE;
- }
- BOOL
- UTIL_IsAbsolutePath(
- LPCSTR lpszFileName
- )
- {
- return FALSE;
- }
- INT
- UTIL_Platform_Init(
- int argc,
- char* argv[]
- )
- {
- gConfig.fLaunchSetting = FALSE;
- return 0;
- }
- VOID
- UTIL_Platform_Quit(
- VOID
- )
- {
- }
|