From 4c85801975613e215878b5750ffc4406787038f2 Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Sat, 26 May 2012 13:02:05 +0200 Subject: [PATCH] main: use uterm_monitor objects Create a global uterm_monitor object to monitor the system for new seats and devices. Signed-off-by: David Herrmann --- src/main.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/main.c b/src/main.c index c2d1bfc..2aa0d8e 100644 --- a/src/main.c +++ b/src/main.c @@ -45,6 +45,8 @@ struct kmscon_app { struct uterm_video *video; struct kmscon_input *input; struct kmscon_ui *ui; + + struct uterm_monitor *mon; }; static void sig_generic(struct ev_eloop *eloop, struct signalfd_siginfo *info, @@ -80,12 +82,33 @@ static bool vt_switch(struct kmscon_vt *vt, return true; } +static void monitor_event(struct uterm_monitor *mon, + struct uterm_monitor_event *ev, + void *data) +{ + struct kmscon_app *app = data; + + switch (ev->type) { + case UTERM_MONITOR_NEW_SEAT: + break; + case UTERM_MONITOR_FREE_SEAT: + break; + case UTERM_MONITOR_NEW_DEV: + break; + case UTERM_MONITOR_FREE_DEV: + break; + case UTERM_MONITOR_HOTPLUG_DEV: + break; + } +} + static void destroy_app(struct kmscon_app *app) { kmscon_ui_free(app->ui); kmscon_input_unref(app->input); uterm_video_unref(app->video); kmscon_vt_unref(app->vt); + uterm_monitor_unref(app->mon); ev_eloop_unregister_signal_cb(app->eloop, SIGINT, sig_generic, app); ev_eloop_unregister_signal_cb(app->eloop, SIGTERM, sig_generic, app); ev_eloop_rm_eloop(app->vt_eloop); @@ -114,6 +137,10 @@ static int setup_app(struct kmscon_app *app) if (ret) goto err_app; + ret = uterm_monitor_new(&app->mon, app->eloop, monitor_event, app); + if (ret) + goto err_app; + ret = kmscon_vt_new(&app->vt, vt_switch, app); if (ret) goto err_app; @@ -145,6 +172,8 @@ static int setup_app(struct kmscon_app *app) if (ret) goto err_app; + uterm_monitor_scan(app->mon); + return 0; err_app: