thermferm/lcd-buffer.c

changeset 204
9a14d6b2de7f
parent 200
a215ddaabbe2
child 205
ca18ff45deba
--- a/thermferm/lcd-buffer.c	Sat Aug 09 23:13:56 2014 +0200
+++ b/thermferm/lcd-buffer.c	Sun Aug 10 12:09:07 2014 +0200
@@ -30,8 +30,6 @@
 
 int			current_lines = 0;
 int			current_offset = 0;
-int			first_time = 1;
-int			previous_key = KEY_NONE;
 lcd_rows		*my_lcd_rows = NULL;
 
 extern int		lcdHandle;
@@ -90,43 +88,37 @@
 
 
 
-/*
- * This will be called from the main thread if not in edit mode.
- */
-void lcd_buf_show(void)
+void lcd_buf_step(void)
 {
-    int		i = 0, r = 0, key, doit = FALSE;
-    lcd_rows	*tmp;
+    int		key;
 
     key = keycheck();
 
-    if ((key == KEY_NONE) && (previous_key == KEY_DOWN)) {
+    if (key == KEY_DOWN) {
 	if (current_offset < (current_lines - Config.lcd_rows))
 	    current_offset = current_offset + Config.lcd_rows;
 	else
 	    current_offset = 0;
-	doit = TRUE;
+	lcd_buf_show();
     }
-    if ((key == KEY_NONE) && (previous_key == KEY_UP)) {
+    if (key == KEY_UP) {
 	if (current_offset > Config.lcd_rows)
 	    current_offset = current_offset - Config.lcd_rows;
 	else
 	    current_offset = (current_lines - Config.lcd_rows);
-	doit = TRUE;
+	lcd_buf_show();
     }
-    previous_key = key;
+}
+
 
 
-    /*
-     * Make sure the display works when the program starts.
-     */
-    if (first_time) {
-	first_time = 0;
-	doit = TRUE;
-    }
-
-    if (! doit)
-	return;
+/*
+ * This will be called from the main thread every second.
+ */
+void lcd_buf_show(void)
+{
+    int		i = 0, r = 0;
+    lcd_rows	*tmp;
 
     for (tmp = my_lcd_rows; tmp; tmp = tmp->next) {
 	if (i == current_offset)

mercurial