Subversion Repositories Code-Repo

Compare Revisions

Ignore whitespace Rev 121 → Rev 122

/PIC Stuff/PIC_27J13/Adafruit_GFX.c
16,6 → 16,9
gfx_data.textsize = 1;
gfx_data.textcolor = gfx_data.textbgcolor = 0xFFFF;
gfx_data.wrap = 1;
 
memset(gfx_data.lcd_buffer, 0, GFX_LCD_BUFFER_SIZE);
memset(gfx_data.buffer, 0, GFX_STRING_BUFFER_SIZE);
}
 
int GFX_Abs(int i) {
426,11 → 429,11
}
 
void GFX_write(unsigned char c) {
if (c == '\n') {
if (c == '\n' || c == '\r') {
gfx_data.cursor_y += gfx_data.textsize * 8;
gfx_data.cursor_x = 0;
} else if (c == '\r') {
// skip em
// } else if (c == '\r') {
// // skip em
} else {
GFX_drawChar(gfx_data.cursor_x, gfx_data.cursor_y, c, gfx_data.textcolor, gfx_data.textbgcolor, gfx_data.textsize);
gfx_data.cursor_x += gfx_data.textsize * 6;
443,16 → 446,62
 
void GFX_writeString(const rom char *fmt, ...) {
unsigned char i, len;
// Parse and create string
va_list args;
va_start(args, fmt);
vsprintf((char *) gfx_data.buffer, fmt, args);
va_end(args);
len = strlen((char *) gfx_data.buffer);
 
// Make sure string to insert fits in buffer, truncate if necessary
if (len > GFX_STRING_BUFFER_SIZE)
len = GFX_STRING_BUFFER_SIZE;
 
// Print buffer to string
for (i = 0; i < len; i++) {
GFX_write(gfx_data.buffer[i]);
}
}
 
void GFX_appendString(const rom char *fmt, ...) {
unsigned char i, len;
 
// Parse and create string
va_list args;
va_start(args, fmt);
vsprintf((char *) gfx_data.buffer, fmt, args);
va_end(args);
 
// Make sure string to insert fits in buffer, truncate if necessary
len = strlen((char *) gfx_data.buffer);
 
if (len == 1) { // This will only occur on "\n"
// Do nothing?
return;
}
 
if (len > GFX_STRING_BUFFER_SIZE)
len = GFX_STRING_BUFFER_SIZE;
 
// Omit the newline if string fill entire line
if (((len - 1)%(GFX_width() / 6)) == 0) { // 16 or 10
len -= 1;
}
 
// Shift everything right and insert string at beginning
for (i = 127; i > len - 1; i--) {
gfx_data.lcd_buffer[i] = gfx_data.lcd_buffer[i - len];
}
memcpy(gfx_data.lcd_buffer, gfx_data.buffer, len);
 
// Print full buffer to screen
GFX_clearScreen();
GFX_setCursor(0,0);
for (i = 0; i < GFX_LCD_BUFFER_SIZE-1; i++) {
GFX_write(gfx_data.lcd_buffer[i]);
}
}
 
void GFX_setCursor(int x, int y) {
gfx_data.cursor_x = x;
gfx_data.cursor_y = y;