-
- r = idev_evdev_resume(&em->evdev, fd);
- if (r < 0)
- log_debug("idev-evdev: %s/%s: cannot resume: %s",
- s->name, e->name, strerror(-r));
-
- return 0;
-}
-
-static int managed_evdev_setup_bus(managed_evdev *em) {
- idev_element *e = &em->evdev.element;
- idev_session *s = e->session;
- idev_context *c = s->context;
- _cleanup_free_ char *match = NULL;
- int r;
-
- match = strjoin("type='signal',"
- "sender='org.freedesktop.login1',"
- "interface='org.freedesktop.login1.Session',"
- "member='PauseDevice',"
- "path='", s->path, "'",
- NULL);
- if (!match)
- return -ENOMEM;
-
- r = sd_bus_add_match(c->sysbus,
- &em->slot_pause_device,
- match,
- managed_evdev_pause_device_fn,
- em);
- if (r < 0)
- return r;
-
- free(match);
- match = strjoin("type='signal',"
- "sender='org.freedesktop.login1',"
- "interface='org.freedesktop.login1.Session',"
- "member='ResumeDevice',"
- "path='", s->path, "'",
- NULL);
- if (!match)
- return -ENOMEM;
-
- r = sd_bus_add_match(c->sysbus,
- &em->slot_resume_device,
- match,
- managed_evdev_resume_device_fn,
- em);
- if (r < 0)
- return r;
-
- return 0;