main: create vt master object
authorDavid Herrmann <dh.herrmann@googlemail.com>
Sat, 26 May 2012 11:16:23 +0000 (13:16 +0200)
committerDavid Herrmann <dh.herrmann@googlemail.com>
Sat, 26 May 2012 11:16:23 +0000 (13:16 +0200)
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>
src/main.c

index 0a69b64..77ab273 100644 (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);