summaryrefslogtreecommitdiffstats
path: root/apps/logfdisp.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2005-05-24 14:26:23 +0000
committerDaniel Stenberg <daniel@haxx.se>2005-05-24 14:26:23 +0000
commite2c4a6c642deba789016b8bd09890994a76b0728 (patch)
treec1dfbeac91ad74c00aaf19a13fb26122f88f965b /apps/logfdisp.c
parent38404c0fe00092a171b3cc4c13ee5575415338d6 (diff)
downloadrockbox-e2c4a6c642deba789016b8bd09890994a76b0728.tar.gz
rockbox-e2c4a6c642deba789016b8bd09890994a76b0728.tar.bz2
rockbox-e2c4a6c642deba789016b8bd09890994a76b0728.zip
initial take at logf log browser
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6519 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/logfdisp.c')
-rw-r--r--apps/logfdisp.c77
1 files changed, 77 insertions, 0 deletions
diff --git a/apps/logfdisp.c b/apps/logfdisp.c
new file mode 100644
index 0000000000..510cb28b57
--- /dev/null
+++ b/apps/logfdisp.c
@@ -0,0 +1,77 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id$
+ *
+ * Copyright (C) 2005 Daniel Stenberg
+ *
+ * All files in this archive are subject to the GNU General Public License.
+ * See the file COPYING in the source tree root for full license agreement.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+#include "config.h"
+#include <timefuncs.h>
+#include <string.h>
+#include <kernel.h>
+#include <button.h>
+
+#include <lcd.h>
+#include "menu.h"
+#include "logf.h"
+
+#ifdef HAVE_LCD_BITMAP
+bool logfdisplay(void)
+
+{
+ int w, h;
+ int lines;
+ int i;
+ int button;
+
+ bool lcd = false; /* fixed atm */
+ int index;
+
+ lcd_getstringsize("A", &w, &h);
+ lines = (lcd?
+#ifdef HAVE_REMOTE_LCD
+ LCD_REMOTE_HEIGHT
+#else
+ 0
+#endif
+ :LCD_HEIGHT)/h;
+ if(!lines)
+ return false;
+
+ lcd_setmargins(0, 0);
+ lcd_clear_display();
+
+ do {
+ index = logfindex;
+ for(i = lines-1; i>=0; i--) {
+ unsigned char buffer[17];
+
+ if(--index < 0) {
+ if(logfwrap)
+ index = MAX_LOGF_LINES-1;
+ else
+ break; /* done */
+ }
+
+ memcpy(buffer, logfbuffer[index], 16);
+ buffer[16]=0;
+ lcd_puts(0, i, buffer);
+ }
+ lcd_update();
+ button = button_get_w_tmo(HZ/2);
+ } while(button != BUTTON_OFF);
+
+ return false;
+}
+#endif