- plymouth-0.5.0-textbar-hotness.patch: Change the text plugin to a
slightly more traditional progress bar, to maintain the illusion of progress better than the eternally oscillating cylon. Note: still incomplete.
This commit is contained in:
parent
ef8950b22a
commit
85425912a9
212
plymouth-0.5.0-textbar-hotness.patch
Normal file
212
plymouth-0.5.0-textbar-hotness.patch
Normal file
@ -0,0 +1,212 @@
|
||||
diff -up plymouth-0.5.0/src/libplybootsplash/ply-text-pulser.c.jx plymouth-0.5.0/src/libplybootsplash/ply-text-pulser.c
|
||||
--- plymouth-0.5.0/src/libplybootsplash/ply-text-pulser.c.jx 2008-06-30 17:51:25.000000000 -0400
|
||||
+++ plymouth-0.5.0/src/libplybootsplash/ply-text-pulser.c 2008-08-12 12:44:42.000000000 -0400
|
||||
@@ -50,7 +50,7 @@
|
||||
#include <linux/kd.h>
|
||||
|
||||
#ifndef FRAMES_PER_SECOND
|
||||
-#define FRAMES_PER_SECOND 10
|
||||
+#define FRAMES_PER_SECOND 5
|
||||
#endif
|
||||
|
||||
#define NUMBER_OF_INDICATOR_COLUMNS 6
|
||||
@@ -75,13 +75,11 @@ ply_text_pulser_new (void)
|
||||
|
||||
pulser = calloc (1, sizeof (ply_text_pulser_t));
|
||||
|
||||
- pulser->number_of_rows = 0;
|
||||
- pulser->number_of_columns = 0;
|
||||
pulser->row = 0;
|
||||
pulser->column = 0;
|
||||
pulser->spinner_position = 0;
|
||||
- pulser->number_of_columns = 40;
|
||||
- pulser->number_of_rows = 1;
|
||||
+ pulser->number_of_columns = 0;
|
||||
+ pulser->number_of_rows = 0;
|
||||
|
||||
return pulser;
|
||||
}
|
||||
@@ -95,42 +93,71 @@ ply_text_pulser_free (ply_text_pulser_t
|
||||
free (pulser);
|
||||
}
|
||||
|
||||
-static void
|
||||
-draw_trough (ply_text_pulser_t *pulser,
|
||||
- int column,
|
||||
- int row)
|
||||
-{
|
||||
- char *bytes;
|
||||
-
|
||||
- ply_window_set_text_cursor_position (pulser->window,
|
||||
- column,
|
||||
- row);
|
||||
- ply_window_set_background_color (pulser->window, PLY_WINDOW_COLOR_BROWN);
|
||||
- bytes = malloc (pulser->number_of_columns);
|
||||
- memset (bytes, ' ', pulser->number_of_columns);
|
||||
- write (STDOUT_FILENO, bytes, pulser->number_of_columns);
|
||||
- free (bytes);
|
||||
+/* Hi Will! */
|
||||
+static double
|
||||
+woodsify(double time, double estimate)
|
||||
+{
|
||||
+ return 1.0 - pow(2.0, -pow(time, 1.45) / estimate);
|
||||
}
|
||||
|
||||
+#define STARTUP_TIME 20.0
|
||||
+#define OS_STRING " Fedora 10"
|
||||
+
|
||||
static void
|
||||
animate_at_time (ply_text_pulser_t *pulser,
|
||||
double time)
|
||||
{
|
||||
- ply_window_set_mode (pulser->window, PLY_WINDOW_MODE_TEXT);
|
||||
+ int i, width = pulser->number_of_columns - 2 - strlen(OS_STRING);
|
||||
+ double brown_fraction, blue_fraction, white_fraction;
|
||||
+
|
||||
+ ply_window_set_mode (pulser->window, PLY_WINDOW_MODE_TEXT);
|
||||
+ ply_window_set_text_cursor_position(pulser->window,
|
||||
+ pulser->column,
|
||||
+ pulser->row);
|
||||
+
|
||||
+ brown_fraction = woodsify(time, STARTUP_TIME);
|
||||
+ blue_fraction = woodsify(time, STARTUP_TIME / brown_fraction);
|
||||
+ white_fraction = woodsify(time, STARTUP_TIME / blue_fraction);
|
||||
+
|
||||
+ for (i = 0; i < width; i += 1) {
|
||||
+ double f = (double)i / (double)width;
|
||||
+ if (f < white_fraction)
|
||||
+ ply_window_set_background_color (pulser->window,
|
||||
+ PLY_WINDOW_COLOR_WHITE);
|
||||
+ else if (f < blue_fraction)
|
||||
+ ply_window_set_background_color (pulser->window,
|
||||
+ PLY_WINDOW_COLOR_BLUE);
|
||||
+ else if (f < brown_fraction)
|
||||
+ ply_window_set_background_color (pulser->window,
|
||||
+ PLY_WINDOW_COLOR_BROWN);
|
||||
+ else break;
|
||||
|
||||
- draw_trough (pulser, pulser->column, pulser->row);
|
||||
+ write (STDOUT_FILENO, " ", strlen (" "));
|
||||
+ }
|
||||
|
||||
- ply_window_set_text_cursor_position (pulser->window,
|
||||
- pulser->column + pulser->spinner_position,
|
||||
- pulser->row);
|
||||
- pulser->spinner_position = (pulser->number_of_columns - strlen (" ") + 1) * (.5 * sin (time) + .5);
|
||||
- ply_window_set_text_cursor_position (pulser->window,
|
||||
- pulser->column + pulser->spinner_position,
|
||||
- pulser->row);
|
||||
-
|
||||
- ply_window_set_background_color (pulser->window, PLY_WINDOW_COLOR_GREEN);
|
||||
- write (STDOUT_FILENO, " ", strlen (" "));
|
||||
- ply_window_set_background_color (pulser->window, PLY_WINDOW_COLOR_DEFAULT);
|
||||
+ ply_window_set_background_color (pulser->window, PLY_WINDOW_COLOR_BLACK);
|
||||
+
|
||||
+ if (brown_fraction > 0.5) {
|
||||
+ if (white_fraction > 0.875)
|
||||
+ ply_window_set_foreground_color (pulser->window,
|
||||
+ PLY_WINDOW_COLOR_WHITE);
|
||||
+ else if (blue_fraction > 0.66)
|
||||
+ ply_window_set_foreground_color (pulser->window,
|
||||
+ PLY_WINDOW_COLOR_BLUE);
|
||||
+ else
|
||||
+ ply_window_set_foreground_color (pulser->window,
|
||||
+ PLY_WINDOW_COLOR_BROWN);
|
||||
+
|
||||
+ ply_window_set_text_cursor_position(pulser->window,
|
||||
+ pulser->column + width,
|
||||
+ pulser->row);
|
||||
+
|
||||
+
|
||||
+ write (STDOUT_FILENO, OS_STRING, strlen(OS_STRING));
|
||||
+
|
||||
+ ply_window_set_foreground_color (pulser->window,
|
||||
+ PLY_WINDOW_COLOR_DEFAULT);
|
||||
+ }
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -161,9 +188,7 @@ on_timeout (ply_text_pulser_t *pulser)
|
||||
bool
|
||||
ply_text_pulser_start (ply_text_pulser_t *pulser,
|
||||
ply_event_loop_t *loop,
|
||||
- ply_window_t *window,
|
||||
- int column,
|
||||
- int row)
|
||||
+ ply_window_t *window)
|
||||
{
|
||||
assert (pulser != NULL);
|
||||
assert (pulser->loop == NULL);
|
||||
@@ -171,8 +196,10 @@ ply_text_pulser_start (ply_text_pulser_t
|
||||
pulser->loop = loop;
|
||||
pulser->window = window;
|
||||
|
||||
- pulser->row = row;
|
||||
- pulser->column = column;
|
||||
+ pulser->number_of_rows = ply_window_get_number_of_text_rows(window);
|
||||
+ pulser->row = pulser->number_of_rows - 1;
|
||||
+ pulser->number_of_columns = ply_window_get_number_of_text_columns(window);
|
||||
+ pulser->column = 2;
|
||||
|
||||
pulser->start_time = ply_get_timestamp ();
|
||||
|
||||
diff -up plymouth-0.5.0/src/libplybootsplash/ply-text-pulser.h.jx plymouth-0.5.0/src/libplybootsplash/ply-text-pulser.h
|
||||
--- plymouth-0.5.0/src/libplybootsplash/ply-text-pulser.h.jx 2008-06-21 23:48:59.000000000 -0400
|
||||
+++ plymouth-0.5.0/src/libplybootsplash/ply-text-pulser.h 2008-08-12 12:36:51.000000000 -0400
|
||||
@@ -38,9 +38,7 @@ void ply_text_pulser_free (ply_text_puls
|
||||
bool ply_text_pulser_load (ply_text_pulser_t *pulser);
|
||||
bool ply_text_pulser_start (ply_text_pulser_t *pulser,
|
||||
ply_event_loop_t *loop,
|
||||
- ply_window_t *window,
|
||||
- int column,
|
||||
- int row);
|
||||
+ ply_window_t *window);
|
||||
void ply_text_pulser_stop (ply_text_pulser_t *pulser);
|
||||
|
||||
int ply_text_pulser_get_number_of_rows (ply_text_pulser_t *pulser);
|
||||
diff -up plymouth-0.5.0/src/splash-plugins/text/plugin.c.jx plymouth-0.5.0/src/splash-plugins/text/plugin.c
|
||||
--- plymouth-0.5.0/src/splash-plugins/text/plugin.c.jx 2008-07-29 15:15:51.000000000 -0400
|
||||
+++ plymouth-0.5.0/src/splash-plugins/text/plugin.c 2008-08-12 12:36:51.000000000 -0400
|
||||
@@ -105,28 +105,33 @@ start_animation (ply_boot_splash_plugin_
|
||||
assert (plugin->loop != NULL);
|
||||
|
||||
ply_window_set_color_hex_value (plugin->window,
|
||||
+ PLY_WINDOW_COLOR_BLACK,
|
||||
+ 0x000000);
|
||||
+ ply_window_set_color_hex_value (plugin->window,
|
||||
+ PLY_WINDOW_COLOR_WHITE,
|
||||
+ 0xffffff);
|
||||
+ ply_window_set_color_hex_value (plugin->window,
|
||||
+ PLY_WINDOW_COLOR_BLUE,
|
||||
+ 0x0073B3);
|
||||
+ ply_window_set_color_hex_value (plugin->window,
|
||||
PLY_WINDOW_COLOR_BROWN,
|
||||
- PLYMOUTH_BACKGROUND_END_COLOR);
|
||||
+ 0x00457E);
|
||||
+#if 0
|
||||
ply_window_set_color_hex_value (plugin->window,
|
||||
PLY_WINDOW_COLOR_BLUE,
|
||||
PLYMOUTH_BACKGROUND_START_COLOR);
|
||||
ply_window_set_color_hex_value (plugin->window,
|
||||
PLY_WINDOW_COLOR_GREEN,
|
||||
PLYMOUTH_BACKGROUND_COLOR);
|
||||
+#endif
|
||||
|
||||
- ply_window_set_background_color (plugin->window, PLY_WINDOW_COLOR_BLUE);
|
||||
+ ply_window_set_background_color (plugin->window, PLY_WINDOW_COLOR_BLACK);
|
||||
ply_window_clear_screen (plugin->window);
|
||||
ply_window_hide_text_cursor (plugin->window);
|
||||
|
||||
- window_width = ply_window_get_number_of_text_columns (plugin->window);
|
||||
- window_height = ply_window_get_number_of_text_rows (plugin->window);
|
||||
- width = ply_text_pulser_get_number_of_columns (plugin->pulser);
|
||||
- height = ply_text_pulser_get_number_of_rows (plugin->pulser);
|
||||
ply_text_pulser_start (plugin->pulser,
|
||||
plugin->loop,
|
||||
- plugin->window,
|
||||
- window_width / 2.0 - width / 2.0,
|
||||
- window_height / 2.0 - height / 2.0);
|
||||
+ plugin->window);
|
||||
}
|
||||
|
||||
static void
|
@ -1,13 +1,15 @@
|
||||
Summary: Plymouth Graphical Boot Animation and Logger
|
||||
Name: plymouth
|
||||
Version: 0.5.0
|
||||
Release: 14.2008.08.08%{?dist}
|
||||
Release: 15.2008.08.08%{?dist}
|
||||
License: GPLv2+
|
||||
Group: System Environment/Base
|
||||
Source0: http://freedesktop.org/software/plymouth/releases/%{name}-%{version}.tar.bz2
|
||||
URL: http://freedesktop.org/software/plymouth/releases
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
|
||||
Patch0: plymouth-0.5.0-textbar-hotness.patch
|
||||
|
||||
Obsoletes: rhgb < 1:10.0.0
|
||||
Provides: rhgb = 1:10.0.0
|
||||
|
||||
@ -67,6 +69,7 @@ spins in the shape of an infinity sign.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1 -b .textbar
|
||||
|
||||
%build
|
||||
%configure --enable-tracing --disable-tests --without-boot-entry \
|
||||
@ -174,6 +177,11 @@ fi
|
||||
%{_libdir}/plymouth/spinfinity.so
|
||||
|
||||
%changelog
|
||||
* Tue Aug 12 2008 Adam Jackson <ajax@redhat.com> 0.5.0-15.2008.08.08
|
||||
- plymouth-0.5.0-textbar-hotness.patch: Change the text plugin to a slightly
|
||||
more traditional progress bar, to maintain the illusion of progress better
|
||||
than the eternally oscillating cylon. Note: still incomplete.
|
||||
|
||||
* Fri Aug 8 2008 Ray Strode <rstrode@redhat.com> - 0.5.0-14.2008.08.08
|
||||
- Don't require a modifiable text color map (may fix serial consoles)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user