summaryrefslogtreecommitdiffstats
path: root/core/jni
diff options
context:
space:
mode:
authorJaikumar Ganesh <jaikumarg@android.com>2011-08-18 12:10:02 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2011-08-18 12:10:02 -0700
commit294539df2c05eb62c417e25b2e1c8a71474b09e6 (patch)
treea061c2fe3ef067ec1cad5feda4c26f5356e601b9 /core/jni
parentddf155b8338eb894a97612e4cb21257c11d8434a (diff)
parent3e9413473f87ad17f3767ffbb0c57046c2db29be (diff)
downloadframeworks_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.cpp14
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 {