so this works now

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Daniel Stenberg 2002-03-26 15:40:53 +00:00
parent 0c4589d3bc
commit 530f01f3dc
4 changed files with 39 additions and 33 deletions

View file

@ -22,7 +22,7 @@ TARGET = rockboxui
CC = gcc
RM = rm
CFLAGS = -g -O2
CFLAGS = -g
CPPFLAGS = -DHAVE_CONFIG_H -DGETTIMEOFDAY_TWO_ARGS
LDFLAGS = -lX11 -lm -lXt -lXmu -lsocket -lnsl
@ -42,7 +42,7 @@ distclean: clean
$(RM) config.cache
.c.o:
$(CC) $(CPPFLAGS) $(CCFLAGS) -c $<
$(CC) $(CPPFLAGS) $(CFLAGS) -c $<
$(DEPEND):
$(CC) -MM $(CFLAGS) $(SRCS) > $(DEPEND)

View file

@ -39,7 +39,7 @@
#include "lcd.h"
#include "lcd-x11.h"
extern unsigned char display[LCD_WIDTH/8][LCD_HEIGHT];
extern unsigned char display[LCD_HEIGHT/8][LCD_WIDTH];
void lcd_update (void)
{
@ -56,6 +56,9 @@ void lcd_update (void)
if(display[y/8][x]&(1<<bit)) {
points[p].x = x + MARGIN_X;
points[p].y = y+bit + MARGIN_Y;
#ifdef LCD_DEBUG
printf("Set pixel at %d,%d\n", x, y+bit);
#endif
p++; /* increase the point counter */
}
}

View file

@ -24,8 +24,13 @@
#include "lcd.h"
#ifdef LCD_DEBUG
#include <stdio.h>
#define PRINT(x) printf x
#else
#define PRINT(x)
#endif
#define DISP_X LCD_WIDTH /* Display width in pixels */
#define DISP_Y LCD_HEIGHT /* Display height in pixels */
@ -168,14 +173,11 @@ void lcd_position(int x, int y)
if (x >= 0 && x < DISP_X && y >= 0 && y < DISP_Y) {
lcd_x = x;
lcd_y = y;
#ifdef LCD_DEBUG
fprintf(stderr, "lcd_position: set to %d, %d\n", x, y);
#endif
PRINT(("lcd_position: set to %d, %d\n", x, y));
}
#ifdef LCD_DEBUG
else
fprintf(stderr, "lcd_position: not set\n");
#endif
PRINT(("lcd_position: not set\n"));
}
@ -198,8 +200,12 @@ void lcd_clear(void)
*/
void lcd_char (int ch, char invert)
{
unsigned char (*dp)[DISP_X] = (void *) &display[lcd_y/8][lcd_x];
unsigned long shift, mask, col;
unsigned char yrow = lcd_y/8;
unsigned char (*dp)[LCD_WIDTH] = &display[yrow][lcd_x];
unsigned char shift, mask, col;
PRINT(("lcd_char: output %c (%02x) at %d, %d (yrow %d)\n",
ch, ch, lcd_x, lcd_y, yrow));
/* Limit to char generation table */
if (ch < ASCII_MIN || ch > ASCII_MAX)
@ -214,9 +220,14 @@ void lcd_char (int ch, char invert)
/* Write each char column */
for (col = 0; col < CHAR_X-1; col++) {
unsigned long data = (lcd_font_data[ch-ASCII_MIN][col] << shift) ^ invert;
PRINT(("OR[0]: %02x on x %d y %d \n", data&0xff, col+lcd_x, yrow));
dp[0][col] = (dp[0][col] & mask) | data;
if (lcd_y < DISP_Y-8)
if (lcd_y < DISP_Y-8) {
PRINT(("OR[1]: %02x on x %d y %d\n", (data>>8), col+lcd_x, yrow+1));
dp[1][col] = (dp[1][col] & (mask >> 8)) | (data >> 8);
}
}
/* Column after char */
@ -232,10 +243,8 @@ void lcd_string(const char *text, char invert)
{
int ch;
#ifdef LCD_DEBUG
fprintf(stderr, "lcd_string: output %s at %d, %d\n",
text, lcd_x, lcd_y);
#endif
PRINT(("lcd_string: output %s at %d, %d\n", text, lcd_x, lcd_y));
while ((ch = *text++) != '\0') {
if (lcd_y > DISP_Y-CHAR_Y) {
/* Scroll (8 pixels) */
@ -248,16 +257,13 @@ void lcd_string(const char *text, char invert)
else {
lcd_char (ch, invert);
lcd_x += CHAR_X;
}
if (lcd_x > DISP_X-CHAR_X) {
/* Wrap to next line */
lcd_x = 0;
lcd_y += CHAR_Y;
if (lcd_x > DISP_X-CHAR_X) {
/* Wrap to next line */
lcd_x = 0;
lcd_y += CHAR_Y;
}
}
}
#ifdef LCD_DEBUG
fprintf(stderr, "lcd_string: position after write: %d, %d\n",
lcd_x, lcd_y);
#endif
PRINT(("lcd_string: position after write: %d, %d\n", lcd_x, lcd_y));
}

View file

@ -224,16 +224,13 @@ screenhack (Display *the_dpy, Window the_window)
Logf("Rockbox will kill ya!");
lcd_position(1, 1);
lcd_string( "R", 0);
lcd_position(0, 6);
lcd_string( "Rock the box", 0);
lcd_position(0, 16);
lcd_string( "R", 0);
#if 0
lcd_position(8, 24);
lcd_string( "2", 0);
#endif
lcd_string( "Roolz", 0);
lcd_update();
while (1) {
/* deal with input here */