aboutsummaryrefslogtreecommitdiffstats
path: root/drv_generic_graphic.c
diff options
context:
space:
mode:
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2005-05-08 04:32:45 +0000
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2005-05-08 04:32:45 +0000
commitdbf5d92605a9db10e3e3cb154d03a515c5d5c5af (patch)
tree501d5dda3ce90fe924b893e487d9ef9f0683382b /drv_generic_graphic.c
parenta1c471e9fb7cadb68bb182ab2e9715a0aa092386 (diff)
downloadlcd4linux-dbf5d92605a9db10e3e3cb154d03a515c5d5c5af.tar.gz
[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
Diffstat (limited to 'drv_generic_graphic.c')
-rw-r--r--drv_generic_graphic.c475
1 files changed, 243 insertions, 232 deletions
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<LROWS) rows=LROWS;
- if (cols<LCOLS) cols=LCOLS;
-
- /* allocate new Layout FB */
- newFB = malloc(cols*rows*sizeof(char));
- memset (newFB, 0, rows*cols*sizeof(char));
-
- /* transfer contents */
- if (drv_generic_graphic_FB!=NULL) {
- for (row=0; row<LROWS; row++) {
- for (col=0; col<LCOLS; col++) {
- newFB[row*cols+col]=drv_generic_graphic_FB[row*LCOLS+col];
- }
+ unsigned char *newFB;
+ int row, col;
+
+ /* Layout FB is large enough */
+ if (rows <= LROWS && cols <= LCOLS)
+ return;
+
+ /* get maximum values */
+ if (rows < LROWS)
+ rows = LROWS;
+ if (cols < LCOLS)
+ cols = LCOLS;
+
+ /* allocate new Layout FB */
+ newFB = malloc(cols * rows * sizeof(char));
+ memset(newFB, 0, rows * cols * sizeof(char));
+
+ /* transfer contents */
+ if (drv_generic_graphic_FB != NULL) {
+ for (row = 0; row < LROWS; row++) {
+ for (col = 0; col < LCOLS; col++) {
+ newFB[row * cols + col] = drv_generic_graphic_FB[row * LCOLS + col];
+ }
+ }
+ free(drv_generic_graphic_FB);
}
- free (drv_generic_graphic_FB);
- }
- drv_generic_graphic_FB = newFB;
-
- LCOLS = cols;
- LROWS = rows;
+ drv_generic_graphic_FB = newFB;
+
+ LCOLS = cols;
+ LROWS = rows;
}
-int drv_generic_graphic_clear (void)
+int drv_generic_graphic_clear(void)
{
- memset(drv_generic_graphic_FB, 0, DCOLS*DROWS*sizeof(*drv_generic_graphic_FB));
- drv_generic_graphic_real_blit (0, 0, DROWS, DCOLS);
- return 0;
+ memset(drv_generic_graphic_FB, 0, DCOLS * DROWS * sizeof(*drv_generic_graphic_FB));
+ drv_generic_graphic_real_blit(0, 0, DROWS, DCOLS);
+ return 0;
}
@@ -196,99 +201,101 @@ int drv_generic_graphic_clear (void)
/*** generic text handling ***/
/****************************************/
-static void drv_generic_graphic_render (const int row, const int col, const char *txt)
+static void drv_generic_graphic_render(const int row, const int col, const char *txt)
{
- 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;
- }
+ 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<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;
- }
+ 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; 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;
- }
+ 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);
}
- 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;
- }
+
+ 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; 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);
}