Add configurable options for HD44780 LCD display columns and rows.
[bertos.git] / bertos / mware / blanker.c
index 5cf5247e7f350c4ed02b646648665d8d5d4b3b8e..4168504cee2e128d21b466f4d000f5f7394aacb6 100644 (file)
  * the GNU General Public License.
  *
  * Copyright 2006 Develer S.r.l. (http://www.develer.com/)
- * Copyright 2001 Bernardo Innocenti <bernie@codewiz.org>
+ * Copyright 2001 Bernie Innocenti <bernie@codewiz.org>
  * -->
  *
  * \brief Display Blanker (implementation).
  *
  * \version $Id$
  *
- * \author Bernardo Innocenti <bernie@develer.com>
+ * \author Bernie Innocenti <bernie@codewiz.org>
  */
 
 #include "blanker.h"
+#include "hw/hw_blanker.h"
+
 #include <drv/kbd.h>
 #include <drv/timer.h>
 
 /* Time without input events before starting blanker */
 #define BLK_BLANKTIMEOUT       (15 * 1000)     /* ms */
 
-// TODO: move to blanker_hw.h
-#include <drv/power.h>
-#define BLK_LCDON      power_LcdOn()
-#define BLK_LCDOFF     power_LcdOff()
 
+#warning FIXME:Revise me!
 
 /** Keyboard event handler to listen for key presses in blanker. */
 static KbdHandler blk_KbdHandler;
@@ -96,25 +95,25 @@ void blk_retrigger(void)
  */
 static void blk_hack(void)
 {
-       static signed char blk_colstart[LCD_COLS];
+       static signed char blk_colstart[CONFIG_LCD_COLS];
        UBYTE row, col;
 
 
        if (rand()%3 == 0)
        {
                /* Modify one column */
-               col = rand() % LCD_COLS;
+               col = rand() % CONFIG_LCD_COLS;
                blk_colstart[col] += rand() % 12 - 5;
        }
 
-       for (col = 0; col < LCD_COLS; ++col)
+       for (col = 0; col < CONFIG_LCD_COLS; ++col)
        {
                if (blk_colstart[col] > 0)
                {
                        --blk_colstart[col];
 
                        /* Scroll down */
-                       for(row = LCD_ROWS-1; row; --row)
+                       for(row = CONFIG_LCD_ROWS-1; row; --row)
                        {
                                lcd_SetAddr(blk_layer, LCD_POS(col,row));
                                lcd_PutChar(blk_layer->Buf[LCD_POS(col,row-1)], blk_layer);
@@ -129,7 +128,7 @@ static void blk_hack(void)
                        ++blk_colstart[col];
 
                        /* Clear tail */
-                       for(row = 0; row < LCD_ROWS; ++row)
+                       for(row = 0; row < CONFIG_LCD_ROWS; ++row)
                        {
                                if (blk_layer->Buf[LCD_POS(col,row)] != ' ')
                                {
@@ -220,3 +219,4 @@ void blk_disable(void)
                blk_enabled = false;
        }
 }
+