new package: readd package 'plymouth-lite'

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2012-05-03 12:52:15 +02:00
parent 56d2f6f50e
commit 53a09ee822
12 changed files with 305 additions and 0 deletions

View File

@ -0,0 +1,33 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
# ensure we use size optimization.
CFLAGS=`echo $CFLAGS | sed -e "s|-O2|-Os|"`
CFLAGS=`echo $CFLAGS | sed -e "s|-O3|-Os|"`
LDFLAGS="$LDFLAGS -fwhole-program"
cd $PKG_BUILD
make

View File

@ -0,0 +1,33 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
mkdir -p $INSTALL/bin
cp $PKG_BUILD/ply-image $INSTALL/bin
mkdir -p $INSTALL/splash
if [ -f $PROJECT_DIR/$PROJECT/splash/splash.png ]; then
cp $PROJECT_DIR/$PROJECT/splash/splash.png $INSTALL/splash
else
cp $PKG_DIR/splash/splash.png $INSTALL/splash
fi

View File

@ -0,0 +1,36 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="plymouth-lite"
PKG_VERSION="0.6.0"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.meego.com"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.bz2"
PKG_DEPENDS="gcc-initramfs libpng-initramfs v86d"
PKG_BUILD_DEPENDS="toolchain libpng"
PKG_PRIORITY="optional"
PKG_SECTION="system"
PKG_SHORTDESC="plymouth-lite: Boot splash screen based on Fedora's Plymouth code"
PKG_LONGDESC="Boot splash screen based on Fedora's Plymouth code"
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"

View File

@ -0,0 +1,11 @@
--- plymouth-lite-0.6.0/ply-image.c~ 2009-03-06 16:20:52.000000000 -0800
+++ plymouth-lite-0.6.0/ply-image.c 2009-03-06 16:20:52.000000000 -0800
@@ -439,7 +439,7 @@
exit_code = 0;
-// hide_cursor ();
+ hide_cursor ();
if (argc == 1)
image = ply_image_new ("/usr/share/plymouth/splash.png");

View File

@ -0,0 +1,10 @@
--- plymouth-lite-0.6.0/Makefile~ 2009-07-22 11:22:32.000000000 -0700
+++ plymouth-lite-0.6.0/Makefile 2009-07-22 11:22:32.000000000 -0700
@@ -1,6 +1,6 @@
ply-image: ply-image.c ply-frame-buffer.c Makefile
- gcc -O2 -march=core2 -mtune=generic -lm `pkg-config --cflags libpng12` `pkg-config --libs libpng12` ply-image.c ply-frame-buffer.c -o ply-image
+ $(CC) $(CFLAGS) `pkg-config --cflags libpng` ply-image.c ply-frame-buffer.c -o ply-image -lm `pkg-config --libs libpng` -lm -lz
clean:
rm -f ply-image *~ gmon.out

View File

@ -0,0 +1,12 @@
diff -Naur plymouth-lite-0.6.0/ply-image.c plymouth-lite-0.6.0.patch/ply-image.c
--- plymouth-lite-0.6.0/ply-image.c 2009-02-19 12:16:36.000000000 +0100
+++ plymouth-lite-0.6.0.patch/ply-image.c 2010-02-08 01:30:05.336856616 +0100
@@ -220,7 +220,7 @@
png_set_palette_to_rgb (png);
if ((color_type == PNG_COLOR_TYPE_GRAY) && (bits_per_pixel < 8))
- png_set_gray_1_2_4_to_8 (png);
+ png_set_expand_gray_1_2_4_to_8 (png);
if (png_get_valid (png, info, PNG_INFO_tRNS))
png_set_tRNS_to_alpha (png);

View File

