static void weston_dbus_toggle_watch(DBusWatch *watch, void *data) { struct wl_event_source *s; uint32_t mask = 0, flags; s = dbus_watch_get_data(watch); if (!s) return; if (dbus_watch_get_enabled(watch)) { flags = dbus_watch_get_flags(watch); if (flags & DBUS_WATCH_READABLE) mask |= WL_EVENT_READABLE; if (flags & DBUS_WATCH_WRITABLE) mask |= WL_EVENT_WRITABLE; } wl_event_source_fd_update(s, mask); }
void DBusHandler::Callbacks::toggleWatch(DBusWatch* watch, void* data) { struct wl_event_source *s; if(!(s = (wl_event_source*) dbus_watch_get_data(watch))) { ny::sendWarning("dbusToggleWatch: dbus watch has no data"); return; } uint32_t mask = 0; if(dbus_watch_get_enabled(watch)) { unsigned int flags = dbus_watch_get_flags(watch); if (flags & DBUS_WATCH_READABLE) mask |= WL_EVENT_READABLE; if (flags & DBUS_WATCH_WRITABLE) mask |= WL_EVENT_WRITABLE; } wl_event_source_fd_update(s, mask); }