Game Development Reference
In-Depth Information
3.
The third argument is the string message for OnMessage or the
encoded event information for OnEvent . In this way the same function
can be reused for both WiiC callbacks, OnMessage and OnEvent .
Listing 8-12. WiiC Callback Methods to Wiimote.java
static void jni_send_str(int rc, const char * methodName, const char * text) {
JNIEnv *env;
if ( !g_VM) {
LOGE("%s\n", text);
return;
}
(*g_VM)->AttachCurrentThread (g_VM, &env, NULL);
if ( jCbClass == 0 ) {
LOGE("No callback class. Abort!");
return;
}
// Call Java method
jmethodID mSendStr = (*env)->GetStaticMethodID(env, jCbClass
, methodName
, "(ILjava/lang/String;)V");
if (mSendStr) {
jstring jstr = (*env)->NewStringUTF(env, text);
(*env)->CallStaticVoidMethod(env, jCbClass
, mSendStr , rc, jstr );
(*env)->DeleteLocalRef(env,jstr);
}
}
/**
* Send message callback. Invokes jni_send_str
*/
void jni_send_message(char *format, ...)
{
va_list argptr;
static char string[1024];
va_start (argptr, format);
vsprintf (string, format,argptr);
va_end (argptr);
jni_send_str(0, "OnMessage", string);
}
 
Search WWH ::




Custom Search