@ -0,0 +1,110 @@
diff -urN plymouth-lite-0.6.0/ply-frame-buffer.c plymouth-lite-0.6.0.change/ply-frame-buffer.c
--- plymouth-lite-0.6.0/ply-frame-buffer.c 2009-02-19 19:14:24.000000000 +0800
+++ plymouth-lite-0.6.0.change/ply-frame-buffer.c 2009-06-13 17:44:05.000000000 +0800
@@ -47,41 +47,6 @@
#define PLY_FRAME_BUFFER_DEFAULT_FB_DEVICE_NAME "/dev/fb0"
#endif
-struct _ply_frame_buffer
-{
- char *device_name;
- int device_fd;
-
- char *map_address;
- size_t size;
-
- uint32_t *shadow_buffer;
-
- uint32_t red_bit_position;
- uint32_t green_bit_position;
- uint32_t blue_bit_position;
- uint32_t alpha_bit_position;
-
- uint32_t bits_for_red;
- uint32_t bits_for_green;
- uint32_t bits_for_blue;
- uint32_t bits_for_alpha;
-
- int32_t dither_red;
- int32_t dither_green;
- int32_t dither_blue;
-
- unsigned int bytes_per_pixel;
- unsigned int row_stride;
-
- ply_frame_buffer_area_t area;
- ply_frame_buffer_area_t area_to_flush;
-
- void (*flush)(ply_frame_buffer_t *buffer);
-
- int pause_count;
-};
-
static bool ply_frame_buffer_open_device (ply_frame_buffer_t *buffer);
static void ply_frame_buffer_close_device (ply_frame_buffer_t *buffer);
static bool ply_frame_buffer_query_device (ply_frame_buffer_t *buffer);
diff -urN plymouth-lite-0.6.0/ply-frame-buffer.h plymouth-lite-0.6.0.change/ply-frame-buffer.h
--- plymouth-lite-0.6.0/ply-frame-buffer.h 2009-02-19 17:35:54.000000000 +0800
+++ plymouth-lite-0.6.0.change/ply-frame-buffer.h 2009-06-13 17:31:42.000000000 +0800
@@ -38,6 +38,41 @@
unsigned long height;
};
+struct _ply_frame_buffer
+{
+ char *device_name;
+ int device_fd;
+
+ char *map_address;
+ size_t size;
+
+ uint32_t *shadow_buffer;
+
+ uint32_t red_bit_position;
+ uint32_t green_bit_position;
+ uint32_t blue_bit_position;
+ uint32_t alpha_bit_position;
+
+ uint32_t bits_for_red;
+ uint32_t bits_for_green;
+ uint32_t bits_for_blue;
+ uint32_t bits_for_alpha;
+
+ int32_t dither_red;
+ int32_t dither_green;
+ int32_t dither_blue;
+
+ unsigned int bytes_per_pixel;
+ unsigned int row_stride;
+
+ ply_frame_buffer_area_t area;
+ ply_frame_buffer_area_t area_to_flush;
+
+ void (*flush)(ply_frame_buffer_t *buffer);
+
+ int pause_count;
+};
+
#define PLY_FRAME_BUFFER_COLOR_TO_PIXEL_VALUE(r,g,b,a) \
(((uint8_t) (CLAMP (a * 255.0, 0.0, 255.0)) << 24) \
| ((uint8_t) (CLAMP (r * 255.0, 0.0, 255.0)) << 16) \
diff -urN plymouth-lite-0.6.0/ply-image.c plymouth-lite-0.6.0.change/ply-image.c
--- plymouth-lite-0.6.0/ply-image.c 2009-02-19 19:16:36.000000000 +0800
+++ plymouth-lite-0.6.0.change/ply-image.c 2009-06-13 17:42:52.000000000 +0800
@@ -43,6 +43,7 @@
#include <png.h>
#include <linux/fb.h>
+#include "ply-frame-buffer.h"
#define MIN(a,b) ((a) <= (b)? (a) : (b))
#define MAX(a,b) ((a) >= (b)? (a) : (b))
@@ -464,6 +465,8 @@
return exit_code;
}
+ image = ply_image_resize(image, buffer->area.width, buffer->area.height);
+
animate_at_time (buffer, image);
ply_frame_buffer_close (buffer);

View File

@ -0,0 +1,60 @@
diff -Naur plymouth-lite-0.6.0/ply-frame-buffer.c plymouth-lite-0.6.0.patch/ply-frame-buffer.c
--- plymouth-lite-0.6.0/ply-frame-buffer.c 2012-05-02 22:29:21.505665089 +0200
+++ plymouth-lite-0.6.0.patch/ply-frame-buffer.c 2012-05-02 22:26:42.000000000 +0200
@@ -149,6 +149,34 @@
}
}
+static void
+flush_xbgr32 (ply_frame_buffer_t *buffer)
+{
+ unsigned long x1, y1, x2, y2, x, y;
+ char *dst, *src;
+
+ x1 = buffer->area_to_flush.x;
+ y1 = buffer->area_to_flush.y;
+ x2 = x1 + buffer->area_to_flush.width;
+ y2 = y1 + buffer->area_to_flush.height;
+
+ dst = &buffer->map_address[(y1 * buffer->row_stride + x1) * 4];
+ src = (char *) &buffer->shadow_buffer[y1 * buffer->area.width + x1];
+
+ for (y = y1; y < y2; y++)
+ {
+ for (x = x1; y < x2; x++)
+ {
+ dst[0] = src[2];
+ dst[1] = src[1];
+ dst[2] = src[0];
+ dst[3] = src[3];
+ dst += 4;
+ src += 4;
+ }
+ }
+}
+
static const char const *p_visual(int visual)
{
static const char const *visuals[] =
@@ -260,11 +288,21 @@
buffer->dither_green = 0;
buffer->dither_blue = 0;
+printf("%d,%d,%d,%d,%d,%d,%d\n", buffer->bytes_per_pixel,
+ buffer->red_bit_position, buffer->bits_for_red,
+ buffer->green_bit_position, buffer->bits_for_green,
+ buffer->blue_bit_position, buffer->bits_for_blue);
+
if (buffer->bytes_per_pixel == 4 &&
buffer->red_bit_position == 16 && buffer->bits_for_red == 8 &&
buffer->green_bit_position == 8 && buffer->bits_for_green == 8 &&
buffer->blue_bit_position == 0 && buffer->bits_for_blue == 8)
buffer->flush = flush_xrgb32;
+ else if (buffer->bytes_per_pixel == 4 &&
+ buffer->red_bit_position == 0 && buffer->bits_for_red == 8 &&
+ buffer->green_bit_position == 8 && buffer->bits_for_green == 8 &&
+ buffer->blue_bit_position == 16 && buffer->bits_for_blue == 8)
+ buffer->flush = flush_xbgr32;
else
buffer->flush = flush_generic;

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB