summaryrefslogtreecommitdiff
path: root/apps/debug_menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/debug_menu.c')
-rw-r--r--apps/debug_menu.c77
1 files changed, 77 insertions, 0 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c
index ae660d49c5..3aca2b8f2c 100644
--- a/apps/debug_menu.c
+++ b/apps/debug_menu.c
@@ -39,6 +39,7 @@
39#include "disk.h" 39#include "disk.h"
40#include "mpeg.h" 40#include "mpeg.h"
41#include "settings.h" 41#include "settings.h"
42#include "ata.h"
42#ifdef HAVE_LCD_BITMAP 43#ifdef HAVE_LCD_BITMAP
43#include "widgets.h" 44#include "widgets.h"
44#include "peakmeter.h" 45#include "peakmeter.h"
@@ -1080,6 +1081,81 @@ static bool view_runtime(void)
1080 return false; 1081 return false;
1081} 1082}
1082 1083
1084static bool dbg_disk_info(void)
1085{
1086 char buf[128];
1087 bool done = false;
1088 int i;
1089 int page = 0;
1090 const int max_page = 2;
1091 unsigned short* identify_info = ata_get_identify();
1092
1093 while(!done)
1094 {
1095 int y=0;
1096 int key;
1097 lcd_clear_display();
1098#ifdef HAVE_LCD_BITMAP
1099 lcd_puts(0, y++, "Disk info:");
1100 y++;
1101#endif
1102
1103 switch (page) {
1104 case 0:
1105 for (i=0; i < 20; i++)
1106 ((unsigned short*)buf)[i]=identify_info[i+27];
1107 buf[40]=0;
1108 /* kill trailing space */
1109 for (i=39; i && buf[i]==' '; i--)
1110 buf[i] = 0;
1111 lcd_puts(0, y++, "Model");
1112 lcd_puts_scroll(0, y++, buf);
1113 break;
1114
1115 case 1:
1116 for (i=0; i < 4; i++)
1117 ((unsigned short*)buf)[i]=identify_info[i+23];
1118 buf[8]=0;
1119 lcd_puts(0, y++, "Firmware");
1120 lcd_puts(0, y++, buf);
1121 break;
1122
1123 case 2:
1124 snprintf(buf, sizeof buf, "%d MB",
1125 ((unsigned)identify_info[61] << 16 |
1126 (unsigned)identify_info[60]) / 2048 );
1127 lcd_puts(0, y++, "Size");
1128 lcd_puts(0, y++, buf);
1129 }
1130 lcd_update();
1131
1132 /* Wait for a key to be pushed */
1133 key = button_get_w_tmo(HZ*5);
1134 switch(key) {
1135#ifdef HAVE_PLAYER_KEYPAD
1136 case BUTTON_STOP | BUTTON_REL:
1137#else
1138 case BUTTON_OFF | BUTTON_REL:
1139#endif
1140 done = true;
1141 break;
1142
1143 case BUTTON_LEFT:
1144 if (--page < 0)
1145 page = max_page;
1146 break;
1147
1148 case BUTTON_RIGHT:
1149 if (++page > max_page)
1150 page = 0;
1151 break;
1152 }
1153 lcd_stop_scroll();
1154 }
1155
1156 return false;
1157}
1158
1083bool debug_menu(void) 1159bool debug_menu(void)
1084{ 1160{
1085 int m; 1161 int m;
@@ -1105,6 +1181,7 @@ bool debug_menu(void)
1105#endif 1181#endif
1106 { "View HW info", dbg_hw_info }, 1182 { "View HW info", dbg_hw_info },
1107 { "View partitions", dbg_partitions }, 1183 { "View partitions", dbg_partitions },
1184 { "View disk info", dbg_disk_info },
1108#ifdef HAVE_LCD_BITMAP 1185#ifdef HAVE_LCD_BITMAP
1109 { "View mpeg thread", dbg_mpeg_thread }, 1186 { "View mpeg thread", dbg_mpeg_thread },
1110#ifdef PM_DEBUG 1187#ifdef PM_DEBUG