Updated svgalib driver, lb216 driver, and bayrad driver:

* Remove all references to lcd.*
* Remove all references to base driver functions
This commit is contained in:
ddouthitt
2001-09-25 21:18:40 +00:00
parent 7bae66ab97
commit 0ab3148268
3 changed files with 57 additions and 51 deletions
+20 -20
View File
@@ -474,10 +474,10 @@ int bayrad_init(struct lcd_logical_driver *driver, char *args)
void bayrad_close() void bayrad_close()
{ {
if(lcd.framebuf != NULL) if(bayrad->framebuf != NULL)
free(lcd.framebuf); free(bayrad->framebuf);
lcd.framebuf = NULL; bayrad->framebuf = NULL;
write(fd, "\x8e\x00", 2); // Backlight OFF write(fd, "\x8e\x00", 2); // Backlight OFF
//fprintf(stderr, "\nClosing BayRAD.\n"); //fprintf(stderr, "\nClosing BayRAD.\n");
@@ -490,7 +490,7 @@ void bayrad_close()
// //
void bayrad_clear() void bayrad_clear()
{ {
memset(lcd.framebuf, ' ', lcd.wid*lcd.hgt); memset(bayrad->framebuf, ' ', bayrad->wid*bayrad->hgt);
} }
@@ -504,9 +504,9 @@ void bayrad_flush()
//fprintf(stderr, "\nBayRAD flush"); //fprintf(stderr, "\nBayRAD flush");
write(fd, "\x80\x1e", 2); //sync, home write(fd, "\x80\x1e", 2); //sync, home
write(fd, lcd.framebuf, 20); write(fd, bayrad->framebuf, 20);
write(fd, "\x1e\x0a", 2); //home, LF write(fd, "\x1e\x0a", 2); //home, LF
write(fd, lcd.framebuf+20, 20); write(fd, bayrad->framebuf+20, 20);
return; return;
} }
@@ -528,7 +528,7 @@ void bayrad_string(int x, int y, char string[])
for(i=0; string[i]; i++) for(i=0; string[i]; i++)
{ {
// Check for buffer overflows... // Check for buffer overflows...
if((y*lcd.wid) + x + i > (lcd.wid*lcd.hgt)) if((y*bayrad->wid) + x + i > (bayrad->wid*bayrad->hgt))
break; break;
c = (unsigned char) string[i]; c = (unsigned char) string[i];
@@ -545,7 +545,7 @@ void bayrad_string(int x, int y, char string[])
c += 0x98; /* as 0x07 makes a beep instead of printing a character */ c += 0x98; /* as 0x07 makes a beep instead of printing a character */
lcd.framebuf[(y*lcd.wid) + x + i] = c; bayrad->framebuf[(y*bayrad->wid) + x + i] = c;
} }
} }
@@ -571,7 +571,7 @@ void bayrad_chr(int x, int y, char c)
/* No shifting the custom chars here, so bayrad_chr() can beep */ /* No shifting the custom chars here, so bayrad_chr() can beep */
lcd.framebuf[(y*lcd.wid) + x] = ch; bayrad->framebuf[(y*bayrad->wid) + x] = ch;
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@@ -672,13 +672,13 @@ void bayrad_set_char(int n, char *dat)
snprintf(out, sizeof(out), "\x88%c", n); snprintf(out, sizeof(out), "\x88%c", n);
write(fd, out, 2); write(fd, out, 2);
for(row=0; row<lcd.cellhgt; row++) for(row=0; row<bayrad->cellhgt; row++)
{ {
letter = 0; letter = 0;
for(col=0; col<lcd.cellwid; col++) for(col=0; col<bayrad->cellwid; col++)
{ {
letter <<= 1; letter <<= 1;
letter |= (dat[(row*lcd.cellwid) + col] > 0); letter |= (dat[(row*bayrad->cellwid) + col] > 0);
} }
write(fd, &letter, 1); write(fd, &letter, 1);
} }
@@ -698,17 +698,17 @@ void bayrad_vbar(int x, int len)
//fprintf(stderr, "\nVbar at %i, length %i", x, len); //fprintf(stderr, "\nVbar at %i, length %i", x, len);
if(len >= lcd.cellhgt) if(len >= bayrad->cellhgt)
{ {
bayrad_chr(x, y, 0xFF); bayrad_chr(x, y, 0xFF);
len -= lcd.cellhgt; len -= bayrad->cellhgt;
y = 1; y = 1;
} }
if(!len) if(!len)
return; return;
if(len > lcd.cellhgt) if(len > bayrad->cellhgt)
{ {
bayrad_chr(x, y, '^'); /* Show we've gone off the chart */ bayrad_chr(x, y, '^'); /* Show we've gone off the chart */
return; return;
@@ -731,16 +731,16 @@ void bayrad_hbar(int x, int y, int len)
//fprintf(stderr, "\nHbar at %i,%i; length %i", x, y, len); //fprintf(stderr, "\nHbar at %i,%i; length %i", x, y, len);
while((x <= lcd.wid) && (len > 0)) while((x <= bayrad->wid) && (len > 0))
{ {
if(len < lcd.cellwid) if(len < bayrad->cellwid)
{ {
bayrad_chr(x, y, 0x98 + len); bayrad_chr(x, y, 0x98 + len);
break; break;
} }
bayrad_chr(x, y, 0xFF); bayrad_chr(x, y, 0xFF);
len -= lcd.cellwid; len -= bayrad->cellwid;
x++; x++;
} }
@@ -783,9 +783,9 @@ void bayrad_draw_frame(char *dat)
//fprintf(stderr, "\nBayRAD draw frame"); //fprintf(stderr, "\nBayRAD draw frame");
write(fd, "\x80\x1e", 2); // NOP, home write(fd, "\x80\x1e", 2); // NOP, home
write(fd, lcd.framebuf, 20); write(fd, bayrad->framebuf, 20);
write(fd, "\n", 1); write(fd, "\n", 1);
write(fd, lcd.framebuf+20, 20); write(fd, bayrad->framebuf+20, 20);
} }
+19 -19
View File
@@ -211,8 +211,8 @@ int LB216_init(lcd_logical_driver *driver, char *args)
driver->icon = LB216_icon; driver->icon = LB216_icon;
driver->draw_frame = LB216_draw_frame; driver->draw_frame = LB216_draw_frame;
lcd.cellwid = 5; LB216->cellwid = 5;
lcd.cellhgt = 8; LB216->cellhgt = 8;
debug("LB216: foo!\n"); debug("LB216: foo!\n");
@@ -236,7 +236,7 @@ void LB216_close()
void LB216_flush() void LB216_flush()
{ {
LB216_draw_frame(lcd.framebuf); LB216_draw_frame(LB216->framebuf);
} }
@@ -251,7 +251,7 @@ void LB216_chr(int x, int y, char c)
// x--; // x--;
//if(c < 32 && c >= 0) c += 128; //if(c < 32 && c >= 0) c += 128;
// lcd.framebuf[(y*lcd.wid) + x] = c; // LB216->framebuf[(y*LB216->wid) + x] = c;
char chr[1]; char chr[1];
snprintf (chr, sizeof(chr), "%c", c); snprintf (chr, sizeof(chr), "%c", c);
LB216_string (x, y, chr); LB216_string (x, y, chr);
@@ -301,7 +301,7 @@ static void LB216_reboot()
///////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////
// Blasts a single frame onscreen, to the lcd... // Blasts a single frame onscreen, to the lcd...
// //
// Input is a character array, sized lcd.wid*lcd.hgt // Input is a character array, sized LB216->wid*LB216->hgt
// //
void LB216_draw_frame(char *dat) void LB216_draw_frame(char *dat)
{ {
@@ -313,15 +313,15 @@ void LB216_draw_frame(char *dat)
snprintf (out, sizeof(out), "%c%c", 254,80); snprintf (out, sizeof(out), "%c%c", 254,80);
write(fd, out, 2); write(fd, out, 2);
for(j=0; j<lcd.hgt; j++) { for(j=0; j<LB216->hgt; j++) {
if (j>=2) { if (j>=2) {
snprintf (out, sizeof(out),"%c%c",254,148+(64*(j-2))); snprintf (out, sizeof(out),"%c%c",254,148+(64*(j-2)));
} else { } else {
snprintf (out, sizeof(out),"%c%c",254,128+(64*(j))); snprintf (out, sizeof(out),"%c%c",254,128+(64*(j)));
} }
write(fd, out, 2); write(fd, out, 2);
for(i=0; i<lcd.wid; i++) { for(i=0; i<LB216->wid; i++) {
snprintf (out, sizeof(out),"%c",dat[i+(j*lcd.wid)]); snprintf (out, sizeof(out),"%c",dat[i+(j*LB216->wid)]);
write(fd, out, 1); write(fd, out, 1);
} }
} }
@@ -341,13 +341,13 @@ void LB216_string (int x, int y, char string[])
{ {
case '\254': c = '#'; break; case '\254': c = '#'; break;
} }
lcd.framebuf[(y*lcd.wid) + x+i] = c; LB216->framebuf[(y*LB216->wid) + x+i] = c;
} }
} }
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
// Sets up for vertical bars. Call before lcd.vbar() // Sets up for vertical bars. Call before LB216->vbar()
// //
void LB216_init_vbar() void LB216_init_vbar()
{ {
@@ -510,12 +510,12 @@ void LB216_vbar(int x, int len)
int y; int y;
for(y=lcd.hgt; y > 0 && len>0; y--) for(y=LB216->hgt; y > 0 && len>0; y--)
{ {
if(len >= lcd.cellhgt) LB216_chr(x, y, 255); if(len >= LB216->cellhgt) LB216_chr(x, y, 255);
else LB216_chr(x, y, map[len]); else LB216_chr(x, y, map[len]);
len -= lcd.cellhgt; len -= LB216->cellhgt;
} }
} }
@@ -527,13 +527,13 @@ void LB216_hbar(int x, int y, int len)
{ {
char map[7] = { 32, 1, 2, 3, 4, 5 }; char map[7] = { 32, 1, 2, 3, 4, 5 };
for(; x<=lcd.wid && len>0; x++) for(; x<=LB216->wid && len>0; x++)
{ {
if(len >= lcd.cellwid) LB216_chr(x,y,map[5]); if(len >= LB216->cellwid) LB216_chr(x,y,map[5]);
else LB216_chr(x, y, map[len]); else LB216_chr(x, y, map[len]);
//printf ("%d,",len); //printf ("%d,",len);
len -= lcd.cellwid; len -= LB216->cellwid;
} }
// printf ("\n"); // printf ("\n");
@@ -561,13 +561,13 @@ void LB216_set_char(int n, char *dat)
snprintf (out, sizeof(out), "%c%c", 254, n); snprintf (out, sizeof(out), "%c%c", 254, n);
write(fd, out, 2); write(fd, out, 2);
for(row=0; row<lcd.cellhgt; row++) for(row=0; row<LB216->cellhgt; row++)
{ {
letter = 1; letter = 1;
for(col=0; col<lcd.cellwid; col++) for(col=0; col<LB216->cellwid; col++)
{ {
letter <<= 1; letter <<= 1;
letter |= (dat[(row*lcd.cellwid) + col] > 0); letter |= (dat[(row*LB216->cellwid) + col] > 0);
} }
snprintf (out, sizeof(out),"%c",letter); snprintf (out, sizeof(out),"%c",letter);
write(fd, out, 1); write(fd, out, 1);
+18 -12
View File
@@ -282,9 +282,9 @@ svgalib_drv_init (struct lcd_logical_driver *driver, char *args)
driver->string = svgalib_drv_string; driver->string = svgalib_drv_string;
driver->chr = svgalib_drv_chr; driver->chr = svgalib_drv_chr;
driver->vbar = svgalib_drv_vbar; driver->vbar = svgalib_drv_vbar;
driver->init_vbar = NULL; //driver->init_vbar = NULL;
driver->hbar = svgalib_drv_hbar; driver->hbar = svgalib_drv_hbar;
driver->init_hbar = NULL; //driver->init_hbar = NULL;
driver->num = svgalib_drv_num; driver->num = svgalib_drv_num;
driver->init_num = svgalib_drv_init_num; driver->init_num = svgalib_drv_init_num;
@@ -292,9 +292,9 @@ svgalib_drv_init (struct lcd_logical_driver *driver, char *args)
driver->close = svgalib_drv_close; driver->close = svgalib_drv_close;
driver->flush = svgalib_drv_flush; driver->flush = svgalib_drv_flush;
driver->flush_box = svgalib_drv_flush_box; driver->flush_box = svgalib_drv_flush_box;
driver->contrast = NULL; //driver->contrast = NULL;
driver->backlight = NULL; //driver->backlight = NULL;
driver->set_char = NULL; //driver->set_char = NULL;
driver->icon = svgalib_drv_icon; driver->icon = svgalib_drv_icon;
driver->draw_frame = svgalib_drv_draw_frame; driver->draw_frame = svgalib_drv_draw_frame;
@@ -308,11 +308,17 @@ svgalib_drv_init (struct lcd_logical_driver *driver, char *args)
return 1; return 1;
} }
/////////////////////////////////////////////////////////////////
// Close down driver
//
void void
svgalib_drv_close () svgalib_drv_close ()
{ {
vga_setmode (TEXT); vga_setmode (TEXT);
drv_base_close (); if (svgalib_drv->framebuf != NULL)
free (svgalib_drv->framebuf);
svgalib_drv->framebuf = NULL;
} }
void void
@@ -401,13 +407,13 @@ svgalib_drv_vbar (int x, int len)
char map[] = "_.,,ooO8"; char map[] = "_.,,ooO8";
int y; int y;
for (y = lcd.hgt; y > 0 && len > 0; y--) { for (y = svgalib_drv->hgt; y > 0 && len > 0; y--) {
if (len >= lcd.cellhgt) if (len >= svgalib_drv->cellhgt)
svgalib_drv_chr (x, y, '8'); svgalib_drv_chr (x, y, '8');
else else
svgalib_drv_chr (x, y, map[len - 1]); svgalib_drv_chr (x, y, map[len - 1]);
len -= lcd.cellhgt; len -= svgalib_drv->cellhgt;
} }
} }
@@ -417,13 +423,13 @@ svgalib_drv_vbar (int x, int len)
void void
svgalib_drv_hbar (int x, int y, int len) svgalib_drv_hbar (int x, int y, int len)
{ {
for (; x <= lcd.wid && len > 0; x++) { for (; x <= svgalib_drv->wid && len > 0; x++) {
if (len >= lcd.cellwid) if (len >= svgalib_drv->cellwid)
svgalib_drv_chr (x, y, '='); svgalib_drv_chr (x, y, '=');
else else
svgalib_drv_chr (x, y, '-'); svgalib_drv_chr (x, y, '-');
len -= lcd.cellwid; len -= svgalib_drv->cellwid;
} }
} }