diff options
author | Jaikumar Ganesh <jaikumar@google.com> | 2010-07-19 16:28:27 -0700 |
---|---|---|
committer | Jaikumar Ganesh <jaikumar@google.com> | 2010-07-21 10:43:02 -0700 |
commit | de07503a382e81ba82f4cd4dee81ff2fbf3295bc (patch) | |
tree | fc3d73fe306195e9c4080901d74e635323bd3db0 /core/jni/android_server_BluetoothEventLoop.cpp | |
parent | c3ee99d9eb7e8b4b20c2b8f1c548373e1017e0d3 (diff) | |
download | frameworks_base-de07503a382e81ba82f4cd4dee81ff2fbf3295bc.zip frameworks_base-de07503a382e81ba82f4cd4dee81ff2fbf3295bc.tar.gz frameworks_base-de07503a382e81ba82f4cd4dee81ff2fbf3295bc.tar.bz2 |
Add HID to the state machine and add native call backs.
Change-Id: Ib9f3e476d4176bc04e23e7674dc54aa5a6417308
Diffstat (limited to 'core/jni/android_server_BluetoothEventLoop.cpp')
-rw-r--r-- | core/jni/android_server_BluetoothEventLoop.cpp | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/core/jni/android_server_BluetoothEventLoop.cpp b/core/jni/android_server_BluetoothEventLoop.cpp index efaff12..4dc012c 100644 --- a/core/jni/android_server_BluetoothEventLoop.cpp +++ b/core/jni/android_server_BluetoothEventLoop.cpp @@ -65,6 +65,7 @@ static jmethodID method_onAgentAuthorize; static jmethodID method_onAgentCancel; static jmethodID method_onInputDevicePropertyChanged; +static jmethodID method_onInputDeviceConnectionResult; typedef event_loop_native_data_t native_data_t; @@ -120,7 +121,8 @@ static void classInitNative(JNIEnv* env, jclass clazz) { "(Ljava/lang/String;II)V"); method_onInputDevicePropertyChanged = env->GetMethodID(clazz, "onInputDevicePropertyChanged", "(Ljava/lang/String;[Ljava/lang/String;)V"); - + method_onInputDeviceConnectionResult = env->GetMethodID(clazz, "onInputDeviceConnectionResult", + "(Ljava/lang/String;Z)V"); field_mNativeData = env->GetFieldID(clazz, "mNativeData", "I"); #endif @@ -1245,6 +1247,32 @@ done: env->DeleteLocalRef(addr); free(user); } + +void onInputDeviceConnectionResult(DBusMessage *msg, void *user, void *n) { + LOGV(__FUNCTION__); + + native_data_t *nat = (native_data_t *)n; + const char *path = (const char *)user; + DBusError err; + dbus_error_init(&err); + JNIEnv *env; + nat->vm->GetEnv((void**)&env, nat->envVer); + + bool result = JNI_TRUE; + if (dbus_set_error_from_message(&err, msg)) { + LOG_AND_FREE_DBUS_ERROR(&err); + result = JNI_FALSE; + } + LOGV("... Device Path = %s, result = %d", path, result); + jstring jPath = env->NewStringUTF(path); + env->CallVoidMethod(nat->me, + method_onInputDeviceConnectionResult, + jPath, + result); + env->DeleteLocalRef(jPath); + free(user); +} + #endif static JNINativeMethod sMethods[] = { |