static void stop_animation (ply_boot_splash_plugin_t *plugin) { ply_list_node_t *node; assert (plugin != NULL); assert (plugin->loop != NULL); if (!plugin->is_animating) return; plugin->is_animating = false; node = ply_list_get_first_node (plugin->views); while (node != NULL) { ply_list_node_t *next_node; view_t *view; view = ply_list_node_get_data (node); next_node = ply_list_get_next_node (plugin->views, node); ply_text_progress_bar_hide (view->progress_bar); node = next_node; } redraw_views (plugin); }
static void view_start_animation (view_t *view) { ply_boot_splash_plugin_t *plugin; ply_terminal_t *terminal; assert (view != NULL); plugin = view->plugin; terminal = ply_text_display_get_terminal (view->display); ply_terminal_set_color_hex_value (terminal, PLY_TERMINAL_COLOR_BLACK, 0x000000); ply_terminal_set_color_hex_value (terminal, PLY_TERMINAL_COLOR_WHITE, 0xffffff); ply_terminal_set_color_hex_value (terminal, PLY_TERMINAL_COLOR_BLUE, 0x0073B3); ply_terminal_set_color_hex_value (terminal, PLY_TERMINAL_COLOR_BROWN, 0x00457E); ply_text_display_set_background_color (view->display, PLY_TERMINAL_COLOR_BLACK); ply_text_display_clear_screen (view->display); ply_text_display_hide_cursor (view->display); if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN) { ply_text_progress_bar_hide (view->progress_bar); return; } ply_text_progress_bar_show (view->progress_bar, view->display); }