#ifndef FREERDP_ANDROID_EVENT_H
#define FREERDP_ANDROID_EVENT_H
#include <freerdp/freerdp.h>
+#include <freerdp/api.h>
#define EVENT_TYPE_KEY 1
#define EVENT_TYPE_CURSOR 2
int size;
int count;
HANDLE isSet;
- ANDROID_EVENT **events;
+ ANDROID_EVENT** events;
};
typedef struct _ANDROID_EVENT_QUEUE ANDROID_EVENT_QUEUE;
-BOOL android_push_event(freerdp * inst, ANDROID_EVENT* event);
+FREERDP_LOCAL BOOL android_push_event(freerdp* inst, ANDROID_EVENT* event);
-HANDLE android_get_handle(freerdp* inst);
-BOOL android_check_handle(freerdp * inst);
+FREERDP_LOCAL HANDLE android_get_handle(freerdp* inst);
+FREERDP_LOCAL BOOL android_check_handle(freerdp* inst);
-ANDROID_EVENT_KEY* android_event_key_new(int flags, UINT16 scancode);
-ANDROID_EVENT_KEY* android_event_unicodekey_new(UINT16 key);
-ANDROID_EVENT_CURSOR* android_event_cursor_new(UINT16 flags, UINT16 x, UINT16 y);
-ANDROID_EVENT* android_event_disconnect_new(void);
-ANDROID_EVENT_CLIPBOARD* android_event_clipboard_new(void* data, int data_length);
+FREERDP_LOCAL ANDROID_EVENT_KEY* android_event_key_new(int flags,
+ UINT16 scancode);
+FREERDP_LOCAL ANDROID_EVENT_KEY* android_event_unicodekey_new(UINT16 key);
+FREERDP_LOCAL ANDROID_EVENT_CURSOR* android_event_cursor_new(UINT16 flags,
+ UINT16 x, UINT16 y);
+FREERDP_LOCAL ANDROID_EVENT* android_event_disconnect_new(void);
+FREERDP_LOCAL ANDROID_EVENT_CLIPBOARD* android_event_clipboard_new(void* data,
+ int data_length);
-void android_event_free(ANDROID_EVENT* event);
+FREERDP_LOCAL void android_event_free(ANDROID_EVENT* event);
-BOOL android_event_queue_init(freerdp * inst);
-void android_event_queue_uninit(freerdp * inst);
+FREERDP_LOCAL BOOL android_event_queue_init(freerdp* inst);
+FREERDP_LOCAL void android_event_queue_uninit(freerdp* inst);
#endif /* FREERDP_ANDROID_EVENT_H */
static JavaVM* jVM;
static jobject jLibFreeRDPObject;
-static const char *jLibFreeRDPPath = JAVA_LIBFREERDP_CLASS;
+static const char* jLibFreeRDPPath = JAVA_LIBFREERDP_CLASS;
-void jni_load_class(JNIEnv *env, const char *path, jobject *objptr)
+static void jni_load_class(JNIEnv* env, const char* path, jobject* objptr)
{
jclass class;
jmethodID method;
jobject object;
-
WLog_DBG(TAG, "jni_load_class: %s", path);
-
class = (*env)->FindClass(env, path);
if (!class)
}
(*objptr) = (*env)->NewGlobalRef(env, object);
-
finish:
- while(0);
+
+ while (0);
}
jint init_callback_environment(JavaVM* vm, JNIEnv* env)
{
jVM = vm;
-
jni_load_class(env, jLibFreeRDPPath, &jLibFreeRDPObject);
-
return JNI_VERSION_1_6;
}
if ((*jVM)->GetEnv(jVM, (void**) env, JNI_VERSION_1_4) != JNI_OK)
{
WLog_DBG(TAG, "android_java_callback: attaching current thread");
-
(*jVM)->AttachCurrentThread(jVM, env, NULL);
if ((*jVM)->GetEnv(jVM, (void**) env, JNI_VERSION_1_4) != JNI_OK)
{
- WLog_ERR(TAG, "android_java_callback: failed to obtain current JNI environment");
+ WLog_ERR(TAG,
+ "android_java_callback: failed to obtain current JNI environment");
}
return JNI_TRUE;
}
/* callback with void result */
-void java_callback_void(jobject obj, const char * callback, const char* signature, va_list args)
+static void java_callback_void(jobject obj, const char* callback,
+ const char* signature, va_list args)
{
jclass jObjClass;
jmethodID jCallback;
jboolean attached;
- JNIEnv *env;
-
+ JNIEnv* env;
WLog_DBG(TAG, "java_callback: %s (%s)", callback, signature);
-
attached = jni_attach_thread(&env);
-
jObjClass = (*env)->GetObjectClass(env, obj);
if (!jObjClass)
}
(*env)->CallStaticVoidMethodV(env, jObjClass, jCallback, args);
-
finish:
- if(attached == JNI_TRUE)
+
+ if (attached == JNI_TRUE)
jni_detach_thread();
}
/* callback with bool result */
-jboolean java_callback_bool(jobject obj, const char * callback,
- const char* signature, va_list args)
+static jboolean java_callback_bool(jobject obj, const char* callback,
+ const char* signature, va_list args)
{
jclass jObjClass;
jmethodID jCallback;
jboolean attached;
jboolean res = JNI_FALSE;
- JNIEnv *env;
-
+ JNIEnv* env;
WLog_DBG(TAG, "java_callback: %s (%s)", callback, signature);
-
attached = jni_attach_thread(&env);
-
jObjClass = (*env)->GetObjectClass(env, obj);
if (!jObjClass)
}
res = (*env)->CallStaticBooleanMethodV(env, jObjClass, jCallback, args);
-
finish:
- if(attached == JNI_TRUE)
+
+ if (attached == JNI_TRUE)
jni_detach_thread();
return res;
}
/* callback with int result */
-jint java_callback_int(jobject obj, const char * callback, const char* signature, va_list args)
+static jint java_callback_int(jobject obj, const char* callback,
+ const char* signature, va_list args)
{
jclass jObjClass;
jmethodID jCallback;
jboolean attached;
jint res = -1;
- JNIEnv *env;
-
+ JNIEnv* env;
WLog_DBG(TAG, "java_callback: %s (%s)", callback, signature);
-
attached = jni_attach_thread(&env);
-
jObjClass = (*env)->GetObjectClass(env, obj);
if (!jObjClass)
}
res = (*env)->CallStaticIntMethodV(env, jObjClass, jCallback, args);
-
finish:
- if(attached == JNI_TRUE)
+
+ if (attached == JNI_TRUE)
jni_detach_thread();
return res;
/* callback to freerdp class */
-void freerdp_callback(const char * callback, const char * signature, ...)
+void freerdp_callback(const char* callback, const char* signature, ...)
{
va_list vl;
va_start(vl, signature);
va_end(vl);
}
-jboolean freerdp_callback_bool_result(const char * callback, const char * signature, ...)
+jboolean freerdp_callback_bool_result(const char* callback,
+ const char* signature, ...)
{
va_list vl;
va_start(vl, signature);
return res;
}
-jint freerdp_callback_int_result(const char * callback, const char * signature, ...)
+jint freerdp_callback_int_result(const char* callback, const char* signature,
+ ...)
{
va_list vl;
- va_start(vl, signature);
+ va_start(vl, signature);
jint res = java_callback_int(jLibFreeRDPObject, callback, signature, vl);
va_end(vl);
return res;
#include <jni.h>
#include <stdarg.h>
+#include <freerdp/api.h>
-jint init_callback_environment(JavaVM* vm, JNIEnv* env);
-jboolean jni_attach_thread(JNIEnv** env);
-void jni_detach_thread(void);
-void freerdp_callback(const char * callback, const char * signature, ...);
-jboolean freerdp_callback_bool_result(const char * callback, const char * signature, ...);
-jint freerdp_callback_int_result(const char * callback, const char * signature, ...);
+FREERDP_LOCAL jint init_callback_environment(JavaVM* vm, JNIEnv* env);
+FREERDP_LOCAL jboolean jni_attach_thread(JNIEnv** env);
+FREERDP_LOCAL void jni_detach_thread(void);
+FREERDP_LOCAL void freerdp_callback(const char* callback, const char* signature,
+ ...);
+FREERDP_LOCAL jboolean freerdp_callback_bool_result(const char* callback,
+ const char* signature, ...);
+FREERDP_LOCAL jint freerdp_callback_int_result(const char* callback,
+ const char* signature, ...);
#endif /* FREERDP_ANDROID_JNI_CALLBACK_H */