summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorMarkus Braun <markus.braun@krawel.de>2002-08-07 10:35:26 +0000
committerMarkus Braun <markus.braun@krawel.de>2002-08-07 10:35:26 +0000
commitde8fbf00a8a4a2c85fc9ee4b2758881f4ec435d9 (patch)
tree5cc60884b43b291f3878527413c4d7f21f210624 /firmware
parent999e2127af292ffac2d36dcb54b78a2f1abce6bf (diff)
Added status bar to file browser and wps
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1582 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/drivers/lcd.c149
-rw-r--r--firmware/drivers/lcd.h17
2 files changed, 11 insertions, 155 deletions
diff --git a/firmware/drivers/lcd.c b/firmware/drivers/lcd.c
index 5e86647280..fe1e13a522 100644
--- a/firmware/drivers/lcd.c
+++ b/firmware/drivers/lcd.c
@@ -529,7 +529,7 @@ void lcd_init (void)
*
* Memory copy of display bitmap
*/
-unsigned char display[LCD_WIDTH][LCD_HEIGHT/8] __attribute__ ((section (".idata")));
+unsigned char lcd_framebuffer[LCD_WIDTH][LCD_HEIGHT/8] __attribute__ ((section (".idata")));
static int font=0;
static int xmargin=0;
@@ -590,7 +590,7 @@ void lcd_update (void)
lcd_write (true, LCD_CNTL_LOWCOL);
for (x = 0; x < LCD_WIDTH; x++)
- lcd_write (false, display[x][y]);
+ lcd_write (false, lcd_framebuffer[x][y]);
}
}
@@ -601,7 +601,7 @@ void lcd_update (void)
*/
void lcd_clear_display (void)
{
- memset (display, 0, sizeof display);
+ memset (lcd_framebuffer, 0, sizeof lcd_framebuffer);
#if defined(SIMULATOR) && defined(HAVE_LCD_CHARCELLS)
/* this function is being used when simulating a charcell LCD and
then we update immediately */
@@ -791,7 +791,7 @@ void lcd_bitmap (unsigned char *src, int x, int y, int nx, int ny,
ny = LCD_HEIGHT - y;
shift = y & 7;
- dst2 = &display[x][y/8];
+ dst2 = &lcd_framebuffer[x][y/8];
ny += shift;
/* Calculate bit masks */
@@ -881,9 +881,6 @@ void lcd_invertrect (int x, int y, int nx, int ny)
lcd_bitmap (ones, x+i, y, 1, ny, false);
}
-#define DRAW_PIXEL(x,y) display[x][y/8] |= (1<<(y&7))
-#define CLEAR_PIXEL(x,y) display[x][y/8] &= ~(1<<(y&7))
-
void lcd_drawline( int x1, int y1, int x2, int y2 )
{
int numpixels;
@@ -1051,144 +1048,6 @@ void lcd_getfontsize(unsigned int font, int *width, int *height)
}
}
-/*
- * Print a progress bar
- */
-void lcd_progressbar(int x, int y, int width, int height, int percent, int direction)
-{
- int pos;
- int i,j;
-
- /* draw horizontal lines */
- for(i=x+1;i<=x+width-2;i++) {
- DRAW_PIXEL(i,y);
- DRAW_PIXEL(i,(y+height-1));
- }
-
- /* draw vertical lines */
- for(i=1;i<height;i++) {
- DRAW_PIXEL(x,(y+i));
- DRAW_PIXEL((x+width-1),(y+i));
- }
-
- /* clear edge pixels */
- CLEAR_PIXEL(x,y);
- CLEAR_PIXEL((x+width-1),y);
- CLEAR_PIXEL(x,(y+height-1));
- CLEAR_PIXEL((x+width-1),(y+height-1));
-
- /* clear pixels in progress bar */
- for(i=1;i<=width-2;i++) {
- for(j=1;j<=height-2;j++) {
- CLEAR_PIXEL((x+i),(y+j));
- CLEAR_PIXEL((x+i),(y+j));
- }
- }
-
- /* draw bar */
- pos=percent;
- if(pos<0)
- pos=0;
- if(pos>100)
- pos=100;
-
- switch (direction)
- {
- case BAR_RIGHT:
- pos=(width-2)*pos/100;
- for(i=1;i<=pos;i++)
- for(j=1;j<height-1;j++)
- DRAW_PIXEL((x+i),(y+j));
- break;
- case BAR_LEFT:
- pos=(width-2)*(100-pos)/100;
- for(i=pos+1;i<=width-2;i++)
- for(j=1;j<height-1;j++)
- DRAW_PIXEL((x+i),(y+j));
- break;
- case BAR_DOWN:
- pos=(height-2)*pos/100;
- for(i=1;i<=pos;i++)
- for(j=1;j<width-1;j++)
- DRAW_PIXEL((x+j),(y+i));
- break;
- case BAR_UP:
- pos=(height-2)*(100-pos)/100;
- for(i=pos+1;i<=height-2;i++)
- for(j=1;j<width-1;j++)
- DRAW_PIXEL((x+j),(y+i));
- break;
- }
-
-}
-
-
-/*
- * Print a slidebar bar
- */
-void lcd_slidebar(int x, int y, int width, int height, int percent, int direction)
-{
- int pos;
- int i,j;
-
- /* draw horizontal lines */
- for(i=x+1;i<=x+width-2;i++) {
- DRAW_PIXEL(i,y);
- DRAW_PIXEL(i,(y+height-1));
- }
-
- /* draw vertical lines */
- for(i=1;i<height;i++) {
- DRAW_PIXEL(x,(y+i));
- DRAW_PIXEL((x+width-1),(y+i));
- }
-
- /* clear edge pixels */
- CLEAR_PIXEL(x,y);
- CLEAR_PIXEL((x+width-1),y);
- CLEAR_PIXEL(x,(y+height-1));
- CLEAR_PIXEL((x+width-1),(y+height-1));
-
- /* clear pixels in progress bar */
- for(i=1;i<=width-2;i++)
- for(j=1;j<=height-2;j++) {
- CLEAR_PIXEL((x+i),(y+j));
- CLEAR_PIXEL((x+i),(y+j));
- }
-
- /* draw point */
- pos=percent;
- if(pos<0)
- pos=0;
- if(pos>100)
- pos=100;
-
- switch (direction)
- {
- case BAR_RIGHT:
- pos=(width-height-1)*pos/100;
- break;
- case BAR_LEFT:
- pos=(width-height-1)*(100-pos)/100;
- break;
- case BAR_DOWN:
- pos=(height-width-1)*pos/100;
- break;
- case BAR_UP:
- pos=(height-width-1)*(100-pos)/100;
- break;
- }
-
- if(direction == BAR_LEFT || direction == BAR_RIGHT)
- for(i=1;i<height;i++)
- for(j=1;j<height;j++)
- DRAW_PIXEL((x+pos+i),(y+j));
- else
- for(i=1;i<width;i++)
- for(j=1;j<width;j++)
- DRAW_PIXEL((x+i),(y+pos+j));
-}
-
#else
/* no LCD defined, no code to use */
#endif
diff --git a/firmware/drivers/lcd.h b/firmware/drivers/lcd.h
index c985cb067d..23e333287b 100644
--- a/firmware/drivers/lcd.h
+++ b/firmware/drivers/lcd.h
@@ -74,14 +74,13 @@ extern void lcd_double_height (bool on);
#define LCD_WIDTH 112 /* Display width in pixels */
#define LCD_HEIGHT 64 /* Display height in pixels */
-/* Directions for progressbar and scrollbar */
-enum
-{
- BAR_RIGHT = 0,
- BAR_LEFT,
- BAR_DOWN,
- BAR_UP
-};
+#define DRAW_PIXEL(x,y) lcd_framebuffer[x][y/8] |= (1<<(y&7))
+#define CLEAR_PIXEL(x,y) lcd_framebuffer[x][y/8] &= ~(1<<(y&7))
+
+/*
+ * Memory copy of display bitmap
+ */
+extern unsigned char lcd_framebuffer[LCD_WIDTH][LCD_HEIGHT/8] __attribute__ ((section (".idata")));
extern void lcd_putsxy(int x, int y, unsigned char *string, int font);
extern void lcd_setfont(int font);
@@ -97,8 +96,6 @@ extern void lcd_drawline( int x1, int y1, int x2, int y2 );
extern void lcd_clearline( int x1, int y1, int x2, int y2 );
extern void lcd_drawpixel(int x, int y);
extern void lcd_clearpixel(int x, int y);
-extern void lcd_progressbar(int x, int y, int width, int height, int percent, int direction);
-extern void lcd_slidebar(int x, int y, int width, int height, int percent, int direction);
#endif /* CHARCELLS / BITMAP */