};
namespace {
-int check_events(struct wl::display *d, struct conn *c, int fd)
-{
- struct pollfd pfd[2] = {
- { .fd = d->get_fd(), .events = POLLIN, .revents = 0 },
- { .fd = fd, .events = POLLIN, .revents = 0 }
- };
+int check_events(struct wl::display *d, struct conn *c, int fd) {
+ struct pollfd pfd[2] = {{.fd = d->get_fd(), .events = POLLIN, .revents = 0},
+ {.fd = fd, .events = POLLIN, .revents = 0}};
d->flush();
return ret;
if (fd != -1 && (pfd[1].revents & POLLIN)) {
- char buf[10];
+ char buf[256];
- while (read(pfd[1].fd, buf, 10) == 10)
+ // read all there is ...
+ while (read(pfd[1].fd, buf, sizeof(buf)) == sizeof(buf))
;
// Display current status
- for (auto const &i : c->c->surfaces) {
- printf("Surface %d\n", i.first);
+ if (!c->c->surfaces.empty()) {
+ puts("Surfaces:");
+ for (auto const &i : c->c->surfaces) {
+ struct genivi::rect const &r = i.second->dst_rect;
+ struct genivi::size const &s = i.second->size;
+ printf("%d [%ux%u] (%ux%u@%dx%d), ", i.first, s.w, s.h, r.w, r.h,
+ r.x, r.y);
+ }
+ puts("\b\b ");
}
}
}
fatal("ivi_controller global not available");
while (check_events(d.get(), &c, STDIN_FILENO) != -1) {
- ;
+ c.c->execute_pending();
}
d->roundtrip();