diff options
author | Jaikumar Ganesh <jaikumarg@android.com> | 2011-08-18 12:10:02 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2011-08-18 12:10:02 -0700 |
commit | 294539df2c05eb62c417e25b2e1c8a71474b09e6 (patch) | |
tree | a061c2fe3ef067ec1cad5feda4c26f5356e601b9 /core/jni | |
parent | ddf155b8338eb894a97612e4cb21257c11d8434a (diff) | |
parent | 3e9413473f87ad17f3767ffbb0c57046c2db29be (diff) | |
download | frameworks_base-294539df2c05eb62c417e25b2e1c8a71474b09e6.zip frameworks_base-294539df2c05eb62c417e25b2e1c8a71474b09e6.tar.gz frameworks_base-294539df2c05eb62c417e25b2e1c8a71474b09e6.tar.bz2 |
am 3e941347: am 6f6b21b4: am 4733d3a6: Merge "Bluetooth event loop dispatches dbus data on wakeup"
* commit '3e9413473f87ad17f3767ffbb0c57046c2db29be':
Bluetooth event loop dispatches dbus data on wakeup
Diffstat (limited to 'core/jni')
-rw-r--r-- | core/jni/android_server_BluetoothEventLoop.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/core/jni/android_server_BluetoothEventLoop.cpp b/core/jni/android_server_BluetoothEventLoop.cpp index a6bde88..41ef7cc1 100644 --- a/core/jni/android_server_BluetoothEventLoop.cpp +++ b/core/jni/android_server_BluetoothEventLoop.cpp @@ -486,6 +486,7 @@ static void tearDownEventLoop(native_data_t *nat) { #define EVENT_LOOP_EXIT 1 #define EVENT_LOOP_ADD 2 #define EVENT_LOOP_REMOVE 3 +#define EVENT_LOOP_WAKEUP 4 dbus_bool_t dbusAddWatch(DBusWatch *watch, void *data) { native_data_t *nat = (native_data_t *)data; @@ -530,6 +531,13 @@ void dbusToggleWatch(DBusWatch *watch, void *data) { } } +void dbusWakeup(void *data) { + native_data_t *nat = (native_data_t *)data; + + char control = EVENT_LOOP_WAKEUP; + write(nat->controlFdW, &control, sizeof(char)); +} + static void handleWatchAdd(native_data_t *nat) { DBusWatch *watch; int newFD; @@ -613,6 +621,7 @@ static void *eventLoopMain(void *ptr) { dbus_connection_set_watch_functions(nat->conn, dbusAddWatch, dbusRemoveWatch, dbusToggleWatch, ptr, NULL); + dbus_connection_set_wakeup_main_function(nat->conn, dbusWakeup, ptr, NULL); nat->running = true; @@ -648,6 +657,11 @@ static void *eventLoopMain(void *ptr) { handleWatchRemove(nat); break; } + case EVENT_LOOP_WAKEUP: + { + // noop + break; + } } } } else { |