From dbf5d92605a9db10e3e3cb154d03a515c5d5c5af Mon Sep 17 00:00:00 2001 From: reinelt Date: Sun, 8 May 2005 04:32:45 +0000 Subject: [lcd4linux @ 2005-05-08 04:32:43 by reinelt] CodingStyle added and applied git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@547 3ae390bd-cb1e-0410-b409-cd5a39f66f1f --- drv_generic_graphic.c | 475 ++++++++++++++++++++++++++------------------------ 1 file changed, 243 insertions(+), 232 deletions(-) (limited to 'drv_generic_graphic.c') diff --git a/drv_generic_graphic.c b/drv_generic_graphic.c index b7240b7..80fe3cd 100644 --- a/drv_generic_graphic.c +++ b/drv_generic_graphic.c @@ -23,6 +23,9 @@ * * * $Log: drv_generic_graphic.c,v $ + * Revision 1.15 2005/05/08 04:32:44 reinelt + * CodingStyle added and applied + * * Revision 1.14 2005/01/18 06:30:23 reinelt * added (C) to all copyright statements * @@ -137,12 +140,12 @@ #endif -static char *Section=NULL; -static char *Driver=NULL; +static char *Section = NULL; +static char *Driver = NULL; -int DROWS, DCOLS; /* display size (pixels!) */ -int LROWS, LCOLS; /* layout size (pixels!) */ -int XRES, YRES; /* pixels of one char cell */ +int DROWS, DCOLS; /* display size (pixels!) */ +int LROWS, LCOLS; /* layout size (pixels!) */ +int XRES, YRES; /* pixels of one char cell */ unsigned char *drv_generic_graphic_FB = NULL; @@ -151,44 +154,46 @@ unsigned char *drv_generic_graphic_FB = NULL; /*** generic Framebuffer stuff ***/ /****************************************/ -static void drv_generic_graphic_resizeFB (int rows, int cols) +static void drv_generic_graphic_resizeFB(int rows, int cols) { - unsigned char *newFB; - int row, col; - - /* Layout FB is large enough */ - if (rows<=LROWS && cols<=LCOLS) - return; - - /* get maximum values */ - if (rows>= 1; - drv_generic_graphic_FB[(r+y) * LCOLS + c + x] = Font_6x8[(int)*txt][y]&mask ? 1:0; - } + int c, r, x, y; + int len = strlen(txt); + + /* maybe grow layout framebuffer */ + drv_generic_graphic_resizeFB(row + YRES, col + XRES * len); + + r = row; + c = col; + + /* render text into layout FB */ + while (*txt != '\0') { + for (y = 0; y < YRES; y++) { + int mask = 1 << XRES; + for (x = 0; x < XRES; x++) { + mask >>= 1; + drv_generic_graphic_FB[(r + y) * LCOLS + c + x] = Font_6x8[(int) *txt][y] & mask ? 1 : 0; + } + } + c += XRES; + txt++; } - c += XRES; - txt++; - } - - /* flush area */ - drv_generic_graphic_real_blit (row, col, YRES, XRES*len); + + /* flush area */ + drv_generic_graphic_real_blit(row, col, YRES, XRES * len); } /* say hello to the user */ -int drv_generic_graphic_greet (const char *msg1, const char *msg2) +int drv_generic_graphic_greet(const char *msg1, const char *msg2) { - char *line1[] = { "* LCD4Linux " VERSION " *", - "LCD4Linux " VERSION, - "* LCD4Linux *", - "LCD4Linux", - "L4Linux", - NULL }; - - char *line2[] = { "http://lcd4linux.bulix.org", - "lcd4linux.bulix.org", - NULL }; - - int i; - int flag = 0; - - unsigned int cols = DCOLS/XRES; - unsigned int rows = DROWS/YRES; - - for (i = 0; line1[i]; i++) { - if (strlen(line1[i]) <= cols) { - drv_generic_graphic_render (YRES * 0 , XRES * (cols-strlen(line1[i]))/2, line1[i]); - flag = 1; - break; + char *line1[] = { "* LCD4Linux " VERSION " *", + "LCD4Linux " VERSION, + "* LCD4Linux *", + "LCD4Linux", + "L4Linux", + NULL + }; + + char *line2[] = { "http://lcd4linux.bulix.org", + "lcd4linux.bulix.org", + NULL + }; + + int i; + int flag = 0; + + unsigned int cols = DCOLS / XRES; + unsigned int rows = DROWS / YRES; + + for (i = 0; line1[i]; i++) { + if (strlen(line1[i]) <= cols) { + drv_generic_graphic_render(YRES * 0, XRES * (cols - strlen(line1[i])) / 2, line1[i]); + flag = 1; + break; + } } - } - if (rows >= 2) { - for (i = 0; line2[i]; i++) { - if (strlen(line2[i]) <= cols) { - drv_generic_graphic_render (YRES * 1, XRES * (cols-strlen(line2[i]))/2, line2[i]); - flag = 1; - break; - } + if (rows >= 2) { + for (i = 0; line2[i]; i++) { + if (strlen(line2[i]) <= cols) { + drv_generic_graphic_render(YRES * 1, XRES * (cols - strlen(line2[i])) / 2, line2[i]); + flag = 1; + break; + } + } } - } - - if (msg1 && rows >= 3) { - unsigned int len = strlen(msg1); - if ( len <= cols) { - drv_generic_graphic_render (YRES * 2, XRES * (cols-len)/2, msg1); - flag = 1; + + if (msg1 && rows >= 3) { + unsigned int len = strlen(msg1); + if (len <= cols) { + drv_generic_graphic_render(YRES * 2, XRES * (cols - len) / 2, msg1); + flag = 1; + } } - } - - if (msg2 && rows >= 4) { - unsigned int len = strlen(msg2); - if ( len <= cols) { - drv_generic_graphic_render (YRES * 3, XRES * (cols-len)/2, msg2); - flag = 1; + + if (msg2 && rows >= 4) { + unsigned int len = strlen(msg2); + if (len <= cols) { + drv_generic_graphic_render(YRES * 3, XRES * (cols - len) / 2, msg2); + flag = 1; + } } - } - return flag; + return flag; } -int drv_generic_graphic_draw (WIDGET *W) +int drv_generic_graphic_draw(WIDGET * W) { - WIDGET_TEXT *Text = W->data; - drv_generic_graphic_render (YRES * W->row, XRES * W->col, Text->buffer); - return 0; + WIDGET_TEXT *Text = W->data; + drv_generic_graphic_render(YRES * W->row, XRES * W->col, Text->buffer); + return 0; } @@ -296,38 +303,38 @@ int drv_generic_graphic_draw (WIDGET *W) /*** generic icon handling ***/ /****************************************/ -int drv_generic_graphic_icon_draw (WIDGET *W) +int drv_generic_graphic_icon_draw(WIDGET * W) { - WIDGET_ICON *Icon = W->data; - unsigned char *bitmap = Icon->bitmap+YRES*Icon->curmap; - int row, col; - int x, y; - - row = YRES*W->row; - col = XRES*W->col; - - /* maybe grow layout framebuffer */ - drv_generic_graphic_resizeFB (row+YRES, col+XRES); - - /* render icon */ - for (y=0; y>= 1; - if (Icon->visible) { - drv_generic_graphic_FB[i] = bitmap[y]&mask ? 1 : 0; - } else { - drv_generic_graphic_FB[i] = 0; - } + WIDGET_ICON *Icon = W->data; + unsigned char *bitmap = Icon->bitmap + YRES * Icon->curmap; + int row, col; + int x, y; + + row = YRES * W->row; + col = XRES * W->col; + + /* maybe grow layout framebuffer */ + drv_generic_graphic_resizeFB(row + YRES, col + XRES); + + /* render icon */ + for (y = 0; y < YRES; y++) { + int mask = 1 << XRES; + for (x = 0; x < XRES; x++) { + int i = (row + y) * LCOLS + col + x; + mask >>= 1; + if (Icon->visible) { + drv_generic_graphic_FB[i] = bitmap[y] & mask ? 1 : 0; + } else { + drv_generic_graphic_FB[i] = 0; + } + } } - } - /* flush area */ - drv_generic_graphic_real_blit (row, col, YRES, XRES); + /* flush area */ + drv_generic_graphic_real_blit(row, col, YRES, XRES); + + return 0; - return 0; - } @@ -335,76 +342,80 @@ int drv_generic_graphic_icon_draw (WIDGET *W) /*** generic bar handling ***/ /****************************************/ -int drv_generic_graphic_bar_draw (WIDGET *W) +int drv_generic_graphic_bar_draw(WIDGET * W) { - WIDGET_BAR *Bar = W->data; - int row, col, len, res, rev, max, val1, val2; - int x, y; - DIRECTION dir; - - row = YRES*W->row; - col = XRES*W->col; - dir = Bar->direction; - len = Bar->length; - - /* maybe grow layout framebuffer */ - if (dir & (DIR_EAST|DIR_WEST)) { - drv_generic_graphic_resizeFB (row+YRES, col+XRES*len); - } else { - drv_generic_graphic_resizeFB (row+YRES*len, col+XRES); - } - - res = dir & (DIR_EAST|DIR_WEST)?XRES:YRES; - max = len * res; - val1 = Bar->val1 * (double)(max); - val2 = Bar->val2 * (double)(max); - - if (val1<1) val1=1; - else if (val1>max) val1=max; - - if (val2<1) val2=1; - else if (val2>max) val2=max; - - rev=0; - - switch (dir) { - case DIR_WEST: - val1=max-val1; - val2=max-val2; - rev=1; - - case DIR_EAST: - for (y=0; ydata; + int row, col, len, res, rev, max, val1, val2; + int x, y; + DIRECTION dir; + + row = YRES * W->row; + col = XRES * W->col; + dir = Bar->direction; + len = Bar->length; + + /* maybe grow layout framebuffer */ + if (dir & (DIR_EAST | DIR_WEST)) { + drv_generic_graphic_resizeFB(row + YRES, col + XRES * len); + } else { + drv_generic_graphic_resizeFB(row + YRES * len, col + XRES); } - break; - - case DIR_SOUTH: - val1=max-val1; - val2=max-val2; - rev=1; - - case DIR_NORTH: - for (y=0; yval1 * (double) (max); + val2 = Bar->val2 * (double) (max); + + if (val1 < 1) + val1 = 1; + else if (val1 > max) + val1 = max; + + if (val2 < 1) + val2 = 1; + else if (val2 > max) + val2 = max; + + rev = 0; + + switch (dir) { + case DIR_WEST: + val1 = max - val1; + val2 = max - val2; + rev = 1; + + case DIR_EAST: + for (y = 0; y < YRES; y++) { + int val = y < YRES / 2 ? val1 : val2; + for (x = 0; x < max; x++) { + drv_generic_graphic_FB[(row + y) * LCOLS + col + x] = x < val ? !rev : rev; + } + } + break; + + case DIR_SOUTH: + val1 = max - val1; + val2 = max - val2; + rev = 1; + + case DIR_NORTH: + for (y = 0; y < max; y++) { + for (x = 0; x < XRES; x++) { + int val = x < XRES / 2 ? val1 : val2; + drv_generic_graphic_FB[(row + y) * LCOLS + col + x] = y < val ? !rev : rev; + } + } + break; + } + + /* flush area */ + if (dir & (DIR_EAST | DIR_WEST)) { + drv_generic_graphic_real_blit(row, col, YRES, XRES * len); + } else { + drv_generic_graphic_real_blit(row, col, YRES * len, XRES); } - break; - } - - /* flush area */ - if (dir & (DIR_EAST|DIR_WEST)) { - drv_generic_graphic_real_blit (row, col, YRES, XRES*len); - } else { - drv_generic_graphic_real_blit (row, col, YRES*len, XRES); - } - - return 0; + + return 0; } @@ -412,34 +423,34 @@ int drv_generic_graphic_bar_draw (WIDGET *W) /*** generic init/quit ***/ /****************************************/ -int drv_generic_graphic_init (const char *section, const char *driver) +int drv_generic_graphic_init(const char *section, const char *driver) { - Section = (char*)section; - Driver = (char*)driver; - - /* init layout framebuffer */ - LROWS = 0; - LCOLS = 0; - drv_generic_graphic_FB=NULL; - drv_generic_graphic_resizeFB (DROWS, DCOLS); - - /* sanity check */ - if (drv_generic_graphic_FB==NULL) { - error ("%s: framebuffer could not be allocated: malloc() failed", Driver); - return -1; - } - - return 0; + Section = (char *) section; + Driver = (char *) driver; + + /* init layout framebuffer */ + LROWS = 0; + LCOLS = 0; + drv_generic_graphic_FB = NULL; + drv_generic_graphic_resizeFB(DROWS, DCOLS); + + /* sanity check */ + if (drv_generic_graphic_FB == NULL) { + error("%s: framebuffer could not be allocated: malloc() failed", Driver); + return -1; + } + + return 0; } -int drv_generic_graphic_quit (void) +int drv_generic_graphic_quit(void) { - if (drv_generic_graphic_FB) { - free(drv_generic_graphic_FB); - drv_generic_graphic_FB=NULL; - } - - widget_unregister(); - return (0); + if (drv_generic_graphic_FB) { + free(drv_generic_graphic_FB); + drv_generic_graphic_FB = NULL; + } + + widget_unregister(); + return (0); } -- cgit v1.2.3