main: create vt master object

When running multiple sessions on multiple seats, we need to allocate
multiple VTs, too. Therefore, we now create a VT master connection in the
main application which we can later use to allocate new VTs for each
session.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This commit is contained in:
David Herrmann 2012-05-26 13:16:23 +02:00
parent 477542b2ba
commit 589b5ce9e3

View File

@ -47,6 +47,7 @@ struct kmscon_app {
struct kmscon_input *input;
struct kmscon_ui *ui;
struct uterm_vt_master *vtm;
struct uterm_monitor *mon;
struct kmscon_dlist seats;
};
@ -161,6 +162,7 @@ static void destroy_app(struct kmscon_app *app)
uterm_video_unref(app->video);
kmscon_vt_unref(app->vt);
uterm_monitor_unref(app->mon);
uterm_vt_master_unref(app->vtm);
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);
@ -189,6 +191,10 @@ static int setup_app(struct kmscon_app *app)
if (ret)
goto err_app;
ret = uterm_vt_master_new(&app->vtm, app->vt_eloop);
if (ret)
goto err_app;
kmscon_dlist_init(&app->seats);
ret = uterm_monitor_new(&app->mon, app->eloop, monitor_event, app);