summaryrefslogtreecommitdiff
path: root/system/busybox/0006-fbsplash-support-image-and-bar-alignment-and-positio.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/busybox/0006-fbsplash-support-image-and-bar-alignment-and-positio.patch')
-rw-r--r--system/busybox/0006-fbsplash-support-image-and-bar-alignment-and-positio.patch185
1 files changed, 0 insertions, 185 deletions
diff --git a/system/busybox/0006-fbsplash-support-image-and-bar-alignment-and-positio.patch b/system/busybox/0006-fbsplash-support-image-and-bar-alignment-and-positio.patch
deleted file mode 100644
index 65c423178..000000000
--- a/system/busybox/0006-fbsplash-support-image-and-bar-alignment-and-positio.patch
+++ /dev/null
@@ -1,185 +0,0 @@
-From 64e2d2e495f82ef7ccc952bfa4216d1ff8ab3481 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
-Date: Fri, 21 Nov 2014 16:06:34 +0200
-Subject: [PATCH 06/11] fbsplash: support image and bar alignment and
- positioning
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Timo Teräs <timo.teras@iki.fi>
----
- miscutils/fbsplash.c | 91 +++++++++++++++++++++++++++++++++++++++++++---------
- 1 file changed, 76 insertions(+), 15 deletions(-)
-
-diff --git a/miscutils/fbsplash.c b/miscutils/fbsplash.c
-index ec5947314..34bbf81f5 100644
---- a/miscutils/fbsplash.c
-+++ b/miscutils/fbsplash.c
-@@ -53,6 +53,7 @@
- //usage: "\n -c Hide cursor"
- //usage: "\n -d Framebuffer device (default /dev/fb0)"
- //usage: "\n -i Config file (var=value):"
-+//usage: "\n IMAGE_ALIGN"
- //usage: "\n BAR_LEFT,BAR_TOP,BAR_WIDTH,BAR_HEIGHT"
- //usage: "\n BAR_R,BAR_G,BAR_B"
- //usage: "\n -f Control pipe (else exit after drawing image)"
-@@ -71,13 +72,38 @@
- /* If you want logging messages on /tmp/fbsplash.log... */
- #define DEBUG 0
-
-+enum {
-+ image_align,
-+
-+ image_posx,
-+ image_posy,
-+ bar_width,
-+ bar_height,
-+ bar_posx,
-+ bar_posy,
-+ bar_colr,
-+ bar_colg,
-+ bar_colb,
-+
-+ debug
-+};
-+
-+#define nimage_align ns[image_align]
-+#define nbar_width ns[bar_width]
-+#define nbar_height ns[bar_height]
-+#define nbar_posx ns[bar_posx]
-+#define nbar_posy ns[bar_posy]
-+#define nbar_colr ns[bar_colr]
-+#define nbar_colg ns[bar_colg]
-+#define nbar_colb ns[bar_colb]
-+
- struct globals {
- #if DEBUG
- bool bdebug_messages; // enable/disable logging
- FILE *logfile_fd; // log file
- #endif
- unsigned char *addr; // pointer to framebuffer memory
-- unsigned ns[7]; // n-parameters
-+ unsigned ns[debug+1]; // n-parameters
- const char *image_filename;
- int silent_tty, fd_tty_s;
- bool do_not_draw;
-@@ -94,14 +120,6 @@ struct globals {
- SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \
- } while (0)
-
--#define nbar_width ns[0] // progress bar width
--#define nbar_height ns[1] // progress bar height
--#define nbar_posx ns[2] // progress bar horizontal position
--#define nbar_posy ns[3] // progress bar vertical position
--#define nbar_colr ns[4] // progress bar color red component
--#define nbar_colg ns[5] // progress bar color green component
--#define nbar_colb ns[6] // progress bar color blue component
--
- #if DEBUG
- #define DEBUG_MESSAGE(strMessage, args...) \
- if (G.bdebug_messages) { \
-@@ -382,7 +400,7 @@ static void fb_drawimage(void)
- FILE *theme_file;
- char *read_ptr;
- unsigned char *pixline;
-- unsigned i, j, width, height, line_size;
-+ int i, j, width, height, line_size, xoffs, yoffs, xstart;
-
- if (LONE_DASH(G.image_filename)) {
- theme_file = stdin;
-@@ -432,18 +450,46 @@ static void fb_drawimage(void)
- line_size = width*3;
- pixline = xmalloc(line_size);
-
-+#if 0
- if (width > G.scr_var.xres)
- width = G.scr_var.xres;
- if (height > G.scr_var.yres)
- height = G.scr_var.yres;
-- for (j = 0; j < height; j++) {
-+#endif
-+
-+ xoffs = yoffs = 0;
-+ switch (G.nimage_align % 3) {
-+ case 1: xoffs = (G.scr_var.xres - width) / 2; break;
-+ case 2: xoffs = G.scr_var.xres - width; break;
-+ }
-+ xstart = 0;
-+ if (xoffs < 0) {
-+ xstart = -xoffs;
-+ width -= xstart;
-+ xoffs = 0;
-+ }
-+ xoffs *= G.bytes_per_pixel;
-+ if (width > G.scr_var.xres)
-+ width = G.scr_var.xres;
-+
-+ switch (G.nimage_align / 3) {
-+ case 1: yoffs = (G.scr_var.yres - height) / 2; break;
-+ case 2: yoffs = G.scr_var.yres - height; break;
-+ }
-+
-+ for (j = 0; j < height && yoffs < G.scr_var.yres; j++, yoffs++) {
- unsigned char *pixel;
- unsigned char *src;
-
- if (fread(pixline, 1, line_size, theme_file) != line_size)
- bb_error_msg_and_die("bad PPM file '%s'", G.image_filename);
-+
-+ if (yoffs < 0)
-+ continue;
-+
- pixel = pixline;
-- src = G.addr + j * G.scr_fix.line_length;
-+ src = G.addr + yoffs * G.scr_fix.line_length + xoffs;
-+
- for (i = 0; i < width; i++) {
- unsigned thispix = fb_pixel_value(pixel[0], pixel[1], pixel[2]);
- fb_write_pixel(src, thispix);
-@@ -462,9 +508,17 @@ static void fb_drawimage(void)
- */
- static void init(const char *cfg_filename)
- {
-+ static const char align_names[] ALIGN1 =
-+ "LT\0" "CT\0" "RT\0"
-+ "LM\0" "CM\0" "RM\0"
-+ "LB\0" "CB\0" "RB\0";
- static const char param_names[] ALIGN1 =
-+ "IMAGE_ALIGN\0"
-+
-+ "IMAGE_X\0" "IMAGE_Y\0"
- "BAR_WIDTH\0" "BAR_HEIGHT\0"
- "BAR_LEFT\0" "BAR_TOP\0"
-+
- "BAR_R\0" "BAR_G\0" "BAR_B\0"
- #if DEBUG
- "DEBUG\0"
-@@ -474,14 +528,21 @@ static void init(const char *cfg_filename)
- parser_t *parser = config_open2(cfg_filename, xfopen_stdin);
- while (config_read(parser, token, 2, 2, "#=",
- (PARSE_NORMAL | PARSE_MIN_DIE) & ~(PARSE_TRIM | PARSE_COLLAPSE))) {
-- unsigned val = xatoi_positive(token[1]);
-+ unsigned val;
- int i = index_in_strings(param_names, token[0]);
-+
- if (i < 0)
- bb_error_msg_and_die("syntax error: %s", token[0]);
-- if (i >= 0 && i < 7)
-+
-+ if (i <= image_align)
-+ val = index_in_strings(align_names, token[1]);
-+ else
-+ val = xatoi_positive(token[1]);
-+
-+ if (i < debug)
- G.ns[i] = val;
- #if DEBUG
-- if (i == 7) {
-+ if (i == debug) {
- G.bdebug_messages = val;
- if (G.bdebug_messages)
- G.logfile_fd = xfopen_for_write("/tmp/fbsplash.log");
---
-2.13.2
-