]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
[console] Generalize mode override api
authorRay Strode <rstrode@redhat.com>
Sat, 3 Oct 2009 05:28:13 +0000 (01:28 -0400)
committerRay Strode <rstrode@redhat.com>
Sun, 4 Oct 2009 14:45:37 +0000 (10:45 -0400)
Previously it was force_text_mode ().

Now, we do ignore_mode_changes ().  The
force_text_mode() behavior can be emulated by
setting the console mode to text mode and then
calling the new API.

This will be useful because we can make
ply_console_set_mode a NOOP for renderers that
don't render directly to the console.

src/libplybootsplash/ply-boot-splash.c
src/libplybootsplash/ply-console.c
src/libplybootsplash/ply-console.h

index 72ee7f0265dc25f358dcb646462ebfa59fd3c070..5ba1bc1d4ce21aa4fd84f7602770c509070a0600 100644 (file)
@@ -169,8 +169,14 @@ on_keyboard_input (ply_boot_splash_t *splash,
           case KEY_CTRL_T:
             ply_trace ("toggle text mode!");
             splash->should_force_text_mode = !splash->should_force_text_mode;
-            ply_console_force_text_mode (splash->console,
-                                         splash->should_force_text_mode);
+
+            if (splash->should_force_text_mode)
+              {
+                ply_console_set_mode (splash->console, PLY_CONSOLE_MODE_TEXT);
+                ply_console_ignore_mode_changes (splash->console, true);
+              }
+            else
+              ply_console_ignore_mode_changes (splash->console, false);
             ply_trace ("text mode toggled!");
           return;
 
index 7fb929800d3471b963dfc603acaa0841cce5a8d9..fb5a86dbb64e57b483ffc6db7fc4f530c8e42373 100644 (file)
@@ -68,7 +68,7 @@ struct _ply_console
 
   uint32_t is_open : 1;
   uint32_t is_watching_for_vt_changes : 1;
-  uint32_t should_force_text_mode : 1;
+  uint32_t should_ignore_mode_changes : 1;
 };
 
 static bool ply_console_open_device (ply_console_t *console);
@@ -106,8 +106,8 @@ ply_console_set_mode (ply_console_t     *console,
   assert (console != NULL);
   assert (mode == PLY_CONSOLE_MODE_TEXT || mode == PLY_CONSOLE_MODE_GRAPHICS);
 
-  if (console->should_force_text_mode)
-    mode = PLY_CONSOLE_MODE_TEXT;
+  if (console->should_ignore_mode_changes)
+    return;
 
   switch (mode)
     {
@@ -124,10 +124,10 @@ ply_console_set_mode (ply_console_t     *console,
 }
 
 void
-ply_console_force_text_mode (ply_console_t *console,
-                             bool           should_force)
+ply_console_ignore_mode_changes (ply_console_t *console,
+                                 bool           should_ignore)
 {
-  console->should_force_text_mode = should_force;
+  console->should_ignore_mode_changes = should_ignore;
 }
 
 static void
index 36263bbc5aee25ff21b204337452a8790c6ec1a4..4b45c86e2d580ed8df453bf005e03994dc952c75 100644 (file)
@@ -49,8 +49,8 @@ void ply_console_close (ply_console_t *console);
 void ply_console_set_mode (ply_console_t     *console,
                            ply_console_mode_t mode);
 
-void ply_console_force_text_mode (ply_console_t *console,
-                                  bool           should_force);
+void ply_console_ignore_mode_changes (ply_console_t *console,
+                                      bool           should_ignore);
 
 int ply_console_get_fd (ply_console_t *console);
 int ply_console_get_active_vt (ply_console_t *console);