device-manager: force details if serial consoles are used

it's better to skip trying to load the default splash rather than
relying on it failing and falling back.
This commit is contained in:
Ray Strode 2015-07-24 16:23:00 -04:00
parent ef7adc3677
commit 77d303d07b
3 changed files with 14 additions and 0 deletions

View file

@ -71,6 +71,7 @@ struct _ply_device_manager
uint32_t local_console_managed : 1;
uint32_t local_console_is_text : 1;
uint32_t serial_consoles_detected : 1;
};
static void
@ -727,6 +728,8 @@ create_devices_from_terminals (ply_device_manager_t *manager)
if (has_serial_consoles) {
ply_trace ("serial consoles detected, managing them with details forced");
manager->serial_consoles_detected = true;
ply_hashtable_foreach (manager->terminals,
(ply_hashtable_foreach_func_t *)
create_devices_for_terminal,
@ -889,6 +892,12 @@ ply_device_manager_get_default_terminal (ply_device_manager_t *manager)
return manager->local_console_terminal;
}
bool
ply_device_manager_has_serial_consoles (ply_device_manager_t *manager)
{
return manager->serial_consoles_detected;
}
static void
activate_renderer (char *device_path,
ply_renderer_t *renderer,

View file

@ -53,6 +53,7 @@ void ply_device_manager_watch_devices (ply_device_manager_t *mana
ply_text_display_added_handler_t text_display_added_handler,
ply_text_display_removed_handler_t text_display_removed_handler,
void *data);
bool ply_device_manager_has_serial_consoles (ply_device_manager_t *manager);
bool ply_device_manager_has_displays (ply_device_manager_t *manager);
ply_list_t *ply_device_manager_get_keyboards (ply_device_manager_t *manager);
ply_list_t *ply_device_manager_get_pixel_displays (ply_device_manager_t *manager);

View file

@ -1084,6 +1084,10 @@ load_devices (state_t *state,
(ply_text_display_removed_handler_t)
on_text_display_removed,
state);
if (ply_device_manager_has_serial_consoles (state->device_manager)) {
state->should_force_details = true;
}
}
static void