Merge "Bluetooth event loop dispatches dbus data on wakeup"

This commit is contained in:
Jaikumar Ganesh
2011-08-18 12:02:35 -07:00
committed by Android Code Review

View File

@@ -428,6 +428,7 @@ static void tearDownEventLoop(native_data_t *nat) {
#define EVENT_LOOP_EXIT 1 #define EVENT_LOOP_EXIT 1
#define EVENT_LOOP_ADD 2 #define EVENT_LOOP_ADD 2
#define EVENT_LOOP_REMOVE 3 #define EVENT_LOOP_REMOVE 3
#define EVENT_LOOP_WAKEUP 4
dbus_bool_t dbusAddWatch(DBusWatch *watch, void *data) { dbus_bool_t dbusAddWatch(DBusWatch *watch, void *data) {
native_data_t *nat = (native_data_t *)data; native_data_t *nat = (native_data_t *)data;
@@ -472,6 +473,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) { static void handleWatchAdd(native_data_t *nat) {
DBusWatch *watch; DBusWatch *watch;
int newFD; int newFD;
@@ -555,6 +563,7 @@ static void *eventLoopMain(void *ptr) {
dbus_connection_set_watch_functions(nat->conn, dbusAddWatch, dbus_connection_set_watch_functions(nat->conn, dbusAddWatch,
dbusRemoveWatch, dbusToggleWatch, ptr, NULL); dbusRemoveWatch, dbusToggleWatch, ptr, NULL);
dbus_connection_set_wakeup_main_function(nat->conn, dbusWakeup, ptr, NULL);
nat->running = true; nat->running = true;
@@ -590,6 +599,11 @@ static void *eventLoopMain(void *ptr) {
handleWatchRemove(nat); handleWatchRemove(nat);
break; break;
} }
case EVENT_LOOP_WAKEUP:
{
// noop
break;
}
} }
} }
} else { } else {