|
@@ -24,6 +24,32 @@
|
|
|
//
|
|
|
// This layer glues the hidapi API to Android's USB and BLE stack.
|
|
|
|
|
|
+
|
|
|
+// Common to stub version and non-stub version of functions
|
|
|
+#include <jni.h>
|
|
|
+#include <android/log.h>
|
|
|
+
|
|
|
+#define TAG "hidapi"
|
|
|
+
|
|
|
+// Have error log always available
|
|
|
+#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, TAG, __VA_ARGS__)
|
|
|
+
|
|
|
+#ifdef DEBUG
|
|
|
+#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, TAG, __VA_ARGS__)
|
|
|
+#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, TAG, __VA_ARGS__)
|
|
|
+#else
|
|
|
+#define LOGV(...)
|
|
|
+#define LOGD(...)
|
|
|
+#endif
|
|
|
+
|
|
|
+#define SDL_JAVA_PREFIX org_libsdl_app
|
|
|
+#define CONCAT1(prefix, class, function) CONCAT2(prefix, class, function)
|
|
|
+#define CONCAT2(prefix, class, function) Java_ ## prefix ## _ ## class ## _ ## function
|
|
|
+#define HID_DEVICE_MANAGER_JAVA_INTERFACE(function) CONCAT1(SDL_JAVA_PREFIX, HIDDeviceManager, function)
|
|
|
+
|
|
|
+
|
|
|
+#if !SDL_HIDAPI_DISABLED
|
|
|
+
|
|
|
#include "SDL_hints.h"
|
|
|
#include "../../core/android/SDL_android.h"
|
|
|
|
|
@@ -46,30 +72,10 @@
|
|
|
#define hid_get_indexed_string PLATFORM_hid_get_indexed_string
|
|
|
#define hid_error PLATFORM_hid_error
|
|
|
|
|
|
-#include <jni.h>
|
|
|
-#include <android/log.h>
|
|
|
#include <pthread.h>
|
|
|
#include <errno.h> // For ETIMEDOUT and ECONNRESET
|
|
|
#include <stdlib.h> // For malloc() and free()
|
|
|
|
|
|
-#define TAG "hidapi"
|
|
|
-
|
|
|
-// Have error log always available
|
|
|
-#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, TAG, __VA_ARGS__)
|
|
|
-
|
|
|
-#ifdef DEBUG
|
|
|
-#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, TAG, __VA_ARGS__)
|
|
|
-#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, TAG, __VA_ARGS__)
|
|
|
-#else
|
|
|
-#define LOGV(...)
|
|
|
-#define LOGD(...)
|
|
|
-#endif
|
|
|
-
|
|
|
-#define SDL_JAVA_PREFIX org_libsdl_app
|
|
|
-#define CONCAT1(prefix, class, function) CONCAT2(prefix, class, function)
|
|
|
-#define CONCAT2(prefix, class, function) Java_ ## prefix ## _ ## class ## _ ## function
|
|
|
-#define HID_DEVICE_MANAGER_JAVA_INTERFACE(function) CONCAT1(SDL_JAVA_PREFIX, HIDDeviceManager, function)
|
|
|
-
|
|
|
#include "../hidapi/hidapi.h"
|
|
|
|
|
|
typedef uint32_t uint32;
|
|
@@ -1333,3 +1339,80 @@ int hid_exit(void)
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+#else
|
|
|
+
|
|
|
+extern "C"
|
|
|
+JNIEXPORT void JNICALL HID_DEVICE_MANAGER_JAVA_INTERFACE(HIDDeviceRegisterCallback)(JNIEnv *env, jobject thiz);
|
|
|
+
|
|
|
+extern "C"
|
|
|
+JNIEXPORT void JNICALL HID_DEVICE_MANAGER_JAVA_INTERFACE(HIDDeviceReleaseCallback)(JNIEnv *env, jobject thiz);
|
|
|
+
|
|
|
+extern "C"
|
|
|
+JNIEXPORT void JNICALL HID_DEVICE_MANAGER_JAVA_INTERFACE(HIDDeviceConnected)(JNIEnv *env, jobject thiz, int nDeviceID, jstring sIdentifier, int nVendorId, int nProductId, jstring sSerialNumber, int nReleaseNumber, jstring sManufacturer, jstring sProduct, int nInterface, int nInterfaceClass, int nInterfaceSubclass, int nInterfaceProtocol );
|
|
|
+
|
|
|
+extern "C"
|
|
|
+JNIEXPORT void JNICALL HID_DEVICE_MANAGER_JAVA_INTERFACE(HIDDeviceOpenPending)(JNIEnv *env, jobject thiz, int nDeviceID);
|
|
|
+
|
|
|
+extern "C"
|
|
|
+JNIEXPORT void JNICALL HID_DEVICE_MANAGER_JAVA_INTERFACE(HIDDeviceOpenResult)(JNIEnv *env, jobject thiz, int nDeviceID, bool bOpened);
|
|
|
+
|
|
|
+extern "C"
|
|
|
+JNIEXPORT void JNICALL HID_DEVICE_MANAGER_JAVA_INTERFACE(HIDDeviceDisconnected)(JNIEnv *env, jobject thiz, int nDeviceID);
|
|
|
+
|
|
|
+extern "C"
|
|
|
+JNIEXPORT void JNICALL HID_DEVICE_MANAGER_JAVA_INTERFACE(HIDDeviceInputReport)(JNIEnv *env, jobject thiz, int nDeviceID, jbyteArray value);
|
|
|
+
|
|
|
+extern "C"
|
|
|
+JNIEXPORT void JNICALL HID_DEVICE_MANAGER_JAVA_INTERFACE(HIDDeviceFeatureReport)(JNIEnv *env, jobject thiz, int nDeviceID, jbyteArray value);
|
|
|
+
|
|
|
+
|
|
|
+extern "C"
|
|
|
+JNIEXPORT void JNICALL HID_DEVICE_MANAGER_JAVA_INTERFACE(HIDDeviceRegisterCallback)(JNIEnv *env, jobject thiz )
|
|
|
+{
|
|
|
+ LOGV("Stub HIDDeviceRegisterCallback()");
|
|
|
+}
|
|
|
+
|
|
|
+extern "C"
|
|
|
+JNIEXPORT void JNICALL HID_DEVICE_MANAGER_JAVA_INTERFACE(HIDDeviceReleaseCallback)(JNIEnv *env, jobject thiz)
|
|
|
+{
|
|
|
+ LOGV("Stub HIDDeviceReleaseCallback()");
|
|
|
+}
|
|
|
+
|
|
|
+extern "C"
|
|
|
+JNIEXPORT void JNICALL HID_DEVICE_MANAGER_JAVA_INTERFACE(HIDDeviceConnected)(JNIEnv *env, jobject thiz, int nDeviceID, jstring sIdentifier, int nVendorId, int nProductId, jstring sSerialNumber, int nReleaseNumber, jstring sManufacturer, jstring sProduct, int nInterface, int nInterfaceClass, int nInterfaceSubclass, int nInterfaceProtocol )
|
|
|
+{
|
|
|
+ LOGV("Stub HIDDeviceConnected() id=%d VID/PID = %.4x/%.4x, interface %d\n", nDeviceID, nVendorId, nProductId, nInterface);
|
|
|
+}
|
|
|
+
|
|
|
+extern "C"
|
|
|
+JNIEXPORT void JNICALL HID_DEVICE_MANAGER_JAVA_INTERFACE(HIDDeviceOpenPending)(JNIEnv *env, jobject thiz, int nDeviceID)
|
|
|
+{
|
|
|
+ LOGV("Stub HIDDeviceOpenPending() id=%d\n", nDeviceID);
|
|
|
+}
|
|
|
+
|
|
|
+extern "C"
|
|
|
+JNIEXPORT void JNICALL HID_DEVICE_MANAGER_JAVA_INTERFACE(HIDDeviceOpenResult)(JNIEnv *env, jobject thiz, int nDeviceID, bool bOpened)
|
|
|
+{
|
|
|
+ LOGV("Stub HIDDeviceOpenResult() id=%d, result=%s\n", nDeviceID, bOpened ? "true" : "false");
|
|
|
+}
|
|
|
+
|
|
|
+extern "C"
|
|
|
+JNIEXPORT void JNICALL HID_DEVICE_MANAGER_JAVA_INTERFACE(HIDDeviceDisconnected)(JNIEnv *env, jobject thiz, int nDeviceID)
|
|
|
+{
|
|
|
+ LOGV("Stub HIDDeviceDisconnected() id=%d\n", nDeviceID);
|
|
|
+}
|
|
|
+
|
|
|
+extern "C"
|
|
|
+JNIEXPORT void JNICALL HID_DEVICE_MANAGER_JAVA_INTERFACE(HIDDeviceInputReport)(JNIEnv *env, jobject thiz, int nDeviceID, jbyteArray value)
|
|
|
+{
|
|
|
+ LOGV("Stub HIDDeviceInput() id=%d len=%u\n", nDeviceID, nBufSize);
|
|
|
+}
|
|
|
+
|
|
|
+extern "C"
|
|
|
+JNIEXPORT void JNICALL HID_DEVICE_MANAGER_JAVA_INTERFACE(HIDDeviceFeatureReport)(JNIEnv *env, jobject thiz, int nDeviceID, jbyteArray value)
|
|
|
+{
|
|
|
+ LOGV("Stub HIDDeviceFeatureReport() id=%d len=%u\n", nDeviceID, nBufSize);
|
|
|
+}
|
|
|
+
|
|
|
+#endif /* SDL_HIDAPI_DISABLED */
|