void android_event_free(ANDROID_EVENT* event) { if (!event) return; switch (event->type) { case EVENT_TYPE_KEY: android_event_key_free((ANDROID_EVENT_KEY*)event); break; case EVENT_TYPE_KEY_UNICODE: android_event_unicodekey_free((ANDROID_EVENT_KEY*)event); break; case EVENT_TYPE_CURSOR: android_event_cursor_free((ANDROID_EVENT_CURSOR*)event); break; case EVENT_TYPE_DISCONNECT: android_event_disconnect_free((ANDROID_EVENT*)event); break; case EVENT_TYPE_CLIPBOARD: android_event_clipboard_free((ANDROID_EVENT_CLIPBOARD*)event); break; default: break; } }
JNIEXPORT jboolean JNICALL jni_freerdp_send_unicodekey_event( JNIEnv *env, jclass cls, jint instance, jint keycode) { ANDROID_EVENT* event; freerdp* inst = (freerdp*)instance; event = (ANDROID_EVENT*) android_event_unicodekey_new(keycode); if (!event) return JNI_FALSE; if (!android_push_event(inst, event)) { android_event_unicodekey_free((ANDROID_EVENT_KEY *)event); return JNI_FALSE; } DEBUG_ANDROID("send_unicodekey_event: %d", keycode); return JNI_TRUE; }