mirror of
git://projects.qi-hardware.com/openwrt-packages.git
synced 2024-12-22 08:54:37 +02:00
liballegro: add png, jpeg image and ogg/vorbis audio file addons
This commit is contained in:
parent
115dfe5f70
commit
088d3e7b1d
@ -7,11 +7,11 @@ Subject: [PATCH 2/2] disable-mouse
|
||||
src/display.c | 4 ++++
|
||||
1 files changed, 4 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/src/display.c b/src/display.c
|
||||
index c2e4d56..dddd9f0 100644
|
||||
--- a/src/display.c
|
||||
+++ b/src/display.c
|
||||
@@ -114,6 +114,10 @@ bard_display *bard_display_open(cst_features *config)
|
||||
Index: bard-0.7-current/src/display.c
|
||||
===================================================================
|
||||
--- bard-0.7-current.orig/src/display.c 2012-03-22 03:13:47.146200911 +0100
|
||||
+++ bard-0.7-current/src/display.c 2012-03-22 03:14:52.574435005 +0100
|
||||
@@ -114,6 +114,10 @@
|
||||
/* unless you move it */
|
||||
SDL_ShowCursor(SDL_DISABLE);
|
||||
|
||||
@ -22,6 +22,3 @@ index c2e4d56..dddd9f0 100644
|
||||
return display;
|
||||
}
|
||||
|
||||
--
|
||||
1.7.5.4
|
||||
|
||||
|
@ -72,6 +72,44 @@ $(call Package/liballegro/Default/description)
|
||||
This package contains various data files that are used by the Allegro library.
|
||||
endef
|
||||
|
||||
define Package/liballegro-png
|
||||
$(call Package/liballegro/Default)
|
||||
TITLE+= (PNG image support)
|
||||
DEPENDS:=+liballegro +zlib +libpng
|
||||
endef
|
||||
|
||||
define Package/liballegro-png/description
|
||||
$(call Package/liballegro/Default/description)
|
||||
This package contains the libloadpng addon that allows interfacing allegro
|
||||
Bitmaps with PNG files. Although the name of the library suggests otherwise
|
||||
saving to PNG is supported as well as loading PNG files.
|
||||
endef
|
||||
|
||||
# note: jpgalleg contains its own jpeg implementation; libjpeg not needed!
|
||||
define Package/liballegro-jpeg
|
||||
$(call Package/liballegro/Default)
|
||||
TITLE+= (JPEG image support)
|
||||
DEPENDS:=+liballegro
|
||||
endef
|
||||
|
||||
define Package/liballegro-jpeg/description
|
||||
$(call Package/liballegro/Default/description)
|
||||
This package contains the libjpgalleg addon that allows interfacing allegro
|
||||
Bitmaps with JPEG files. Saving to JPEG files is supported as well as loading.
|
||||
endef
|
||||
|
||||
define Package/liballegro-ogg
|
||||
$(call Package/liballegro/Default)
|
||||
TITLE+= (Ogg/Vorbis audio support)
|
||||
DEPENDS:=+liballegro +libvorbisidec +libogg
|
||||
endef
|
||||
|
||||
define Package/liballegro-ogg/description
|
||||
$(call Package/liballegro/Default/description)
|
||||
This package contains the liblogg addon that allows play-back and mixing of
|
||||
background music from Ogg Vorbis audio files.
|
||||
endef
|
||||
|
||||
define Package/liballegro-demo
|
||||
$(call Package/liballegro/Default)
|
||||
TITLE+= (demo)
|
||||
@ -171,28 +209,31 @@ endif
|
||||
EXTRA_CFLAGS = -DSETUP_SCREEN_W=320 -DSETUP_SCREEN_H=240 -DSETUP_CFG_FILE=\\\"/etc/allegrorc\\\"
|
||||
TARGET_LDFLAGS = -L$(STAGING_DIR)/usr/lib -ldl -lrt
|
||||
|
||||
CMAKE_OPTIONS = \
|
||||
-DRT_LIBRARY= \
|
||||
-DALLEGRO_USE_CONSTRUCTOR_EXITCODE=0 \
|
||||
-DRT_LIBRARY= \
|
||||
-DDL_LIBRARY= \
|
||||
-DWANT_TOOLS=on \
|
||||
-DWANT_TESTS=on \
|
||||
-DWANT_MODULES=on \
|
||||
-DWANT_EXAMPLES=on \
|
||||
-DWANT_ALLEGROGL=off \
|
||||
-DWANT_LOADPNG=on \
|
||||
-DWANT_LOGG=off \
|
||||
-DWANT_JPGALLEG=off \
|
||||
-DWANT_X11=off \
|
||||
-DWANT_LINUX_CONSOLE=on \
|
||||
-DWANT_LINUX_FBCON=on \
|
||||
-DWANT_LINUX_VGA=off \
|
||||
-DWANT_LINUX_SVGALIB=off \
|
||||
-DWANT_ALSA=on \
|
||||
-DWANT_OSS=off \
|
||||
-DWANT_JACK=off \
|
||||
-DWANT_SGIAUDIO=off
|
||||
CMAKE_OPTIONS = \
|
||||
-DRT_LIBRARY= \
|
||||
-DALLEGRO_USE_CONSTRUCTOR_EXITCODE=0 \
|
||||
-DRT_LIBRARY= \
|
||||
-DDL_LIBRARY= \
|
||||
-DWANT_TOOLS=on \
|
||||
-DWANT_TESTS=on \
|
||||
-DWANT_MODULES=on \
|
||||
-DWANT_EXAMPLES=on \
|
||||
-DWANT_ALLEGROGL=off \
|
||||
-DWANT_X11=off \
|
||||
-DWANT_LINUX_CONSOLE=on \
|
||||
-DWANT_LINUX_FBCON=on \
|
||||
-DWANT_LINUX_VGA=off \
|
||||
-DWANT_LINUX_SVGALIB=off \
|
||||
-DWANT_ALSA=on \
|
||||
-DWANT_OSS=off \
|
||||
-DWANT_JACK=off \
|
||||
-DWANT_SGIAUDIO=off \
|
||||
-DWANT_LOADPNG=$(if $(CONFIG_PACKAGE_liballegro-png),on,off) \
|
||||
-DWANT_JPGALLEG=$(if $(CONFIG_PACKAGE_liballegro-jpeg),on,off) \
|
||||
-DWANT_LOGG=$(if $(CONFIG_PACKAGE_liballegro-ogg),on,off)
|
||||
|
||||
# todo: patch CMakeLists.txt to force addons to be compiled as shared libs?
|
||||
# -DADDON_LINKAGE=SHARED
|
||||
|
||||
MAKE_FLAGS += -j4
|
||||
|
||||
@ -219,6 +260,8 @@ define Build/InstallDev
|
||||
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so* \
|
||||
$(1)/usr/lib/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.a \
|
||||
$(1)/usr/lib/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* \
|
||||
$(1)/usr/lib/pkgconfig/
|
||||
# $(SED) 's,-I$$$${includedir},,g' $(1)/usr/lib/pkgconfig/plplotd.pc
|
||||
@ -226,8 +269,9 @@ define Build/InstallDev
|
||||
endef
|
||||
|
||||
define Package/liballegro/install
|
||||
$(INSTALL_DIR) $(1)/usr $(1)/etc
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib $(1)/usr
|
||||
$(INSTALL_DIR) $(1)/usr/lib $(1)/etc
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/liballeg* $(1)/usr/lib/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/allegro $(1)/usr/lib/
|
||||
$(CP) ./files/allegrorc $(1)/etc/
|
||||
endef
|
||||
|
||||
@ -242,6 +286,21 @@ define Package/liballegro-data/install
|
||||
$(1)/usr/share/allegro/docs/src
|
||||
endef
|
||||
|
||||
define Package/liballegro-png/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libloadpng* $(1)/usr/lib/
|
||||
endef
|
||||
|
||||
define Package/liballegro-jpeg/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libjpgalleg* $(1)/usr/lib/
|
||||
endef
|
||||
|
||||
define Package/liballegro-ogg/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/liblogg* $(1)/usr/lib/
|
||||
endef
|
||||
|
||||
define Package/liballegro-demo/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(INSTALL_DIR) $(1)/usr/share/allegro
|
||||
@ -274,6 +333,9 @@ endef
|
||||
$(eval $(call HostBuild))
|
||||
$(eval $(call BuildPackage,liballegro))
|
||||
$(eval $(call BuildPackage,liballegro-data))
|
||||
$(eval $(call BuildPackage,liballegro-png))
|
||||
$(eval $(call BuildPackage,liballegro-jpeg))
|
||||
$(eval $(call BuildPackage,liballegro-ogg))
|
||||
$(eval $(call BuildPackage,liballegro-demo))
|
||||
$(eval $(call BuildPackage,liballegro-setup))
|
||||
$(eval $(call BuildPackage,liballegro-examples))
|
||||
|
100
liballegro/patches/070-use-integer-vorbisdec.patch
Normal file
100
liballegro/patches/070-use-integer-vorbisdec.patch
Normal file
@ -0,0 +1,100 @@
|
||||
Index: allegro-4.4.2/cmake/FindVorbis.cmake
|
||||
===================================================================
|
||||
--- allegro-4.4.2.orig/cmake/FindVorbis.cmake 2012-03-30 23:59:08.149052027 +0200
|
||||
+++ allegro-4.4.2/cmake/FindVorbis.cmake 2012-03-31 00:02:35.209665654 +0200
|
||||
@@ -11,10 +11,10 @@
|
||||
set(VORBIS_FIND_QUIETLY TRUE)
|
||||
endif(VORBIS_INCLUDE_DIR)
|
||||
find_path(OGG_INCLUDE_DIR ogg/ogg.h)
|
||||
- find_path(VORBIS_INCLUDE_DIR vorbis/vorbisfile.h)
|
||||
+ find_path(VORBIS_INCLUDE_DIR tremor/ivorbisfile.h)
|
||||
find_library(OGG_LIBRARY NAMES ogg)
|
||||
- find_library(VORBIS_LIBRARY NAMES vorbis)
|
||||
- find_library(VORBISFILE_LIBRARY NAMES vorbisfile)
|
||||
+ find_library(VORBIS_LIBRARY NAMES vorbisidec)
|
||||
+ find_library(VORBISFILE_LIBRARY NAMES vorbisidec)
|
||||
# Handle the QUIETLY and REQUIRED arguments and set VORBIS_FOUND
|
||||
# to TRUE if all listed variables are TRUE.
|
||||
include(FindPackageHandleStandardArgs)
|
||||
Index: allegro-4.4.2/addons/logg/logg.h
|
||||
===================================================================
|
||||
--- allegro-4.4.2.orig/addons/logg/logg.h 2012-03-31 00:03:37.965850709 +0200
|
||||
+++ allegro-4.4.2/addons/logg/logg.h 2012-03-31 00:05:19.486149188 +0200
|
||||
@@ -6,7 +6,7 @@
|
||||
#endif
|
||||
|
||||
#include <allegro.h>
|
||||
-#include <vorbis/vorbisfile.h>
|
||||
+#include <tremor/ivorbisfile.h>
|
||||
|
||||
#define OGG_PAGES_TO_BUFFER 2
|
||||
|
||||
Index: allegro-4.4.2/addons/logg/logg.c
|
||||
===================================================================
|
||||
--- allegro-4.4.2.orig/addons/logg/logg.c 2012-03-30 23:59:16.901078061 +0200
|
||||
+++ allegro-4.4.2/addons/logg/logg.c 2012-03-31 00:52:21.628986644 +0200
|
||||
@@ -14,6 +14,20 @@
|
||||
|
||||
static int logg_bufsize = 1024*64;
|
||||
|
||||
+/* convert samples from signed (tremor) to unsigned (allegro). from and to
|
||||
+ * are allowed to refer to the same memory. */
|
||||
+static void logg_from_signed(const char *from, char *to, int nbytes)
|
||||
+{
|
||||
+ const unsigned short *src = (const unsigned short*)from;
|
||||
+ unsigned short *dst = (unsigned short*)to;
|
||||
+ int i;
|
||||
+
|
||||
+ for (i = 0; i < nbytes; i += 2)
|
||||
+ {
|
||||
+ *dst++ = *src++ + 0x8000;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
SAMPLE* logg_load(const char* filename)
|
||||
{
|
||||
OggVorbis_File ovf;
|
||||
@@ -32,7 +46,7 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
- if (ov_open_callbacks(file, &ovf, 0, 0, OV_CALLBACKS_DEFAULT) != 0) {
|
||||
+ if (ov_open(file, &ovf, 0, 0) != 0) {
|
||||
strncpy(allegro_error, "ov_open_callbacks failed.", ALLEGRO_ERROR_SIZE);
|
||||
fclose(file);
|
||||
free(buf);
|
||||
@@ -57,9 +71,10 @@
|
||||
samp->loop_end = samp->len;
|
||||
samp->data = _al_malloc(sizeof(unsigned short) * samp->len * 2);
|
||||
|
||||
+ /* todo: need to convert to unsigned samples */
|
||||
while ((numRead = ov_read(&ovf, buf, logg_bufsize,
|
||||
- ENDIANNESS, 2, 0, &bitstream)) != 0) {
|
||||
- memcpy((unsigned char*)samp->data+offset, buf, numRead);
|
||||
+ &bitstream)) != 0) {
|
||||
+ logg_from_signed(buf, (unsigned char*)samp->data+offset, numRead);
|
||||
offset += numRead;
|
||||
}
|
||||
|
||||
@@ -91,7 +106,7 @@
|
||||
return 1;
|
||||
}
|
||||
|
||||
- if (ov_open_callbacks(file, &s->ovf, 0, 0, OV_CALLBACKS_DEFAULT) != 0) {
|
||||
+ if (ov_open(file, &s->ovf, 0, 0) != 0) {
|
||||
strncpy(allegro_error, "ov_open_callbacks failed.", ALLEGRO_ERROR_SIZE);
|
||||
fclose(file);
|
||||
return 1;
|
||||
@@ -119,9 +134,10 @@
|
||||
memset(s->buf[page], 0, logg_bufsize);
|
||||
|
||||
while (read < logg_bufsize) {
|
||||
+ /* todo: need to convert to unsigned samples */
|
||||
int thisRead = ov_read(&s->ovf, s->buf[page]+read,
|
||||
- logg_bufsize-read,
|
||||
- ENDIANNESS, 2, 0, &bitstream);
|
||||
+ logg_bufsize-read, &bitstream);
|
||||
+ logg_from_signed(s->buf[page]+read,s->buf[page]+read,thisRead);
|
||||
if (thisRead == 0) {
|
||||
if (s->loop) {
|
||||
ov_clear(&s->ovf);
|
126
liballegro/patches/080-addons-gfx-mode.patch
Normal file
126
liballegro/patches/080-addons-gfx-mode.patch
Normal file
@ -0,0 +1,126 @@
|
||||
Index: allegro-4.4.2/addons/jpgalleg/examples/ex1.c
|
||||
===================================================================
|
||||
--- allegro-4.4.2.orig/addons/jpgalleg/examples/ex1.c 2012-03-31 00:56:40.394446398 +0200
|
||||
+++ allegro-4.4.2/addons/jpgalleg/examples/ex1.c 2012-03-31 00:56:55.266529285 +0200
|
||||
@@ -21,7 +21,7 @@
|
||||
jpgalleg_init();
|
||||
|
||||
set_color_depth(32);
|
||||
- if (set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0)) {
|
||||
+ if (set_gfx_mode(GFX_AUTODETECT, 320, 240, 0, 0)) {
|
||||
set_color_depth(16);
|
||||
if (set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0)) {
|
||||
set_color_depth(15);
|
||||
Index: allegro-4.4.2/addons/jpgalleg/examples/ex3.c
|
||||
===================================================================
|
||||
--- allegro-4.4.2.orig/addons/jpgalleg/examples/ex3.c 2012-03-31 00:56:40.594447513 +0200
|
||||
+++ allegro-4.4.2/addons/jpgalleg/examples/ex3.c 2012-03-31 00:57:35.398752424 +0200
|
||||
@@ -21,7 +21,7 @@
|
||||
jpgalleg_init();
|
||||
|
||||
set_color_depth(32);
|
||||
- if (set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0)) {
|
||||
+ if (set_gfx_mode(GFX_AUTODETECT, 320, 240, 0, 0)) {
|
||||
set_color_depth(16);
|
||||
if (set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0)) {
|
||||
set_color_depth(15);
|
||||
Index: allegro-4.4.2/addons/jpgalleg/examples/ex4.c
|
||||
===================================================================
|
||||
--- allegro-4.4.2.orig/addons/jpgalleg/examples/ex4.c 2012-03-31 00:56:40.698448093 +0200
|
||||
+++ allegro-4.4.2/addons/jpgalleg/examples/ex4.c 2012-03-31 00:57:43.386796746 +0200
|
||||
@@ -22,7 +22,7 @@
|
||||
jpgalleg_init();
|
||||
|
||||
set_color_depth(32);
|
||||
- if (set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0)) {
|
||||
+ if (set_gfx_mode(GFX_AUTODETECT, 320, 240, 0, 0)) {
|
||||
set_color_depth(16);
|
||||
if (set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0)) {
|
||||
set_color_depth(15);
|
||||
Index: allegro-4.4.2/addons/jpgalleg/examples/ex5.c
|
||||
===================================================================
|
||||
--- allegro-4.4.2.orig/addons/jpgalleg/examples/ex5.c 2012-03-31 00:56:40.814448739 +0200
|
||||
+++ allegro-4.4.2/addons/jpgalleg/examples/ex5.c 2012-03-31 00:57:55.634864647 +0200
|
||||
@@ -336,7 +336,7 @@
|
||||
mode = GFX_AUTODETECT_WINDOWED;
|
||||
|
||||
set_color_depth(32);
|
||||
- if (set_gfx_mode(mode, 640, 480, 0, 0)) {
|
||||
+ if (set_gfx_mode(mode, 320, 240, 0, 0)) {
|
||||
set_color_depth(16);
|
||||
if (set_gfx_mode(mode, 640, 480, 0, 0)) {
|
||||
set_color_depth(15);
|
||||
Index: allegro-4.4.2/addons/loadpng/examples/exalpha.c
|
||||
===================================================================
|
||||
--- allegro-4.4.2.orig/addons/loadpng/examples/exalpha.c 2012-03-31 00:56:25.270361994 +0200
|
||||
+++ allegro-4.4.2/addons/loadpng/examples/exalpha.c 2012-03-31 00:58:26.647036250 +0200
|
||||
@@ -29,7 +29,7 @@
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
BITMAP *fg;
|
||||
- int depth = 16;
|
||||
+ int depth = 32;
|
||||
const char *file;
|
||||
|
||||
allegro_init();
|
||||
@@ -54,9 +54,9 @@
|
||||
}
|
||||
|
||||
set_color_depth(depth);
|
||||
- if ((set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0) < 0) &&
|
||||
- (set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0) < 0)) {
|
||||
- allegro_message("Unable to set video mode (640x480x%d).\n", depth);
|
||||
+ if ((set_gfx_mode(GFX_AUTODETECT_WINDOWED, 320, 240, 0, 0) < 0) &&
|
||||
+ (set_gfx_mode(GFX_AUTODETECT, 320, 240, 0, 0) < 0)) {
|
||||
+ allegro_message("Unable to set video mode (320x240x%d).\n", depth);
|
||||
return 1;
|
||||
}
|
||||
|
||||
Index: allegro-4.4.2/addons/loadpng/examples/example.c
|
||||
===================================================================
|
||||
--- allegro-4.4.2.orig/addons/loadpng/examples/example.c 2012-03-31 00:56:25.374362575 +0200
|
||||
+++ allegro-4.4.2/addons/loadpng/examples/example.c 2012-03-31 00:58:42.259122465 +0200
|
||||
@@ -13,7 +13,7 @@
|
||||
char *filename;
|
||||
BITMAP *bmp;
|
||||
PALETTE pal;
|
||||
- int depth = 16;
|
||||
+ int depth = 32;
|
||||
|
||||
/* Initialise Allegro. */
|
||||
allegro_init();
|
||||
@@ -34,8 +34,8 @@
|
||||
|
||||
/* Set a suitable graphics mode. */
|
||||
set_color_depth(depth);
|
||||
- if ((set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0) < 0) &&
|
||||
- (set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0) < 0)) {
|
||||
+ if ((set_gfx_mode(GFX_AUTODETECT_WINDOWED, 320, 240, 0, 0) < 0) &&
|
||||
+ (set_gfx_mode(GFX_AUTODETECT, 320, 240, 0, 0) < 0)) {
|
||||
allegro_message("Error setting video mode (640x480x%d).\n", depth);
|
||||
return 1;
|
||||
}
|
||||
Index: allegro-4.4.2/addons/loadpng/examples/exdata.c
|
||||
===================================================================
|
||||
--- allegro-4.4.2.orig/addons/loadpng/examples/exdata.c 2012-03-31 00:56:25.474363134 +0200
|
||||
+++ allegro-4.4.2/addons/loadpng/examples/exdata.c 2012-03-31 00:59:00.787224634 +0200
|
||||
@@ -13,7 +13,7 @@
|
||||
{
|
||||
BITMAP *bmp;
|
||||
DATAFILE *data;
|
||||
- int depth = 16;
|
||||
+ int depth = 32;
|
||||
|
||||
allegro_init();
|
||||
install_keyboard();
|
||||
@@ -33,8 +33,8 @@
|
||||
}
|
||||
|
||||
set_color_depth(depth);
|
||||
- if ((set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0) < 0) &&
|
||||
- (set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0) < 0)) {
|
||||
+ if ((set_gfx_mode(GFX_AUTODETECT_WINDOWED, 320, 240, 0, 0) < 0) &&
|
||||
+ (set_gfx_mode(GFX_AUTODETECT, 320, 240, 0, 0) < 0)) {
|
||||
allegro_message("Unable to set video mode (640x480x%d).\n", depth);
|
||||
return 1;
|
||||
}
|
Loading…
Reference in New Issue
Block a user