diff options
author | Andrew Mahone <andrew.mahone@gmail.com> | 2009-05-07 01:23:13 +0000 |
---|---|---|
committer | Andrew Mahone <andrew.mahone@gmail.com> | 2009-05-07 01:23:13 +0000 |
commit | 5621fd393a4445645b07bb2e89d89d23bb9a6473 (patch) | |
tree | b2b46a056ea1ae599e0a99118ddacdf72a6dac4a /apps/plugins | |
parent | 580b1a5c4b305c7cb320415267c5e1b88b053948 (diff) | |
download | rockbox-5621fd393a4445645b07bb2e89d89d23bb9a6473.tar.gz rockbox-5621fd393a4445645b07bb2e89d89d23bb9a6473.zip |
Build pictureflow using overlay on lowmem targets, support JPEG AA in PF on all targets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20864 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rw-r--r-- | apps/plugins/SOURCES | 5 | ||||
-rw-r--r-- | apps/plugins/SUBDIRS | 3 | ||||
-rw-r--r-- | apps/plugins/pictureflow/SOURCES | 1 | ||||
-rw-r--r-- | apps/plugins/pictureflow/pictureflow.c (renamed from apps/plugins/pictureflow.c) | 9 | ||||
-rw-r--r-- | apps/plugins/pictureflow/pictureflow.make | 58 |
5 files changed, 65 insertions, 11 deletions
diff --git a/apps/plugins/SOURCES b/apps/plugins/SOURCES index e8d76441b5..a695478e40 100644 --- a/apps/plugins/SOURCES +++ b/apps/plugins/SOURCES | |||
@@ -55,10 +55,6 @@ text_editor.c | |||
55 | wavview.c | 55 | wavview.c |
56 | robotfindskitten.c | 56 | robotfindskitten.c |
57 | 57 | ||
58 | #if defined(HAVE_TAGCACHE) | ||
59 | pictureflow.c | ||
60 | #endif | ||
61 | |||
62 | #ifdef HAVE_LCD_COLOR | 58 | #ifdef HAVE_LCD_COLOR |
63 | ppmviewer.c | 59 | ppmviewer.c |
64 | #endif | 60 | #endif |
@@ -109,6 +105,7 @@ zxbox.c | |||
109 | /* overlay loader for Goban */ | 105 | /* overlay loader for Goban */ |
110 | #if (PLUGIN_BUFFER_SIZE < 0x10000) && !defined(SIMULATOR) | 106 | #if (PLUGIN_BUFFER_SIZE < 0x10000) && !defined(SIMULATOR) |
111 | goban.c | 107 | goban.c |
108 | pictureflow.c | ||
112 | #endif | 109 | #endif |
113 | 110 | ||
114 | /* not support recorder models for now */ | 111 | /* not support recorder models for now */ |
diff --git a/apps/plugins/SUBDIRS b/apps/plugins/SUBDIRS index af5e1d0c0e..597df41b8f 100644 --- a/apps/plugins/SUBDIRS +++ b/apps/plugins/SUBDIRS | |||
@@ -16,6 +16,9 @@ rockboy | |||
16 | 16 | ||
17 | /* For all targets with a bitmap display */ | 17 | /* For all targets with a bitmap display */ |
18 | #ifdef HAVE_LCD_BITMAP | 18 | #ifdef HAVE_LCD_BITMAP |
19 | #ifdef HAVE_TAGCACHE | ||
20 | pictureflow | ||
21 | #endif | ||
19 | chessbox | 22 | chessbox |
20 | jpeg | 23 | jpeg |
21 | sudoku | 24 | sudoku |
diff --git a/apps/plugins/pictureflow/SOURCES b/apps/plugins/pictureflow/SOURCES new file mode 100644 index 0000000000..7d21cec526 --- /dev/null +++ b/apps/plugins/pictureflow/SOURCES | |||
@@ -0,0 +1 @@ | |||
pictureflow.c | |||
diff --git a/apps/plugins/pictureflow.c b/apps/plugins/pictureflow/pictureflow.c index 7261d7a402..82dc9748ec 100644 --- a/apps/plugins/pictureflow.c +++ b/apps/plugins/pictureflow/pictureflow.c | |||
@@ -957,13 +957,8 @@ bool create_albumart_cache(void) | |||
957 | input_bmp.data = buf; | 957 | input_bmp.data = buf; |
958 | input_bmp.width = DISPLAY_WIDTH; | 958 | input_bmp.width = DISPLAY_WIDTH; |
959 | input_bmp.height = DISPLAY_HEIGHT; | 959 | input_bmp.height = DISPLAY_HEIGHT; |
960 | #if PLUGIN_BUFFER_SIZE > 0x10000 | ||
961 | ret = read_image_file(albumart_file, &input_bmp, | 960 | ret = read_image_file(albumart_file, &input_bmp, |
962 | buf_size, format, &format_transposed); | 961 | buf_size, format, &format_transposed); |
963 | #else | ||
964 | ret = scaled_read_bmp_file(albumart_file, &input_bmp, | ||
965 | buf_size, format, &format_transposed); | ||
966 | #endif | ||
967 | if (ret <= 0) { | 962 | if (ret <= 0) { |
968 | rb->splash(HZ, "Could not read bmp"); | 963 | rb->splash(HZ, "Could not read bmp"); |
969 | continue; /* skip missing/broken files */ | 964 | continue; /* skip missing/broken files */ |
@@ -1648,7 +1643,7 @@ void render_slide(struct slide_data *slide, const int alpha) | |||
1648 | pixel -= pixelstep; | 1643 | pixel -= pixelstep; |
1649 | } | 1644 | } |
1650 | } | 1645 | } |
1651 | p = (bmp->height-DISPLAY_OFFS) * PFREAL_ONE; | 1646 | p = (bmp->height-DISPLAY_OFFS) * PFREAL_ONE; |
1652 | plim = MIN(sh * PFREAL_ONE, p + (LCD_HEIGHT/2) * dy); | 1647 | plim = MIN(sh * PFREAL_ONE, p + (LCD_HEIGHT/2) * dy); |
1653 | int plim2 = MIN(MIN(sh + REFLECT_HEIGHT, sh * 2) * PFREAL_ONE, | 1648 | int plim2 = MIN(MIN(sh + REFLECT_HEIGHT, sh * 2) * PFREAL_ONE, |
1654 | p + (LCD_HEIGHT/2) * dy); | 1649 | p + (LCD_HEIGHT/2) * dy); |
@@ -2556,7 +2551,7 @@ enum plugin_status plugin_start(const void *parameter) | |||
2556 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ | 2551 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ |
2557 | rb->cpu_boost(true); | 2552 | rb->cpu_boost(true); |
2558 | #endif | 2553 | #endif |
2559 | #if PLUGIN_BUFFER_SIZE > 0x10000 | 2554 | #if PLUGIN_BUFFER_SIZE > 0x10000 && 0 |
2560 | buf = rb->plugin_get_buffer(&buf_size); | 2555 | buf = rb->plugin_get_buffer(&buf_size); |
2561 | #else | 2556 | #else |
2562 | buf = rb->plugin_get_audio_buffer(&buf_size); | 2557 | buf = rb->plugin_get_audio_buffer(&buf_size); |
diff --git a/apps/plugins/pictureflow/pictureflow.make b/apps/plugins/pictureflow/pictureflow.make new file mode 100644 index 0000000000..c1fb1f3957 --- /dev/null +++ b/apps/plugins/pictureflow/pictureflow.make | |||
@@ -0,0 +1,58 @@ | |||
1 | # __________ __ ___. | ||
2 | # Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
3 | # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
4 | # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
5 | # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
6 | # \/ \/ \/ \/ \/ | ||
7 | # $Id$ | ||
8 | # | ||
9 | |||
10 | PICTUREFLOW_SRCDIR = $(APPSDIR)/plugins/pictureflow | ||
11 | PICTUREFLOW_OBJDIR = $(BUILDDIR)/apps/plugins/pictureflow | ||
12 | |||
13 | PICTUREFLOW_SRC := $(call preprocess, $(PICTUREFLOW_SRCDIR)/SOURCES) | ||
14 | PICTUREFLOW_OBJ := $(call c2obj, $(PICTUREFLOW_SRC)) | ||
15 | |||
16 | OTHER_SRC += $(PICTUREFLOW_SRC) | ||
17 | |||
18 | ifndef SIMVER | ||
19 | ifneq (,$(strip $(foreach tgt,RECORDER ONDIO,$(findstring $(tgt),$(TARGET))))) | ||
20 | ### lowmem targets | ||
21 | ROCKS += $(PICTUREFLOW_OBJDIR)/pictureflow.ovl | ||
22 | PICTUREFLOW_OUTLDS = $(PICTUREFLOW_OBJDIR)/picutreflow.link | ||
23 | PICTUREFLOW_OVLFLAGS = -T$(PICTUREFLOW_OUTLDS) -Wl,--gc-sections -Wl,-Map,$(basename $@).map | ||
24 | else | ||
25 | ### all other targets | ||
26 | ROCKS += $(PICTUREFLOW_OBJDIR)/pictureflow.rock | ||
27 | endif | ||
28 | else | ||
29 | ### simulator | ||
30 | ROCKS += $(PICTUREFLOW_OBJDIR)/pictureflow.rock | ||
31 | endif | ||
32 | |||
33 | ifeq ($(CPU),sh) | ||
34 | # sh need to retain its' -Os | ||
35 | PICTUREFLOWFLAGS = $(PLUGINFLAGS) | ||
36 | else | ||
37 | PICTUREFLOWFLAGS = $(filter-out -O%,$(PLUGINFLAGS)) -O2 | ||
38 | endif | ||
39 | |||
40 | $(PICTUREFLOW_OBJDIR)/pictureflow.rock: $(PICTUREFLOW_OBJ) | ||
41 | |||
42 | $(PICTUREFLOW_OBJDIR)/pictureflow.refmap: $(PICTUREFLOW_OBJ) | ||
43 | |||
44 | $(PICTUREFLOW_OUTLDS): $(PLUGIN_LDS) $(PICTUREFLOW_OBJDIR)/pictureflow.refmap | ||
45 | $(call PRINTS,PP $(@F))$(call preprocess2file,$<,$@,-DOVERLAY_OFFSET=$(shell \ | ||
46 | $(TOOLSDIR)/ovl_offset.pl $(PICTUREFLOW_OBJDIR)/pictureflow.refmap)) | ||
47 | |||
48 | $(PICTUREFLOW_OBJDIR)/pictureflow.ovl: $(PICTUREFLOW_OBJ) $(PICTUREFLOW_OUTLDS) | ||
49 | $(SILENT)$(CC) $(PLUGINFLAGS) -o $(basename $@).elf \ | ||
50 | $(filter %.o, $^) \ | ||
51 | $(filter %.a, $+) \ | ||
52 | -lgcc $(PICTUREFLOW_OVLFLAGS) | ||
53 | $(call PRINTS,LD $(@F))$(OC) -O binary $(basename $@).elf $@ | ||
54 | |||
55 | # special pattern rule for compiling pictureflow with extra flags | ||
56 | $(PICTUREFLOW_OBJDIR)/%.o: $(PICTUREFLOW_SRCDIR)/%.c $(PLUGINBITMAPLIB) $(PICTUREFLOW_SRCDIR)/pictureflow.make | ||
57 | $(SILENT)mkdir -p $(dir $@) | ||
58 | $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) -I$(dir $<) $(PICTUREFLOWFLAGS) -c $< -o $@ | ||