mirror of
https://gitlab.freedesktop.org/plymouth/plymouth.git
synced 2026-05-08 13:38:45 +02:00
[console] Generalize mode override api
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.
This commit is contained in:
parent
5b0910dc5f
commit
0bade767b8
3 changed files with 16 additions and 10 deletions
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue