]> rtime.felk.cvut.cz Git - sojka/lightdm.git/blobdiff - src/seat.h
Remove MirServer class and connect Mir sessions directly to UnitySystemCompositor
[sojka/lightdm.git] / src / seat.h
index 093f26eb89bfe4be410ecb73f0d84e61ab6cb370..3c5b3ee956ed57dd734b6f3186b1b0bc5bb76403 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 2010-2011 Robert Ancell.
  * Author: Robert Ancell <robert.ancell@canonical.com>
- * 
+ *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU General Public License as published by the Free Software
  * Foundation, either version 3 of the License, or (at your option) any later
@@ -14,7 +14,7 @@
 
 #include <glib-object.h>
 #include "display-server.h"
-#include "greeter.h"
+#include "greeter-session.h"
 #include "session.h"
 #include "process.h"
 #include "logger.h"
@@ -26,11 +26,16 @@ G_BEGIN_DECLS
 #define SEAT_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST ((klass), SEAT_TYPE, SeatClass))
 #define SEAT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEAT_TYPE, SeatClass))
 
+#define SEAT_SIGNAL_SESSION_ADDED        "session-added"
+#define SEAT_SIGNAL_RUNNING_USER_SESSION "running-user-session"
+#define SEAT_SIGNAL_SESSION_REMOVED      "session-removed"
+#define SEAT_SIGNAL_STOPPED              "stopped"
+
 typedef struct SeatPrivate SeatPrivate;
 
 typedef struct
 {
-    GObject         parent_instance;
+    GObject      parent_instance;
     SeatPrivate *priv;
 } Seat;
 
@@ -38,12 +43,11 @@ typedef struct
 {
     GObjectClass parent_class;
 
-    gboolean (*get_start_local_sessions) (Seat *seat);
     void (*setup)(Seat *seat);
     gboolean (*start)(Seat *seat);
-    DisplayServer *(*create_display_server) (Seat *seat, const gchar *session_type);
-    gboolean (*display_server_supports_session_type) (Seat *seat, DisplayServer *display_server, const gchar *session_type);
-    Greeter *(*create_greeter_session) (Seat *seat);
+    DisplayServer *(*create_display_server) (Seat *seat, Session *session);
+    gboolean (*display_server_is_used) (Seat *seat, DisplayServer *display_server);
+    GreeterSession *(*create_greeter_session) (Seat *seat);
     Session *(*create_session) (Seat *seat);
     void (*set_active_session)(Seat *seat, Session *session);
     void (*set_next_session)(Seat *seat, Session *session);
@@ -61,7 +65,7 @@ GType seat_get_type (void);
 
 void seat_register_module (const gchar *name, GType type);
 
-Seat *seat_new (const gchar *module_name);
+Seat *seat_new (const gchar *module_name, const gchar *name);
 
 void seat_set_property (Seat *seat, const gchar *name, const gchar *value);
 
@@ -89,6 +93,12 @@ Session *seat_get_active_session (Seat *seat);
 
 Session *seat_get_next_session (Seat *seat);
 
+void seat_set_externally_activated_session (Seat *seat, Session *session);
+
+Session *seat_get_expected_active_session (Seat *seat);
+
+Session *seat_find_session_by_login1_id (Seat *seat, const gchar *login1_session_id);
+
 gboolean seat_get_can_switch (Seat *seat);
 
 gboolean seat_get_allow_guest (Seat *seat);