forked from len0rd/rockbox
First attempt at generating and using .h files from bitmaps using bmp2rb. The .h files are generated for both the core bitmaps and the plugins, but are only currently being used in the core.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8759 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
d04dbca00b
commit
95538f6949
13 changed files with 85 additions and 54 deletions
|
|
@ -8,7 +8,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
INCLUDES= -I$(FIRMDIR)/include -I$(FIRMDIR)/export -I. -I$(BUILDDIR) \
|
INCLUDES= -I$(FIRMDIR)/include -I$(FIRMDIR)/export -I. -I$(BUILDDIR) \
|
||||||
-I$(OBJDIR)
|
-I$(BUILDDIR)/bitmaps -I$(OBJDIR)
|
||||||
|
|
||||||
DEPFILE = $(OBJDIR)/dep-apps
|
DEPFILE = $(OBJDIR)/dep-apps
|
||||||
LDS := $(FIRMDIR)/app.lds
|
LDS := $(FIRMDIR)/app.lds
|
||||||
|
|
@ -85,6 +85,8 @@ endif
|
||||||
all: $(REALBIN) $(FLASHFILE) $(CODECS) $(ROCKS) $(ARCHOSROM)
|
all: $(REALBIN) $(FLASHFILE) $(CODECS) $(ROCKS) $(ARCHOSROM)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
$(DEPFILE): $(BITMAPLIBS)
|
||||||
|
|
||||||
dep: $(DEPFILE)
|
dep: $(DEPFILE)
|
||||||
|
|
||||||
build-codecs:
|
build-codecs:
|
||||||
|
|
@ -212,6 +214,7 @@ clean:
|
||||||
@$(MAKE) -C plugins clean OBJDIR=$(OBJDIR)/plugins
|
@$(MAKE) -C plugins clean OBJDIR=$(OBJDIR)/plugins
|
||||||
@$(MAKE) -C codecs clean OBJDIR=$(OBJDIR)/codecs
|
@$(MAKE) -C codecs clean OBJDIR=$(OBJDIR)/codecs
|
||||||
@rm -rf $(OBJDIR)/recorder $(OBJDIR)/player
|
@rm -rf $(OBJDIR)/recorder $(OBJDIR)/player
|
||||||
|
@rm -rf $(BUILDDIR)/bitmaps
|
||||||
ifdef SIMVER
|
ifdef SIMVER
|
||||||
@$(MAKE) -C $(SIMDIR) clean
|
@$(MAKE) -C $(SIMDIR) clean
|
||||||
endif
|
endif
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ DEPFILE = $(OBJDIR)/dep-bitmaps-mono
|
||||||
|
|
||||||
BMP2RB = $(BMP2RB_MONO)
|
BMP2RB = $(BMP2RB_MONO)
|
||||||
OUTPUT = $(BUILDDIR)/libbitmapsmono.a
|
OUTPUT = $(BUILDDIR)/libbitmapsmono.a
|
||||||
|
BMPINCDIR = $(BUILDDIR)/pluginbitmaps
|
||||||
|
|
||||||
include $(TOOLSDIR)/makebmp.inc
|
include $(TOOLSDIR)/makebmp.inc
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ DEPFILE = $(OBJDIR)/dep-bitmaps-native
|
||||||
|
|
||||||
BMP2RB = $(BMP2RB_NATIVE)
|
BMP2RB = $(BMP2RB_NATIVE)
|
||||||
OUTPUT = $(BUILDDIR)/libbitmapsnative.a
|
OUTPUT = $(BUILDDIR)/libbitmapsnative.a
|
||||||
|
BMPINCDIR = $(BUILDDIR)/bitmaps
|
||||||
|
|
||||||
include $(TOOLSDIR)/makebmp.inc
|
include $(TOOLSDIR)/makebmp.inc
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ DEPFILE = $(OBJDIR)/dep-bitmaps-remotemono
|
||||||
|
|
||||||
BMP2RB = $(BMP2RB_REMOTEMONO)
|
BMP2RB = $(BMP2RB_REMOTEMONO)
|
||||||
OUTPUT = $(BUILDDIR)/libbitmapsremotemono.a
|
OUTPUT = $(BUILDDIR)/libbitmapsremotemono.a
|
||||||
|
BMPINCDIR = $(BUILDDIR)/pluginbitmaps
|
||||||
|
|
||||||
include $(TOOLSDIR)/makebmp.inc
|
include $(TOOLSDIR)/makebmp.inc
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ DEPFILE = $(OBJDIR)/dep-bitmaps-remotenative
|
||||||
|
|
||||||
BMP2RB = $(BMP2RB_REMOTENATIVE)
|
BMP2RB = $(BMP2RB_REMOTENATIVE)
|
||||||
OUTPUT = $(BUILDDIR)/libbitmapsremotenative.a
|
OUTPUT = $(BUILDDIR)/libbitmapsremotenative.a
|
||||||
|
BMPINCDIR = $(BUILDDIR)/bitmaps
|
||||||
|
|
||||||
include $(TOOLSDIR)/makebmp.inc
|
include $(TOOLSDIR)/makebmp.inc
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -604,12 +604,12 @@ int show_logo( void )
|
||||||
int font_h, font_w;
|
int font_h, font_w;
|
||||||
|
|
||||||
lcd_clear_display();
|
lcd_clear_display();
|
||||||
lcd_bitmap(rockboxlogo, 0, 10, ROCKBOXLOGO_WIDTH, ROCKBOXLOGO_HEIGHT);
|
lcd_bitmap(rockboxlogo, 0, 10, BMPWIDTH_rockboxlogo, BMPHEIGHT_rockboxlogo);
|
||||||
|
|
||||||
#ifdef HAVE_REMOTE_LCD
|
#ifdef HAVE_REMOTE_LCD
|
||||||
lcd_remote_clear_display();
|
lcd_remote_clear_display();
|
||||||
lcd_remote_bitmap(remote_rockboxlogo,10,14,REMOTE_ROCKBOXLOGO_WIDTH,
|
lcd_remote_bitmap(remote_rockboxlogo,10,14,BMPWIDTH_remote_rockboxlogo,
|
||||||
REMOTE_ROCKBOXLOGO_HEIGHT);
|
BMPHEIGHT_remote_rockboxlogo);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
snprintf(version, sizeof(version), "Ver. %s", appsversion);
|
snprintf(version, sizeof(version), "Ver. %s", appsversion);
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,8 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
INCLUDES = -I$(FIRMDIR)/include -I$(FIRMDIR)/export -I$(FIRMDIR)/common \
|
INCLUDES = -I$(FIRMDIR)/include -I$(FIRMDIR)/export -I$(FIRMDIR)/common \
|
||||||
-I$(FIRMDIR)/drivers -I$(APPSDIR) -Ilib -I$(BUILDDIR)
|
-I$(FIRMDIR)/drivers -I$(APPSDIR) -Ilib -I$(BUILDDIR) \
|
||||||
|
-I$(BUILDDIR)/pluginbitmaps
|
||||||
CFLAGS = $(GCCOPTS) $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \
|
CFLAGS = $(GCCOPTS) $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \
|
||||||
-DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN
|
-DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN
|
||||||
|
|
||||||
|
|
@ -72,6 +73,10 @@ endif
|
||||||
.PHONY: $(SUBDIRS)
|
.PHONY: $(SUBDIRS)
|
||||||
all: $(BUILDDIR)/libplugin.a $(ROCKS) $(SUBDIRS) $(DEPFILE)
|
all: $(BUILDDIR)/libplugin.a $(ROCKS) $(SUBDIRS) $(DEPFILE)
|
||||||
|
|
||||||
|
$(DEPFILE): $(BITMAPLIBS)
|
||||||
|
|
||||||
|
dep: $(DEPFILE)
|
||||||
|
|
||||||
$(BUILDDIR)/credits.raw: $(DOCSDIR)/CREDITS
|
$(BUILDDIR)/credits.raw: $(DOCSDIR)/CREDITS
|
||||||
@echo "create credits.raw"
|
@echo "create credits.raw"
|
||||||
$(SILENT)perl credits.pl < $< > $@
|
$(SILENT)perl credits.pl < $< > $@
|
||||||
|
|
@ -197,5 +202,6 @@ clean:
|
||||||
$(SILENT)$(MAKE) -C bitmaps/remote_native clean OBJDIR=$(OBJDIR)/bitmaps/remote_native
|
$(SILENT)$(MAKE) -C bitmaps/remote_native clean OBJDIR=$(OBJDIR)/bitmaps/remote_native
|
||||||
$(SILENT)$(MAKE) -C rockboy clean OBJDIR=$(OBJDIR)/rockboy
|
$(SILENT)$(MAKE) -C rockboy clean OBJDIR=$(OBJDIR)/rockboy
|
||||||
$(SILENT)$(MAKE) -C searchengine clean OBJDIR=$(OBJDIR)/searchengine
|
$(SILENT)$(MAKE) -C searchengine clean OBJDIR=$(OBJDIR)/searchengine
|
||||||
|
@rm -rf $(BUILDDIR)/pluginbitmaps
|
||||||
|
|
||||||
-include $(DEPFILE)
|
-include $(DEPFILE)
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ DEPFILE = $(OBJDIR)/dep-bitmaps-mono
|
||||||
|
|
||||||
BMP2RB = $(BMP2RB_MONO)
|
BMP2RB = $(BMP2RB_MONO)
|
||||||
OUTPUT = $(BUILDDIR)/libpluginbitmapsmono.a
|
OUTPUT = $(BUILDDIR)/libpluginbitmapsmono.a
|
||||||
|
BMPINCDIR = $(BUILDDIR)/pluginbitmaps
|
||||||
|
|
||||||
include $(TOOLSDIR)/makebmp.inc
|
include $(TOOLSDIR)/makebmp.inc
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ DEPFILE = $(OBJDIR)/dep-bitmaps-native
|
||||||
|
|
||||||
BMP2RB = $(BMP2RB_NATIVE)
|
BMP2RB = $(BMP2RB_NATIVE)
|
||||||
OUTPUT = $(BUILDDIR)/libpluginbitmapsnative.a
|
OUTPUT = $(BUILDDIR)/libpluginbitmapsnative.a
|
||||||
|
BMPINCDIR = $(BUILDDIR)/pluginbitmaps
|
||||||
|
|
||||||
include $(TOOLSDIR)/makebmp.inc
|
include $(TOOLSDIR)/makebmp.inc
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ DEPFILE = $(OBJDIR)/dep-bitmaps-remotemono
|
||||||
|
|
||||||
BMP2RB = $(BMP2RB_REMOTEMONO)
|
BMP2RB = $(BMP2RB_REMOTEMONO)
|
||||||
OUTPUT = $(BUILDDIR)/libpluginbitmapsremotemono.a
|
OUTPUT = $(BUILDDIR)/libpluginbitmapsremotemono.a
|
||||||
|
BMPINCDIR = $(BUILDDIR)/pluginbitmaps
|
||||||
|
|
||||||
include $(TOOLSDIR)/makebmp.inc
|
include $(TOOLSDIR)/makebmp.inc
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ DEPFILE = $(OBJDIR)/dep-bitmaps-remotenative
|
||||||
|
|
||||||
BMP2RB = $(BMP2RB_REMOTENATIVE)
|
BMP2RB = $(BMP2RB_REMOTENATIVE)
|
||||||
OUTPUT = $(BUILDDIR)/libpluginbitmapsremotenative.a
|
OUTPUT = $(BUILDDIR)/libpluginbitmapsremotenative.a
|
||||||
|
BMPINCDIR = $(BUILDDIR)/pluginbitmaps
|
||||||
|
|
||||||
include $(TOOLSDIR)/makebmp.inc
|
include $(TOOLSDIR)/makebmp.inc
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,11 +21,19 @@
|
||||||
|
|
||||||
#include <lcd.h>
|
#include <lcd.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
|
||||||
|
/* External bitmaps */
|
||||||
|
|
||||||
|
#include <rockboxlogo.h>
|
||||||
|
#ifdef HAVE_REMOTE_LCD
|
||||||
|
#include <remote_rockboxlogo.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Icons of size 6x8 pixels
|
* Icons of size 6x8 pixels
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
|
||||||
|
|
||||||
/* Symbolic names for icons */
|
/* Symbolic names for icons */
|
||||||
enum icons_5x8 {
|
enum icons_5x8 {
|
||||||
|
|
@ -78,45 +86,6 @@ extern const unsigned char bitmap_icons_6x8[Icon6x8Last][6];
|
||||||
extern const unsigned char bitmap_icons_7x8[Icon7x8Last][7];
|
extern const unsigned char bitmap_icons_7x8[Icon7x8Last][7];
|
||||||
extern const unsigned char bitmap_icon_disk[];
|
extern const unsigned char bitmap_icon_disk[];
|
||||||
|
|
||||||
extern const fb_data rockboxlogo[];
|
|
||||||
|
|
||||||
#if LCD_DEPTH == 1
|
|
||||||
/* Archos targets */
|
|
||||||
#define ROCKBOXLOGO_WIDTH 112
|
|
||||||
#define ROCKBOXLOGO_HEIGHT 37
|
|
||||||
|
|
||||||
#elif (LCD_WIDTH == 160) && (LCD_DEPTH == 2)
|
|
||||||
/* iRiver H1x0 */
|
|
||||||
#define ROCKBOXLOGO_WIDTH 160
|
|
||||||
#define ROCKBOXLOGO_HEIGHT 53
|
|
||||||
|
|
||||||
#elif (LCD_WIDTH == 160) && (LCD_DEPTH == 16)
|
|
||||||
/* iAudio X5 */
|
|
||||||
#define ROCKBOXLOGO_WIDTH 160
|
|
||||||
#define ROCKBOXLOGO_HEIGHT 50
|
|
||||||
|
|
||||||
#elif (LCD_WIDTH == 176) && (LCD_DEPTH == 16)
|
|
||||||
/* iPod Nano */
|
|
||||||
#define ROCKBOXLOGO_WIDTH 176
|
|
||||||
#define ROCKBOXLOGO_HEIGHT 54
|
|
||||||
|
|
||||||
#elif (LCD_WIDTH == 320) && (LCD_DEPTH == 16)
|
|
||||||
/* iPod Video */
|
|
||||||
#define ROCKBOXLOGO_WIDTH 320
|
|
||||||
#define ROCKBOXLOGO_HEIGHT 98
|
|
||||||
|
|
||||||
#elif (LCD_WIDTH >= 220) && (LCD_DEPTH == 16)
|
|
||||||
/* iriver H3x0, iPod Color/Photo */
|
|
||||||
#define ROCKBOXLOGO_WIDTH 220
|
|
||||||
#define ROCKBOXLOGO_HEIGHT 68
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_REMOTE_LCD
|
|
||||||
extern const unsigned char remote_rockboxlogo[];
|
|
||||||
#define REMOTE_ROCKBOXLOGO_WIDTH 112
|
|
||||||
#define REMOTE_ROCKBOXLOGO_HEIGHT 37
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define STATUSBAR_X_POS 0
|
#define STATUSBAR_X_POS 0
|
||||||
#define STATUSBAR_Y_POS 0 /* MUST be a multiple of 8 */
|
#define STATUSBAR_Y_POS 0 /* MUST be a multiple of 8 */
|
||||||
#define STATUSBAR_HEIGHT 8
|
#define STATUSBAR_HEIGHT 8
|
||||||
|
|
|
||||||
|
|
@ -412,22 +412,47 @@ int transform_bitmap(const struct RGBQUAD *src, int width, int height,
|
||||||
* some #define's
|
* some #define's
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
void generate_c_source(char *id, int width, int height,
|
void generate_c_source(char *id, char* header_dir, int width, int height,
|
||||||
const unsigned short *t_bitmap, int t_width,
|
const unsigned short *t_bitmap, int t_width,
|
||||||
int t_height, int t_depth)
|
int t_height, int t_depth)
|
||||||
{
|
{
|
||||||
FILE *f;
|
FILE *f;
|
||||||
|
FILE *fh;
|
||||||
int i, a;
|
int i, a;
|
||||||
|
char header_name[1024];
|
||||||
f = stdout;
|
|
||||||
|
|
||||||
if (!id || !id[0])
|
if (!id || !id[0])
|
||||||
id = "bitmap";
|
id = "bitmap";
|
||||||
|
|
||||||
|
f = stdout;
|
||||||
|
|
||||||
|
if (header_dir && header_dir[0])
|
||||||
|
{
|
||||||
|
snprintf(header_name,sizeof(header_name),"%s/%s.h",header_dir,id);
|
||||||
|
fh = fopen(header_name,"w+");
|
||||||
|
|
||||||
|
if (fh == NULL)
|
||||||
|
{
|
||||||
|
debugf("error - can't open '%s'\n", header_name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
fprintf(fh,
|
||||||
|
"#define BMPHEIGHT_%s %ld\n"
|
||||||
|
"#define BMPWIDTH_%s %ld\n",
|
||||||
|
id, height, id, width);
|
||||||
|
if (t_depth <= 8)
|
||||||
|
fprintf(fh, "extern const unsigned char %s[];\n", id);
|
||||||
|
else
|
||||||
|
fprintf(fh, "extern const unsigned short %s[];\n", id);
|
||||||
|
|
||||||
|
fclose(fh);
|
||||||
|
} else {
|
||||||
fprintf(f,
|
fprintf(f,
|
||||||
"#define BMPHEIGHT_%s %ld\n"
|
"#define BMPHEIGHT_%s %ld\n"
|
||||||
"#define BMPWIDTH_%s %ld\n",
|
"#define BMPWIDTH_%s %ld\n",
|
||||||
id, height, id, width);
|
id, height, id, width);
|
||||||
|
}
|
||||||
|
|
||||||
if (t_depth <= 8)
|
if (t_depth <= 8)
|
||||||
fprintf(f, "const unsigned char %s[] = {\n", id);
|
fprintf(f, "const unsigned char %s[] = {\n", id);
|
||||||
else
|
else
|
||||||
|
|
@ -478,6 +503,7 @@ void print_usage(void)
|
||||||
{
|
{
|
||||||
printf("Usage: %s [-i <id>] [-a] <bitmap file>\n"
|
printf("Usage: %s [-i <id>] [-a] <bitmap file>\n"
|
||||||
"\t-i <id> Bitmap name (default is filename without extension)\n"
|
"\t-i <id> Bitmap name (default is filename without extension)\n"
|
||||||
|
"\t-h <dir> Create header file in <dir>/<id>.h\n"
|
||||||
"\t-a Show ascii picture of bitmap\n"
|
"\t-a Show ascii picture of bitmap\n"
|
||||||
"\t-f <n> Generate destination format n, default = 0\n"
|
"\t-f <n> Generate destination format n, default = 0\n"
|
||||||
"\t 0 Archos recorder, Ondio, Gmini 120/SP, Iriver H1x0 mono\n"
|
"\t 0 Archos recorder, Ondio, Gmini 120/SP, Iriver H1x0 mono\n"
|
||||||
|
|
@ -495,6 +521,7 @@ int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
char *bmp_filename = NULL;
|
char *bmp_filename = NULL;
|
||||||
char *id = NULL;
|
char *id = NULL;
|
||||||
|
char* header_dir = NULL;
|
||||||
int i;
|
int i;
|
||||||
int ascii = false;
|
int ascii = false;
|
||||||
int format = 0;
|
int format = 0;
|
||||||
|
|
@ -510,6 +537,23 @@ int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
switch (argv[i][1])
|
switch (argv[i][1])
|
||||||
{
|
{
|
||||||
|
case 'h': /* .h filename */
|
||||||
|
if (argv[i][2])
|
||||||
|
{
|
||||||
|
header_dir = &argv[i][2];
|
||||||
|
}
|
||||||
|
else if (argc > i+1)
|
||||||
|
{
|
||||||
|
header_dir = argv[i+1];
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print_usage();
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 'i': /* ID */
|
case 'i': /* ID */
|
||||||
if (argv[i][2])
|
if (argv[i][2])
|
||||||
{
|
{
|
||||||
|
|
@ -600,7 +644,8 @@ int main(int argc, char **argv)
|
||||||
if (transform_bitmap(bitmap, width, height, format, &t_bitmap,
|
if (transform_bitmap(bitmap, width, height, format, &t_bitmap,
|
||||||
&t_width, &t_height, &t_depth))
|
&t_width, &t_height, &t_depth))
|
||||||
exit(1);
|
exit(1);
|
||||||
generate_c_source(id, width, height, t_bitmap, t_width, t_height, t_depth);
|
generate_c_source(id, header_dir, width, height, t_bitmap,
|
||||||
|
t_width, t_height, t_depth);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue