summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2005-06-01 13:07:37 +0000
committerDaniel Stenberg <daniel@haxx.se>2005-06-01 13:07:37 +0000
commitc95319f6fd456d1b5771c466421e1b2038a06c7c (patch)
tree5ddb443f4b1b9635da6950112a1acf400dfb2994
parente6910760b15a14d1ac4366ad3c8af41bba234b0f (diff)
downloadrockbox-c95319f6fd456d1b5771c466421e1b2038a06c7c.tar.gz
rockbox-c95319f6fd456d1b5771c466421e1b2038a06c7c.zip
Added logfdump - that writes the internal logf log to .rockbox/logf.txt
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6545 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/debug_menu.c1
-rw-r--r--apps/logfdisp.c38
-rw-r--r--apps/logfdisp.h1
-rw-r--r--apps/main_menu.c1
4 files changed, 41 insertions, 0 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c
index 5f4e67f537..b861e80ad6 100644
--- a/apps/debug_menu.c
+++ b/apps/debug_menu.c
@@ -2050,6 +2050,7 @@ bool debug_menu(void)
2050#endif 2050#endif
2051#ifdef ROCKBOX_HAS_LOGF 2051#ifdef ROCKBOX_HAS_LOGF
2052 {"logf", logfdisplay }, 2052 {"logf", logfdisplay },
2053 {"logfdump", logfdump },
2053#endif 2054#endif
2054 }; 2055 };
2055 2056
diff --git a/apps/logfdisp.c b/apps/logfdisp.c
index 36c4997aa8..e3aa29fb76 100644
--- a/apps/logfdisp.c
+++ b/apps/logfdisp.c
@@ -19,6 +19,8 @@
19#include "config.h" 19#include "config.h"
20 20
21#ifdef ROCKBOX_HAS_LOGF 21#ifdef ROCKBOX_HAS_LOGF
22#include <file.h>
23#include <sprintf.h>
22#include <timefuncs.h> 24#include <timefuncs.h>
23#include <string.h> 25#include <string.h>
24#include <kernel.h> 26#include <kernel.h>
@@ -85,4 +87,40 @@ bool logfdisplay(void)
85} 87}
86#endif /* HAVE_LCD_BITMAP */ 88#endif /* HAVE_LCD_BITMAP */
87 89
90/* Store the logf log to logf.txt in the .rockbox directory. The order of the
91 * entries will be "reversed" so that the most recently logged entry is on the
92 * top of the file */
93bool logfdump(void)
94{
95 int fd;
96
97 if(!logfindex && !logfwrap)
98 /* nothing is logged just yet */
99 return false;
100
101 fd = open("/.rockbox/logf.txt", O_CREAT|O_WRONLY);
102 if(-1 != fd) {
103 unsigned char buffer[17];
104 int index = logfindex-1;
105 int stop = logfindex;
106
107
108 while(index != stop) {
109 if(index < 0) {
110 if(logfwrap)
111 index = MAX_LOGF_LINES-1;
112 else
113 break; /* done */
114 }
115
116 memcpy(buffer, logfbuffer[index], 16);
117 buffer[16]=0;
118 fdprintf(fd, "%s\n", buffer);
119 index--;
120 }
121 close(fd);
122 }
123 return false;
124}
125
88#endif /* ROCKBOX_HAS_LOGF */ 126#endif /* ROCKBOX_HAS_LOGF */
diff --git a/apps/logfdisp.h b/apps/logfdisp.h
index 1b0d8c9ddb..1bbac29272 100644
--- a/apps/logfdisp.h
+++ b/apps/logfdisp.h
@@ -19,6 +19,7 @@
19#ifndef LOGFDISP_H 19#ifndef LOGFDISP_H
20#define LOGFDISP_H 20#define LOGFDISP_H
21bool logfdisplay(void); 21bool logfdisplay(void);
22bool logfdump(void);
22 23
23#endif /* LOGFDISP_H */ 24#endif /* LOGFDISP_H */
24 25
diff --git a/apps/main_menu.c b/apps/main_menu.c
index 44321142c8..020f5d608c 100644
--- a/apps/main_menu.c
+++ b/apps/main_menu.c
@@ -351,6 +351,7 @@ bool info_menu(void)
351 { ID2P(LANG_USB), simulate_usb }, 351 { ID2P(LANG_USB), simulate_usb },
352#ifdef ROCKBOX_HAS_LOGF 352#ifdef ROCKBOX_HAS_LOGF
353 {"logf", logfdisplay }, 353 {"logf", logfdisplay },
354 {"logfdump", logfdump },
354#endif 355#endif
355#endif 356#endif
356 }; 357 };