[PATCH 1/2] layer1/fb: Adding new font for symbols

Andreas Eversberg jolly at eversberg.eu
Fri Mar 30 19:15:45 UTC 2012


The first symbols added are special characters to display battery
status and receive level.
---
 src/target/firmware/Makefile          |    3 +-
 src/target/firmware/fb/font.c         |    2 +
 src/target/firmware/fb/symbols.c      |  102 +++++++++++++++++++++++++++++++++
 src/target/firmware/include/fb/font.h |    1 +
 4 files changed, 107 insertions(+), 1 deletions(-)
 create mode 100644 src/target/firmware/fb/symbols.c

diff --git a/src/target/firmware/Makefile b/src/target/firmware/Makefile
index 21892a4..a71eef6 100644
--- a/src/target/firmware/Makefile
+++ b/src/target/firmware/Makefile
@@ -9,7 +9,8 @@ APPLICATIONS?=hello_world compal_dsp_dump layer1 loader chainload rssi
 # Framebuffer support, board specific drivers
 # 	
 
-FB_OBJS=fb/framebuffer.o fb/font.o fb/helvR08.o fb/helvB14.o fb/c64.o
+FB_OBJS=fb/framebuffer.o fb/font.o fb/helvR08.o fb/helvB14.o fb/c64.o \
+	fb/symbols.o
 
 FB_e88_OBJS=$(FB_OBJS) fb/fb_bw8.o fb/fb_st7558.o
 FB_e99_OBJS=$(FB_OBJS) fb/fb_rgb332.o fb/fb_ssd1783.o
diff --git a/src/target/firmware/fb/font.c b/src/target/firmware/fb/font.c
index d98096f..18c1bfe 100644
--- a/src/target/firmware/fb/font.c
+++ b/src/target/firmware/fb/font.c
@@ -32,6 +32,7 @@ extern const struct fb_font font_helvR14;
 extern const struct fb_font font_helvB14;
 // extern const struct fb_font font_helvB24;
 extern const struct fb_font font_c64;
+extern const struct fb_font font_symbols;
 
 const struct fb_font *fb_fonts[]={
 //	&font_4x6,
@@ -43,6 +44,7 @@ const struct fb_font *fb_fonts[]={
 	&font_helvB14,
 //	&font_helvB24,
 	&font_c64,
+	&font_symbols,
 };
 
 const struct fb_char *
diff --git a/src/target/firmware/fb/symbols.c b/src/target/firmware/fb/symbols.c
new file mode 100644
index 0000000..5f6c364
--- /dev/null
+++ b/src/target/firmware/fb/symbols.c
@@ -0,0 +1,102 @@
+#include <fb/font.h>
+static const uint8_t font_symbols_data[] = {
+/* @ battery - */
+	/*0000:*/	3, 3, 8, 0, 0, /* width and bbox (w,h,x,y) */
+	/*0005:*/	0x60,	/* .##..... */
+	/*0006:*/	0x40,	/* .#...... */
+	/*0007:*/	0x40,	/* .#...... */
+	/*0008:*/	0x40,	/* .#...... */
+	/*0009:*/	0x40,	/* .#...... */
+	/*000a:*/	0x40,	/* .#...... */
+	/*000b:*/	0x40,	/* .#...... */
+	/*000c:*/	0x60,	/* .##..... */
+/* A battery empty */
+	/*000d:*/	3, 3, 8, 0, 0, /* width and bbox (w,h,x,y) */
+	/*0012:*/	0xe0,	/* ###..... */
+	/*0013:*/	0x00,	/* ........ */
+	/*0014:*/	0x00,	/* ........ */
+	/*0015:*/	0x00,	/* ........ */
+	/*0016:*/	0x00,	/* ........ */
+	/*0017:*/	0x00,	/* ........ */
+	/*0018:*/	0x00,	/* ........ */
+	/*0019:*/	0xe0,	/* ###..... */
+/* B battery full */
+	/*001a:*/	3, 3, 8, 0, 0, /* width and bbox (w,h,x,y) */
+	/*001f:*/	0xe0,	/* ###..... */
+	/*0020:*/	0x00,	/* ........ */
+	/*0021:*/	0xc0,	/* ##...... */
+	/*0022:*/	0xc0,	/* ##...... */
+	/*0023:*/	0xc0,	/* ##...... */
+	/*0024:*/	0xc0,	/* ##...... */
+	/*0025:*/	0x00,	/* ........ */
+	/*0026:*/	0xe0,	/* ###..... */
+/* C battery + */
+	/*0027:*/	3, 3, 8, 0, 0, /* width and bbox (w,h,x,y) */
+	/*002c:*/	0x80,	/* #....... */
+	/*002d:*/	0x80,	/* #....... */
+	/*002e:*/	0xc0,	/* ##...... */
+	/*002f:*/	0xc0,	/* ##...... */
+	/*0030:*/	0xc0,	/* ##...... */
+	/*0031:*/	0xc0,	/* ##...... */
+	/*0032:*/	0x80,	/* #....... */
+	/*0033:*/	0x80,	/* #....... */
+/* D radiation left */
+	/*0034:*/	3, 3, 8, 0, 0, /* width and bbox (w,h,x,y) */
+	/*0039:*/	0x20,	/* ..#..... */
+	/*003a:*/	0x40,	/* .#...... */
+	/*003b:*/	0x20,	/* ..#..... */
+	/*003c:*/	0x00,	/* ........ */
+	/*003d:*/	0x00,	/* ........ */
+	/*003e:*/	0x00,	/* ........ */
+	/*003f:*/	0x00,	/* ........ */
+	/*0040:*/	0x00,	/* ........ */
+/* E tower */
+	/*0041:*/	5, 5, 8, 0, 0, /* width and bbox (w,h,x,y) */
+	/*0046:*/	0x20,	/* ..#..... */
+	/*0047:*/	0x50,	/* .#.#.... */
+	/*0048:*/	0x20,	/* ..#..... */
+	/*0049:*/	0x20,	/* ..#..... */
+	/*004a:*/	0x50,	/* .#.#.... */
+	/*004b:*/	0x50,	/* .#.#.... */
+	/*004c:*/	0x88,	/* #...#... */
+	/*004d:*/	0xf8,	/* #####... */
+/* F radiation right */
+	/*004e:*/	3, 3, 8, 0, 0, /* width and bbox (w,h,x,y) */
+	/*0053:*/	0x80,	/* #....... */
+	/*0054:*/	0x40,	/* .#...... */
+	/*0055:*/	0x80,	/* #....... */
+	/*0056:*/	0x00,	/* ........ */
+	/*0057:*/	0x00,	/* ........ */
+	/*0058:*/	0x00,	/* ........ */
+	/*0059:*/	0x00,	/* ........ */
+	/*005a:*/	0x00,	/* ........ */
+/* G no radiation */
+	/*005b:*/	3, 3, 8, 0, 0, /* width and bbox (w,h,x,y) */
+	/*005c:*/	0x00,	/* ........ */
+	/*005d:*/	0x00,	/* ........ */
+	/*005e:*/	0x00,	/* ........ */
+	/*005f:*/	0x00,	/* ........ */
+	/*0060:*/	0x00,	/* ........ */
+	/*0061:*/	0x00,	/* ........ */
+	/*0062:*/	0x00,	/* ........ */
+	/*0063:*/	0x00,	/* ........ */
+};
+static const uint16_t font_symbols_offsets[] = {
+	0x0000 /* '@' */,
+	0x000d /* 'A' */,
+	0x001a /* 'B' */,
+	0x0027 /* 'C' */,
+	0x0034 /* 'D' */,
+	0x0041 /* 'E' */,
+	0x004e /* 'F' */,
+	0x005b /* 'G' */,
+};
+const struct fb_font font_symbols = {
+	.height = 8,
+	.ascent = 8,
+	.firstchar = 64, /* '@' */
+	.lastchar = 71,
+	.chardata = font_symbols_data,
+	.charoffs = font_symbols_offsets,
+};
+
diff --git a/src/target/firmware/include/fb/font.h b/src/target/firmware/include/fb/font.h
index 40a6974..9dee8ff 100644
--- a/src/target/firmware/include/fb/font.h
+++ b/src/target/firmware/include/fb/font.h
@@ -70,6 +70,7 @@ enum fb_font_id {
 	FB_FONT_HELVB14,
 //	FB_FONT_HELVB24,
 	FB_FONT_C64,
+	FB_FONT_SYMBOLS,
 };
 
 extern const struct fb_font *fb_fonts[]; // note: has to match fb_font_id enum!
-- 
1.7.3.4


--------------020300040706040007050809
Content-Type: text/x-patch;
 name="0002-layer1-rssi-Adding-battery-status-and-rx-level-symbo.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename*0="0002-layer1-rssi-Adding-battery-status-and-rx-level-symbo.pa";
 filename*1="tch"



More information about the baseband-devel mailing list