Changeset 1719 for trunk/core/gui.c
- Timestamp:
- 03/10/12 04:23:15 (15 months ago)
- Location:
- trunk
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
core/gui.c (modified) (40 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/release-1_0 merged: 1712-1713
- Property svn:mergeinfo changed
-
trunk/core/gui.c
r1693 r1719 124 124 #endif 125 125 126 #if CAM_HAS_ZOOM_LEVER 127 #define SHORTCUT_SD_SUB KEY_ZOOM_OUT 128 #define SHORTCUT_SD_ADD KEY_ZOOM_IN 129 #endif 126 130 127 131 // forward declarations … … 135 139 static void gui_draw_osd(); 136 140 141 #ifdef CAM_HAS_GPS 142 int exit_gpx_record=1; 143 int exit_gps_kompass=1; 144 int exit_gps_navi=1; 145 int exit_gps_data=1; 146 147 extern void init_gpx_record_task(); 148 extern void init_gps_kompass_task(); 149 extern void init_gps_trackback_task(); 150 extern void gps_record(int arg); 151 extern void gps_get_data(); 152 extern void write_timezone(); 153 extern void write_home(); 154 extern void gps_navigate_home(); 155 156 157 static void gpx_start_stop(int arg); 158 static void show_kompass(int arg); 159 static void show_navi(int arg); 160 161 static void mark_timezone(int arg); 162 static void mark_home(int arg); 163 static void navigate_home(int arg); 164 165 extern int _CreateTask (const char *name, int prio, int stack_size /*?*/,void *entry, long parm /*?*/); 166 167 #endif 137 168 static void gui_draw_splash(char* logo, int logo_size); 138 169 … … 190 221 #endif 191 222 223 #if CAM_REMOTE 224 static const char* gui_show_usb_info_enum(int change, int arg); 225 #endif 192 226 void rinit(); 193 227 194 228 // Menu callbacks 195 229 //------------------------------------------------------------------- 230 void cb_autoiso_menu_change(unsigned int item); // Used from conf loader 196 231 static void cb_step_25(); 197 232 static void cb_perc(); … … 288 323 static CMenuItem autoiso_submenu_items[] = { 289 324 MENU_ITEM (0x5c,LANG_MENU_AUTOISO_ENABLED, MENUITEM_BOOL, &conf.autoiso_enable, 0 ), 290 MENU_ENUM2 (0x5f,LANG_MENU_AUTOISO_MIN_SHUTTER, &conf.autoiso_shutter , gui_autoiso_shutter_modes ),325 MENU_ENUM2 (0x5f,LANG_MENU_AUTOISO_MIN_SHUTTER, &conf.autoiso_shutter_enum, gui_autoiso_shutter_modes ), 291 326 MENU_ITEM (0x5f,LANG_MENU_AUTOISO_USER_FACTOR, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.autoiso_user_factor, MENU_MINMAX(1, 8) ), 292 327 … … 294 329 MENU_ITEM (0x5f,LANG_MENU_AUTOISO_IS_FACTOR, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.autoiso_is_factor, MENU_MINMAX(1, 8) ), 295 330 #endif 296 MENU_ITEM(0x5f,LANG_MENU_AUTOISO_MAX_ISO_HI, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.autoiso_max_iso_hi, MENU_MINMAX(20, 160) ), 297 MENU_ITEM(0x5f,LANG_MENU_AUTOISO_MAX_ISO_AUTO, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.autoiso_max_iso_auto, MENU_MINMAX(10, 80) ), 298 MENU_ITEM(0x5f,LANG_MENU_AUTOISO_MIN_ISO, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.autoiso_min_iso, MENU_MINMAX(1, 20) ), 299 331 332 MENU_ITEM (0x5f,LANG_MENU_AUTOISO_MIN_ISO, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.autoiso_min_iso, MENU_MINMAX(1, 20) ), 333 MENU_ITEM (0x5f,LANG_MENU_AUTOISO_MAX_ISO_AUTO, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.autoiso_max_iso_auto, MENU_MINMAX(10, 80) ), 334 335 //@tsv 336 MENU_ENUM2 (0x5f,LANG_MENU_AUTOISO_MIN_SHUTTER2, &conf.autoiso2_shutter_enum, gui_autoiso2_shutter_modes ), 337 MENU_ITEM (0x5f,LANG_MENU_AUTOISO_MAX_ISO2, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.autoiso2_max_iso_auto, MENU_MINMAX(10, 100) ), 338 339 #if !defined(CAMERA_sx230hs) 340 MENU_ITEM (0x5f,LANG_MENU_AUTOISO_MAX_ISO_HI, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.autoiso_max_iso_hi, MENU_MINMAX(20, 160) ), 341 #endif 342 343 MENU_ENUM2 (0x5f,LANG_MENU_AUTOISO_OVEREXP_EV, &conf.overexp_ev_enum, gui_overexp_ev_modes ), 344 MENU_ITEM (0x57,LANG_MENU_ZEBRA_OVER, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.autoiso2_over, MENU_MINMAX(0, 32) ), 345 MENU_ITEM (0x5f,LANG_MENU_AUTOISO_OVEREXP_THRES, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.overexp_threshold, MENU_MINMAX(1, 20) ), 300 346 301 347 MENU_ITEM (0x51,LANG_MENU_BACK, MENUITEM_UP, 0, 0 ), 302 348 {0} 303 349 }; 304 static CMenu autoiso_submenu = {0x2d,LANG_MENU_AUTOISO_TITLE, NULL, autoiso_submenu_items }; 350 //static CMenu autoiso_submenu = {0x2d,LANG_MENU_AUTOISO_TITLE, NULL, autoiso_submenu_items }; 351 static CMenu autoiso_submenu = {0x2d,LANG_MENU_AUTOISO_TITLE, cb_autoiso_menu_change, autoiso_submenu_items }; 305 352 306 353 … … 334 381 }; 335 382 static CMenu debug_submenu = {0x2a,LANG_MENU_DEBUG_TITLE, NULL, debug_submenu_items }; 383 #endif 384 #ifdef CAM_HAS_GPS 385 386 static CMenuItem gps_logging_items[] = { 387 MENU_ITEM (0x2a,LANG_MENU_GPS_TRACK_TIME, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.gps_track_time, MENU_MINMAX(1, 60) ), 388 MENU_ITEM (0x0 ,(int)"", MENUITEM_SEPARATOR, 0, 0 ), 389 MENU_ITEM (0x2a,LANG_MENU_GPS_TRACK_SYMBOL, MENUITEM_BOOL, &conf.gps_track_symbol, 0 ), 390 MENU_ITEM (0x0 ,(int)"", MENUITEM_SEPARATOR, 0, 0 ), 391 MENU_ITEM (0x2a,LANG_MENU_GPS_REC_PLAY_SET_1, MENUITEM_BOOL, &conf.gps_rec_play_set_1, 0 ), 392 MENU_ITEM (0x2a,LANG_MENU_GPS_REC_PLAY_TIME_1, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.gps_rec_play_time_1, MENU_MINMAX(1, 60) ), 393 MENU_ITEM (0x2a,LANG_MENU_GPS_PLAY_DARK_SET_1, MENUITEM_BOOL, &conf.gps_play_dark_set_1, 0 ), 394 MENU_ITEM (0x2a,LANG_MENU_GPS_PLAY_DARK_TIME_1, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.gps_play_dark_time_1, MENU_MINMAX(1, 60) ), 395 MENU_ITEM (0x0 ,(int)"", MENUITEM_SEPARATOR, 0, 0 ), 396 MENU_ITEM (0x51,LANG_MENU_BACK, MENUITEM_UP, 0, 0 ), 397 {0} 398 }; 399 static CMenu gps_logging_submenu = {0x86,LANG_MENU_GPS_LOGGING, NULL, gps_logging_items }; 400 401 static CMenuItem gps_tagging_items[] = { 402 MENU_ITEM (0x5c,LANG_MENU_GPS_WAYPOINT_SAVE, MENUITEM_BOOL, &conf.gps_waypoint_save, 0 ), 403 MENU_ITEM (0x0 ,(int)"", MENUITEM_SEPARATOR, 0, 0 ), 404 MENU_ITEM (0x2a,LANG_MENU_GPS_WAIT_FOR_SIGNAL, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.gps_wait_for_signal, MENU_MINMAX(1, 599) ), 405 MENU_ITEM (0x2a,LANG_MENU_GPS_WAIT_FOR_SIGNAL_TIME, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.gps_wait_for_signal_time, MENU_MINMAX(1, 60) ), 406 MENU_ITEM (0x0 ,(int)"", MENUITEM_SEPARATOR, 0, 0 ), 407 MENU_ITEM (0x2a,LANG_MENU_GPS_REC_PLAY_SET, MENUITEM_BOOL, &conf.gps_rec_play_set, 0 ), 408 MENU_ITEM (0x2a,LANG_MENU_GPS_REC_PLAY_TIME, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.gps_rec_play_time, MENU_MINMAX(1, 60) ), 409 MENU_ITEM (0x2a,LANG_MENU_GPS_PLAY_DARK_SET, MENUITEM_BOOL, &conf.gps_play_dark_set, 0 ), 410 MENU_ITEM (0x2a,LANG_MENU_GPS_PLAY_DARK_TIME, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.gps_play_dark_time, MENU_MINMAX(1, 60) ), 411 MENU_ITEM (0x0 ,(int)"", MENUITEM_SEPARATOR, 0, 0 ), 412 MENU_ITEM (0x5c,LANG_MENU_GPS_COUNTDOWN, MENUITEM_BOOL, &conf.gps_countdown , 0 ), 413 // MENU_ITEM (0x5c,LANG_MENU_GPS_COUNTDOWN_BLINK, MENUITEM_BOOL, &conf.gps_countdown_blink, 0 ), 414 MENU_ITEM (0x0 ,(int)"", MENUITEM_SEPARATOR, 0, 0 ), 415 MENU_ITEM (0x51,LANG_MENU_BACK, MENUITEM_UP, 0, 0 ), 416 {0} 417 }; 418 static CMenu gps_tagging_submenu = {0x86,LANG_MENU_GPS_TAGGING, NULL, gps_tagging_items }; 419 420 421 static CMenuItem gps_navigation_items[] = { 422 MENU_ITEM (0x2a,LANG_MENU_GPS_KOMPASS_SMOOTH, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.gps_kompass_smooth, MENU_MINMAX(1, 40) ), 423 MENU_ITEM (0x2a,LANG_MENU_GPS_KOMPASS_TIME, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.gps_kompass_time, MENU_MINMAX(1, 60) ), 424 MENU_ITEM (0x2a,LANG_MENU_GPS_NAVI_TIME, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.gps_navi_time, MENU_MINMAX(1, 60) ), 425 MENU_ITEM (0x0 ,(int)"", MENUITEM_SEPARATOR, 0, 0 ), 426 MENU_ITEM (0x2a,LANG_MENU_GPS_MARK_HOME, MENUITEM_PROC, (int*)mark_home, 0 ), 427 MENU_ITEM (0x0 ,(int)"", MENUITEM_SEPARATOR, 0, 0 ), 428 MENU_ITEM (0x51,LANG_MENU_BACK, MENUITEM_UP, 0, 0 ), 429 {0} 430 }; 431 static CMenu gps_navigation_submenu = {0x86,LANG_MENU_GPS_NAVIGATION, NULL, gps_navigation_items }; 432 433 434 static const char* gui_gps_sat_fix[] = { "immer", "2D", "3D", "2D/3D" }; 435 static CMenuItem gps_values_items[] = { 436 MENU_ITEM (0x2a,LANG_MENU_GPS_BATT, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.gps_batt, MENU_MINMAX(0, 99) ), 437 MENU_ITEM (0x2a,LANG_MENU_GPS_BATT_WARNING, MENUITEM_BOOL, &conf.gps_batt_warn, 0 ), 438 MENU_ITEM (0x2a,LANG_MENU_GPS_BEEP_WARNING, MENUITEM_BOOL, &conf.gps_beep_warn, 0 ), 439 MENU_ITEM (0x0 ,(int)"", MENUITEM_SEPARATOR, 0, 0 ), 440 MENU_ENUM2 (0x69,LANG_MENU_GPS_2D_3D_FIX, &conf.gps_2D_3D_fix, gui_gps_sat_fix ), 441 MENU_ITEM (0x0 ,(int)"", MENUITEM_SEPARATOR, 0, 0 ), 442 MENU_ITEM (0x2a,LANG_MENU_GPS_SYMBOL_SHOW, MENUITEM_BOOL, &conf.gps_show_symbol, 0 ), 443 MENU_ITEM (0x0 ,(int)"", MENUITEM_SEPARATOR, 0, 0 ), 444 MENU_ITEM (0x2a,LANG_MENU_GPS_TEST_TIMEZONE, MENUITEM_BOOL, &conf.gps_test_timezone, 0 ), 445 MENU_ITEM (0x2a,LANG_MENU_GPS_MARK_TIMEZONE, MENUITEM_PROC, (int*)mark_timezone, 0 ), 446 MENU_ITEM (0x0 ,(int)"", MENUITEM_SEPARATOR, 0, 0 ), 447 MENU_ITEM (0x51,LANG_MENU_BACK, MENUITEM_UP, 0, 0 ), 448 {0} 449 }; 450 static CMenu gps_values_submenu = {0x86,LANG_MENU_GPS_VALUES, NULL, gps_values_items }; 451 452 453 static CMenuItem gps_submenu_items[] = { 454 MENU_ITEM (0x2a,LANG_MENU_GPS_ON_OFF, MENUITEM_BOOL, &conf.gps_on_off, 0 ), 455 MENU_ITEM (0x0 ,(int)"", MENUITEM_SEPARATOR, 0, 0 ), 456 MENU_ITEM (0x2a,LANG_MENU_GPS_KOMPASS_SHOW, MENUITEM_PROC, (int*)show_kompass, 0 ), 457 MENU_ITEM (0x2a,LANG_MENU_GPS_NAVI_SHOW, MENUITEM_PROC, (int*)show_navi, 0 ), 458 MENU_ITEM (0x2a,LANG_MENU_GPS_NAVI_HOME, MENUITEM_PROC, (int*)navigate_home, 0 ), 459 MENU_ITEM (0x2a,LANG_MENU_GPS_TRACK_START, MENUITEM_PROC, (int*)gpx_start_stop, 0 ), 460 MENU_ITEM (0x0 ,(int)"", MENUITEM_SEPARATOR, 0, 0 ), 461 MENU_ITEM (0x2a,LANG_MENU_GPS_VALUES, MENUITEM_SUBMENU, &gps_values_submenu, 0 ), 462 MENU_ITEM (0x2a,LANG_MENU_GPS_LOGGING, MENUITEM_SUBMENU, &gps_logging_submenu, 0 ), 463 MENU_ITEM (0x2a,LANG_MENU_GPS_TAGGING, MENUITEM_SUBMENU, &gps_tagging_submenu, 0 ), 464 MENU_ITEM (0x2a,LANG_MENU_GPS_NAVIGATION, MENUITEM_SUBMENU, &gps_navigation_submenu, 0 ), 465 MENU_ITEM (0x0 ,(int)"", MENUITEM_SEPARATOR, 0, 0 ), 466 MENU_ITEM (0x51,LANG_MENU_BACK, MENUITEM_UP, 0, 0 ), 467 {0} 468 }; 469 static CMenu gps_submenu = {0x2a,LANG_MENU_GPS, NULL, gps_submenu_items }; 470 336 471 #endif 337 472 … … 406 541 MENU_ITEM (0x5c,LANG_MENU_SPACE_SHOW_PERCENT, MENUITEM_BOOL|MENUITEM_ARG_CALLBACK, &conf.space_perc_show, (int)cb_space_perc ), 407 542 MENU_ITEM (0x5c,LANG_MENU_SPACE_SHOW_MB, MENUITEM_BOOL|MENUITEM_ARG_CALLBACK, &conf.space_mb_show, (int)cb_space_mb ), 543 #if CAM_MULTIPART 544 MENU_ITEM (0x5c,LANG_MENU_SHOW_PARTITION_NR, MENUITEM_BOOL, &conf.show_partition_nr, 0 ), 545 #endif 408 546 MENU_ENUM2 (0x5f,LANG_MENU_SPACE_WARN_TYPE, &conf.space_warn_type, gui_space_warn_type_modes ), 409 547 MENU_ITEM (0x58,LANG_MENU_SPACE_WARN_PERCENT, MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX, &conf.space_perc_warn, MENU_MINMAX(1, 99) ), … … 424 562 MENU_ITEM (0x5c,LANG_MENU_DOF_HYPERFOCAL_IN_MISC, MENUITEM_BOOL, &conf.dof_hyperfocal_in_misc, 0 ), 425 563 MENU_ITEM (0x5c,LANG_MENU_DOF_DEPTH_LIMIT_IN_MISC, MENUITEM_BOOL, &conf.dof_depth_in_misc, 0 ), 426 #if !CAM_DRYOS427 MENU_ITEM(0x5c,LANG_MENU_DOF_DIST_FROM_LENS, MENUITEM_BOOL, &conf.dof_dist_from_lens, 0),428 #endif429 564 MENU_ITEM (0x51,LANG_MENU_BACK, MENUITEM_UP, 0, 0 ), 430 565 {0} … … 601 736 //MENU_ITEM(0x65,LANG_MENU_VIS_ZEBRA_UNDER, MENUITEM_COLOR_BG, &conf.zebra_color, 0 ), // moved to zebra menu 602 737 //MENU_ITEM(0x65,LANG_MENU_VIS_ZEBRA_OVER, MENUITEM_COLOR_FG, &conf.zebra_color, 0 ), // moved to zebra menu 603 MENU_ITEM(0x65,LANG_MENU_VIS_BATT_ICON, MENUITEM_COLOR_FG, &conf.batt_icon_color, 0 ),738 //MENU_ITEM(0x65,LANG_MENU_VIS_BATT_ICON, MENUITEM_COLOR_FG, &conf.batt_icon_color, 0 ), 604 739 MENU_ITEM(0x65,LANG_MENU_VIS_SPACE_ICON, MENUITEM_COLOR_FG, &conf.space_color, 0 ), 605 740 MENU_ITEM(0x65,LANG_MENU_VIS_SPACE_ICON_BKG, MENUITEM_COLOR_BG, &conf.space_color, 0 ), … … 772 907 #ifndef OPTIONS_AUTOSAVE 773 908 MENU_ITEM (0x33,LANG_MENU_MAIN_SAVE_OPTIONS, MENUITEM_PROC, gui_menuproc_save, 0 ), 774 909 #endif 910 #ifdef CAM_HAS_GPS 911 MENU_ITEM (0x2a,LANG_MENU_GPS, MENUITEM_SUBMENU, &gps_submenu, 0 ), 775 912 #endif 776 913 {0} … … 780 917 781 918 static int gui_user_menu_flag; 919 920 static char buf[256]; 921 922 //------------------------------------------------------------------- 923 #ifdef CAM_HAS_GPS 924 925 void gpx_start_stop(int arg) { 926 int i = 0; 927 while( gps_submenu_items[i].value != (int*)gpx_start_stop ) i++; //find entry 928 if( gps_submenu_items[i].text == LANG_MENU_GPS_TRACK_START ) { //toggle text 929 gps_submenu_items[i].text = LANG_MENU_GPS_TRACK_STOP; 930 exit_gpx_record = 0; 931 init_gpx_record_task(); 932 933 } else { 934 gps_submenu_items[i].text = LANG_MENU_GPS_TRACK_START; 935 exit_gpx_record = 1; 936 } 937 } 938 939 void show_kompass(int arg){ 940 int i = 0; 941 while( gps_submenu_items[i].value != (int*)show_kompass ) i++; //find entry 942 if( gps_submenu_items[i].text == LANG_MENU_GPS_KOMPASS_SHOW ) { //toggle text 943 gps_submenu_items[i].text = LANG_MENU_GPS_KOMPASS_HIDE; 944 exit_gps_kompass = 0; 945 init_gps_kompass_task(); 946 947 } else { 948 gps_submenu_items[i].text = LANG_MENU_GPS_KOMPASS_SHOW; 949 exit_gps_kompass = 1; 950 } 951 } 952 953 void show_navi(int arg){ 954 int i = 0; 955 while( gps_submenu_items[i].value != (int*)show_navi ) i++; //find entry 956 if( gps_submenu_items[i].text == LANG_MENU_GPS_NAVI_SHOW ) { //toggle text 957 gps_submenu_items[i].text = LANG_MENU_GPS_NAVI_HIDE; 958 exit_gpx_record = 0; 959 exit_gps_navi = 0; 960 exit_gps_kompass = 0; 961 init_gps_trackback_task(); 962 963 } else { 964 gps_submenu_items[i].text = LANG_MENU_GPS_NAVI_SHOW; 965 exit_gps_navi = 1; 966 exit_gps_kompass = 1; 967 exit_gpx_record = 1; 968 } 969 } 970 971 void navigate_home(int arg){ 972 int i = 0; 973 while( gps_submenu_items[i].value != (int*)navigate_home ) i++; //find entry 974 if( gps_submenu_items[i].text == LANG_MENU_GPS_NAVI_HOME ) { //toggle text 975 gps_submenu_items[i].text = LANG_MENU_GPS_NAVI_HOME_END; 976 exit_gpx_record = 0; 977 exit_gps_navi = 0; 978 exit_gps_kompass = 0; 979 gps_navigate_home(); 980 981 } else { 982 gps_submenu_items[i].text = LANG_MENU_GPS_NAVI_HOME; 983 exit_gps_navi = 1; 984 exit_gps_kompass = 1; 985 exit_gpx_record = 1; 986 } 987 } 988 989 void mark_timezone(int arg){ 990 write_timezone(); 991 } 992 993 void mark_home(int arg){ 994 write_home(); 995 } 996 997 #endif 782 998 783 999 //------------------------------------------------------------------- … … 840 1056 #endif 841 1057 1058 void cb_autoiso_menu_change(unsigned int item) 1059 { 1060 conf.autoiso_min_shutter_numerator = shutter1_values[conf.autoiso_shutter_enum]; 1061 conf.autoiso2_min_shutter_numerator = shutter2_values[conf.autoiso2_shutter_enum]; 1062 1063 conf.autoiso_max_iso_auto_real=0; // set invalid value of real autoiso as flag 'need recalc' 1064 } 1065 842 1066 /* 843 1067 common code for "enum" menu items that just take a list of string values and don't require any special setters … … 865 1089 } 866 1090 1091 //------------------------------------------------------------------- 1092 #if CAM_REMOTE 1093 const char* gui_show_usb_info_enum(int change, int arg) { 1094 static const char* modes[]={ "Off", "Icon", "Text"}; 1095 1096 gui_enum_value_change(&conf.usb_info_enable,change,sizeof(modes)/sizeof(modes[0])); 1097 1098 return modes[conf.usb_info_enable]; 1099 } 1100 #endif 1101 //------------------------------------------------------------------- 867 1102 #ifdef OPT_SCRIPTING 868 1103 //------------------------------------------------------------------- … … 1024 1259 // Equivalent to ALT 1025 1260 static const char* modes[]={ "Never", "Alt", "Script", "Always" }; 1026 gui_enum_value_change(&conf.alt_prevent_shutdown,change,sizeof(modes)/sizeof(modes[0])); 1027 1028 conf_update_prevent_shutdown(); 1029 1261 1262 gui_enum_value_change(&conf.alt_prevent_shutdown,change,sizeof(modes)/sizeof(modes[0])); 1263 1030 1264 return modes[conf.alt_prevent_shutdown]; 1031 1265 } … … 1045 1279 1046 1280 //------------------------------------------------------------------- 1281 const char* gui_tv_bracket_values_enum(int change, int arg) { 1282 static const char* modes[]={ "Off", "1/3 Ev","2/3 Ev", "1 Ev", "1 1/3Ev", "1 2/3Ev", "2 Ev", "2 1/3Ev", "2 2/3Ev", "3 Ev", "3 1/3Ev", "3 2/3Ev", "4 Ev"}; 1283 1284 return gui_change_simple_enum(&conf.tv_bracket_value,change,modes,sizeof(modes)/sizeof(modes[0])); 1285 } 1286 1047 1287 const char* gui_tv_override_koef_enum(int change, int arg) { 1048 1288 static const char* modes[]={"Off", "1/100K", "1/10000", "1/1000","1/100","1/10", "1","10","100"}; … … 1068 1308 "64","50.8", "40.3", "32", "25.4","20","16", "12.7", "10","8", "6.3","5","4","3.2", "2.5","2", "1.6", "1.3", "1", "0.8", "0.6", "0.5", "0.4", "0.3", "1/4", "1/5", "1/6", "1/8", "1/10", "1/13", "1/15", "1/20", "1/25", "1/30", "1/40", "1/50", "1/60", "1/80", "1/100", "1/125", "1/160", "1/200", "1/250", "1/320", "1/400", "1/500", "1/640","1/800", "1/1000", "1/1250", "1/1600","1/2000","1/2500","1/3200","1/4000", "1/5000", "1/6400", "1/8000", "1/10000", "1/12500", "1/16000", "1/20000", "1/25000", "1/32000", "1/40000", "1/50000", "1/64000","1/80000", "1/100k"}; 1069 1309 */ 1070 static char buf[4];1071 1310 1072 1311 // XXX This array above is redundant with platform/generic/shooting.c, this should be avoided! … … 1125 1364 strcpy(buf,"Inf."); 1126 1365 else 1127 sprintf(buf, "%d", (int)conf.subj_dist_override_value);1366 sprintf(buf, "%d", shooting_get_subject_distance_override_value()); 1128 1367 return buf; 1129 1368 } … … 1150 1389 const char* gui_av_override_enum(int change, int arg) 1151 1390 { 1152 static char buf[8]; 1153 1154 conf.av_override_value += change; 1155 1391 conf.av_override_value+=change; 1156 1392 if (conf.av_override_value<0) conf.av_override_value=shooting_get_aperture_sizes_table_size()+6; 1157 1393 else if (conf.av_override_value>shooting_get_aperture_sizes_table_size()+6) conf.av_override_value=0; … … 1169 1405 #if ZOOM_OVERRIDE 1170 1406 const char* gui_zoom_override_enum(int change, int arg) { 1171 static char buf[3];1172 1407 conf.zoom_override_value+=change; 1173 1408 if (conf.zoom_override_value<0) conf.zoom_override_value=zoom_points-1; … … 1245 1480 //------------------------------------------------------------------- 1246 1481 #ifdef OPT_DEBUGGING 1482 #define TASKLIST_MAX_LINES 12 // probably as much as will fit on screen 1483 #define TASKLIST_NUM_TASKS 64 // should be enough ? 1484 static void gui_debug_draw_tasklist(void) { 1485 #ifndef CAM_DRYOS 1486 int tasklist[TASKLIST_NUM_TASKS]; // max number of tasks we will look at 1487 int n_tasks,n_show_tasks,show_start; 1488 const char *name; 1489 int i; 1490 n_tasks = task_id_list_get(tasklist,sizeof(tasklist)/sizeof(tasklist[0])); 1491 show_start = debug_tasklist_start; 1492 n_show_tasks = n_tasks - show_start; 1493 // auto adjust to show the last N tasks 1494 if(n_show_tasks < TASKLIST_MAX_LINES) { 1495 show_start = n_tasks - TASKLIST_MAX_LINES; 1496 if(show_start<0) 1497 show_start = 0; 1498 n_show_tasks = n_tasks - show_start; 1499 } 1500 else if( n_show_tasks > TASKLIST_MAX_LINES ) { 1501 n_show_tasks = TASKLIST_MAX_LINES; 1502 } 1503 sprintf(buf,"%d-%d of %d tasks %c",show_start,show_start+n_show_tasks,n_tasks,debug_display_direction > 0?'+':'-'); 1504 draw_string(64,0,buf, conf.osd_color); 1505 for( i = 0; i < n_show_tasks; i++ ) { 1506 // TODO get full task info 1507 name = task_name(tasklist[show_start+i]); 1508 if ( !name || !*name ) { 1509 name = "(unknown)"; 1510 } 1511 sprintf(buf,"%10s %8X",name,tasklist[show_start+i]); 1512 draw_string(64,16+16*i,buf, conf.osd_color); 1513 } 1514 #endif //CAM_DRYOS 1515 } 1516 1517 #define DEBUG_DISPLAY_NONE 0 1518 #define DEBUG_DISPLAY_PROPS 1 1519 #define DEBUG_DISPLAY_PARAMS 2 1247 1520 #ifndef CAM_DRYOS 1248 #define TASKLIST_MAX_LINES 12 // probably as much as will fit on screen 1249 #define TASKLIST_NUM_TASKS 64 // should be enough ? 1250 static void gui_debug_draw_tasklist(void) { 1251 int tasklist[TASKLIST_NUM_TASKS]; // max number of tasks we will look at 1252 char buf[40]; // a single line of the list 1253 int n_tasks,n_show_tasks,show_start; 1254 const char *name; 1255 int i; 1256 n_tasks = task_id_list_get(tasklist,sizeof(tasklist)/sizeof(tasklist[0])); 1257 show_start = debug_tasklist_start; 1258 n_show_tasks = n_tasks - show_start; 1259 // auto adjust to show the last N tasks 1260 if(n_show_tasks < TASKLIST_MAX_LINES) { 1261 show_start = n_tasks - TASKLIST_MAX_LINES; 1262 if(show_start<0) 1263 show_start = 0; 1264 n_show_tasks = n_tasks - show_start; 1265 } 1266 else if( n_show_tasks > TASKLIST_MAX_LINES ) { 1267 n_show_tasks = TASKLIST_MAX_LINES; 1268 } 1269 sprintf(buf,"%d-%d of %d tasks %c",show_start,show_start+n_show_tasks,n_tasks,debug_display_direction > 0?'+':'-'); 1270 draw_string(64,0,buf, conf.osd_color); 1271 for( i = 0; i < n_show_tasks; i++ ) { 1272 // TODO get full task info 1273 name = task_name(tasklist[show_start+i]); 1274 if ( !name || !*name ) { 1275 name = "(unknown)"; 1276 } 1277 sprintf(buf,"%10s %8X",name,tasklist[show_start+i]); 1278 draw_string(64,16+16*i,buf, conf.osd_color); 1279 } 1280 } 1281 #endif //CAM_DRYOS 1282 1283 #define DEBUG_DISPLAY_NONE 0 1284 #define DEBUG_DISPLAY_PROPS 1 1285 #define DEBUG_DISPLAY_PARAMS 2 1521 #define DEBUG_DISPLAY_TASKS 3 1522 #endif 1523 1524 static void gui_debug_shortcut(void) { 1525 static int lastcall = -1; 1526 int t=get_tick_count(); 1527 if ( lastcall != -1) { 1528 if (t-lastcall <= 400) 1529 debug_display_direction = -debug_display_direction; 1530 } 1531 lastcall=t; 1532 switch(conf.debug_shortcut_action) { 1533 case 1: 1534 dump_memory(); 1535 break; 1536 case 2: 1286 1537 #ifndef CAM_DRYOS 1287 #define DEBUG_DISPLAY_TASKS 3 1288 #endif 1289 1290 static void gui_debug_shortcut(void) { 1291 static int lastcall = -1; 1292 int t=get_tick_count(); 1293 if ( lastcall != -1) { 1294 if (t-lastcall <= 400) 1295 debug_display_direction = -debug_display_direction; 1296 } 1297 lastcall=t; 1298 switch(conf.debug_shortcut_action) { 1299 case 1: 1300 dump_memory(); 1301 break; 1302 case 2: 1303 #ifndef CAM_DRYOS 1304 if(conf.debug_display == DEBUG_DISPLAY_TASKS) { 1305 debug_tasklist_start += debug_display_direction*(TASKLIST_MAX_LINES-2); // a little intentional overlap 1306 if(debug_tasklist_start >= TASKLIST_NUM_TASKS || debug_tasklist_start < 0) 1307 debug_tasklist_start = 0; 1308 } 1309 else 1310 #endif 1311 if (conf.debug_display == DEBUG_DISPLAY_PROPS || conf.debug_display == DEBUG_DISPLAY_PARAMS) { 1312 conf.debug_propcase_page += debug_display_direction*1; 1313 if(conf.debug_propcase_page > 128 || conf.debug_propcase_page < 0) 1314 conf.debug_propcase_page = 0; 1315 } 1316 break; 1317 case 3: 1318 gui_compare_props(1); 1319 break; 1320 } 1321 } 1538 if(conf.debug_display == DEBUG_DISPLAY_TASKS) { 1539 debug_tasklist_start += debug_display_direction*(TASKLIST_MAX_LINES-2); // a little intentional overlap 1540 if(debug_tasklist_start >= TASKLIST_NUM_TASKS || debug_tasklist_start < 0) 1541 debug_tasklist_start = 0; 1542 } 1543 else 1544 #endif 1545 if (conf.debug_display == DEBUG_DISPLAY_PROPS || conf.debug_display == DEBUG_DISPLAY_PARAMS) { 1546 conf.debug_propcase_page += debug_display_direction*1; 1547 if(conf.debug_propcase_page > 128 || conf.debug_propcase_page < 0) 1548 conf.debug_propcase_page = 0; 1549 } 1550 break; 1551 case 3: 1552 gui_compare_props(1); 1553 break; 1554 } 1555 } 1322 1556 1323 1557 #endif … … 1375 1609 static volatile int gui_in_redraw; 1376 1610 static int gui_splash, gui_splash_mode; 1377 static char osd_buf[32];1378 1611 1379 1612 //------------------------------------------------------------------- … … 1388 1621 } 1389 1622 gui_splash = (conf.splash_show)?SPLASH_TIME:0; 1390 user_menu_restore();1391 gui_lang_init();1392 1623 draw_init(); 1393 1624 … … 1453 1684 static int logo_size; 1454 1685 if (gui_splash) { 1455 static int need_logo=1; // don't use logo ptr, since we don't want to keep re-trying 1456 if(need_logo) { 1457 const char *logo_name="A/CHDK/DATA/logo.dat"; 1686 static int need_logo=1; // don't use logo ptr, since we don't want to keep re-trying 1687 if(need_logo) { 1688 #if defined(VER_CHDK) 1689 const char *logo_name="A/CHDK/DATA/logo.dat"; 1690 #else // CHDK-DE 1691 const char *logo_name="A/CHDK/DATA/logo_de.dat"; 1692 #endif 1458 1693 FILE *fd; 1459 1694 struct stat st; 1460 1695 need_logo=0; 1461 1696 if (stat(logo_name,&st) == 0) { 1462 logo_size=st.st_size; 1463 logo=malloc(logo_size); 1464 if(logo) { 1465 fd = fopen(logo_name, "rb"); 1466 if(fd){ 1467 fread(logo,1,logo_size,fd); 1468 fclose(fd); 1469 } 1470 else { 1471 free(logo); 1472 logo=NULL; 1473 } 1474 } 1475 } 1476 } 1697 logo_size=st.st_size; 1698 logo=malloc(logo_size); 1699 if(logo) { 1700 fd = fopen(logo_name, "rb"); 1701 if(fd){ 1702 fread(logo,1,logo_size,fd); 1703 fclose(fd); 1704 } 1705 else { 1706 free(logo); 1707 logo=NULL; 1708 need_logo=1; 1709 } 1710 } 1711 } 1712 } 1477 1713 if (gui_splash>(SPLASH_TIME-4)) { 1478 1714 gui_draw_splash(logo,logo_size); … … 1483 1719 } 1484 1720 --gui_splash; 1485 if(!gui_splash) { 1486 free(logo); 1487 } 1721 if(!gui_splash) { 1722 free(logo); 1723 logo=NULL; 1724 need_logo=1; 1725 } 1488 1726 } 1489 1727 } … … 1521 1759 1522 1760 #ifdef CAM_DISP_ALT_TEXT 1523 draw_ txt_string(20, 14, "<ALT>", MAKE_COLOR(COLOR_RED, COLOR_WHITE));1761 draw_string(((CAM_SCREEN_WIDTH/2)-(FONT_WIDTH*5/2)), (CAM_SCREEN_HEIGHT-FONT_HEIGHT), "<ALT>", MAKE_COLOR(COLOR_RED, COLOR_WHITE)); 1524 1762 #endif 1525 1763 … … 1959 2197 if (conf.debug_misc_vals_show) { 1960 2198 // show value of Memory Address selected with Memory Browser 1961 sprintf( osd_buf, "MEM: %#8x", (void*) (*(int*)conf.mem_view_addr_init)); // show value in Hexadecimal integer1962 //sprintf( osd_buf, "MEM: %8u", (void*) (*(int*)conf.mem_view_addr_init)); // show value in Decimal integer1963 draw_txt_string(28, 9, osd_buf, conf.osd_color);2199 sprintf(buf, "MEM: %#8x", (void*) (*(int*)conf.mem_view_addr_init)); // show value in Hexadecimal integer 2200 //sprintf(buf, "MEM: %8u", (void*) (*(int*)conf.mem_view_addr_init)); // show value in Decimal integer 2201 draw_txt_string(28, 9, buf, conf.osd_color); 1964 2202 1965 2203 // show Autofocus status (if AF is working) 1966 2204 extern volatile long focus_busy; 1967 sprintf( osd_buf, "FB: %8u", focus_busy);1968 draw_txt_string(28, 10, osd_buf, conf.osd_color);2205 sprintf(buf, "FB: %8u", focus_busy); 2206 draw_txt_string(28, 10, buf, conf.osd_color); 1969 2207 1970 2208 // show Zoom status (if Lens is moving) 1971 2209 extern volatile long zoom_busy; 1972 sprintf( osd_buf, "ZB: %8u", zoom_busy);1973 draw_txt_string(28, 11, osd_buf, conf.osd_color);2210 sprintf(buf, "ZB: %8u", zoom_busy); 2211 draw_txt_string(28, 11, buf, conf.osd_color); 1974 2212 1975 2213 // show USB-Power status to debug remote / sync 1976 sprintf( osd_buf, "USB: %8u", get_usb_power(1));1977 draw_txt_string(28, 12, osd_buf, conf.osd_color);2214 sprintf(buf, "USB: %8u", get_usb_power(1)); 2215 draw_txt_string(28, 12, buf, conf.osd_color); 1978 2216 1979 2217 /* 1980 2218 // some cameras missing zoom_status 1981 sprintf( osd_buf, "ZS: %#8x", zoom_status);1982 draw_txt_string(28, 13, osd_buf, conf.osd_color);2219 sprintf(buf, "ZS: %#8x", zoom_status); 2220 draw_txt_string(28, 13, buf, conf.osd_color); 1983 2221 */ 1984 2222 1985 2223 /* 1986 sprintf( osd_buf, "VP: %#8x", vid_get_viewport_fb_d());1987 draw_txt_string(28, 14, osd_buf, conf.osd_color);2224 sprintf(buf, "VP: %#8x", vid_get_viewport_fb_d()); 2225 draw_txt_string(28, 14, buf, conf.osd_color); 1988 2226 */ 1989 2227 … … 1991 2229 // debug keymap, KEYS_MASKx, SD_READONLY_FLAG, USB_MASK 1992 2230 extern long physw_status[3]; 1993 sprintf( osd_buf, "PS1: %#8x", physw_status[0]);1994 draw_txt_string(28, 10, osd_buf, conf.osd_color);1995 1996 sprintf( osd_buf, "PS2: %#8x", physw_status[1]);1997 draw_txt_string(28, 11, osd_buf, conf.osd_color);1998 1999 sprintf( osd_buf, "PS3: %#8x", physw_status[2]);2000 draw_txt_string(28, 12, osd_buf, conf.osd_color);2231 sprintf(buf, "PS1: %#8x", physw_status[0]); 2232 draw_txt_string(28, 10, buf, conf.osd_color); 2233 2234 sprintf(buf, "PS2: %#8x", physw_status[1]); 2235 draw_txt_string(28, 11, buf, conf.osd_color); 2236 2237 sprintf(buf, "PS3: %#8x", physw_status[2]); 2238 draw_txt_string(28, 12, buf, conf.osd_color); 2001 2239 */ 2002 2240 2003 2241 /* 2004 2242 long v=get_file_counter(); 2005 sprintf( osd_buf, "1:%03d-%04d", (v>>18)&0x3FF, (v>>4)&0x3FFF);2006 sprintf( osd_buf, "1:%d, %08X", xxxx, eeee);2243 sprintf(buf, "1:%03d-%04d", (v>>18)&0x3FF, (v>>4)&0x3FFF); 2244 sprintf(buf, "1:%d, %08X", xxxx, eeee); 2007 2245 */ 2008 2246 } 2009 2247 { 2010 static char sbuf[100];2011 2248 int r,i, p, len; 2012 2249 if (conf.debug_display == DEBUG_DISPLAY_PROPS){ … … 2016 2253 p = conf.debug_propcase_page*10+i; 2017 2254 get_property_case(p, &r, 4); 2018 sprintf( sbuf, "%3d: %d ", p, r);2019 sbuf[20]=0;2020 draw_string(64,16+16*i, sbuf, conf.osd_color);2255 sprintf(buf, "%3d: %d ", p, r); 2256 buf[20]=0; 2257 draw_string(64,16+16*i,buf, conf.osd_color); 2021 2258 } 2022 2259 } … … 2031 2268 p = conf.debug_propcase_page*10+i; 2032 2269 if (p>=get_flash_params_count()) { 2033 sprintf( sbuf, "%3d: This parameter does not exists", p);2270 sprintf(buf, "%3d: This parameter does not exists", p); 2034 2271 } else { 2035 2272 len=FlashParamsTable[p][1]>>16; 2036 2273 if ((len==1)||(len==2)||(len==4)){ 2037 get_parameter_data(p, &r, len); 2038 sprintf( sbuf, "%3d: %30d :%2d ", p, r,len);2274 get_parameter_data(p, &r, len); 2275 sprintf(buf, "%3d: %30d :%2d ", p, r,len); 2039 2276 } 2040 2277 else { … … 2042 2279 get_parameter_data(p, &s, count); 2043 2280 s[count]=0; 2044 sprintf( sbuf, "%3d: %30s :%2d ", p, s,len);2281 sprintf(buf, "%3d: %30s :%2d ", p, s,len); 2045 2282 } 2046 2283 } 2047 draw_string(16,16+16*i, sbuf, conf.osd_color);2284 draw_string(16,16+16*i,buf, conf.osd_color); 2048 2285 } 2049 2286 } … … 2173 2410 pressed = 1; 2174 2411 } 2175 } else { 2412 } 2413 #if !CAM_HAS_MANUAL_FOCUS && CAM_HAS_ZOOM_LEVER && CAM_CAN_SD_OVERRIDE 2414 // Todo, check for AF and if its running, don't override 2415 else if (kbd_is_key_pressed(SHORTCUT_SD_SUB)) { 2416 if (!pressed) { 2417 if (!(conf.override_disable==1) && shooting_can_focus() && shooting_get_common_focus_mode()) { 2418 gui_subj_dist_override_value_enum(-1,0); 2419 shooting_set_focus(shooting_get_subject_distance_override_value(),SET_NOW); 2420 //pressed = 1; 2421 } 2422 } 2423 } else if (kbd_is_key_pressed(SHORTCUT_SD_ADD)) { 2424 if (!pressed) { 2425 if (!(conf.override_disable==1) && shooting_can_focus() && shooting_get_common_focus_mode()) { 2426 gui_subj_dist_override_value_enum(1,0); 2427 shooting_set_focus(shooting_get_subject_distance_override_value(),SET_NOW); 2428 //pressed = 1; 2429 } 2430 } 2431 } 2432 #endif 2433 else { 2176 2434 pressed = 0; 2177 2435 } … … 2213 2471 2214 2472 if ((gui_get_mode()==GUI_MODE_NONE || gui_get_mode()==GUI_MODE_ALT) && ( 2215 (kbd_is_key_pressed(KEY_SHOOT_HALF) && ((conf.show_histo==SHOW_HALF)/* || (m&MODE_MASK) == MODE_PLAY*/)) || 2216 ((conf.show_histo==SHOW_ALWAYS) && !((m&MODE_MASK) == MODE_PLAY) &&(recreview_hold==0))2217 ) && 2473 (kbd_is_key_pressed(KEY_SHOOT_HALF) && ((conf.show_histo==SHOW_HALF)/* || (m&MODE_MASK) == MODE_PLAY*/)) || 2474 ((conf.show_histo==SHOW_ALWAYS) && /* !((m&MODE_MASK) == MODE_PLAY) && */ (recreview_hold==0)) 2475 ) && 2218 2476 (mode_photo || (m&MODE_SHOOTING_MASK)==MODE_STITCH)) { 2219 2477 gui_osd_draw_histo(); … … 2249 2507 gui_usb_draw_osd(); 2250 2508 if(conf.show_temp>0) gui_osd_draw_temp(); 2509 #ifdef CAM_HAS_GPS 2510 if (((int)conf.gps_on_off ==1) && (exit_gps_data==1)) 2511 { 2512 _CreateTask("GPSDATA", 0x19, 0x400, gps_get_data, 0); 2513 exit_gps_data=0; 2514 } 2515 #endif 2251 2516 if (conf.fast_ev && !mode_video && (m&MODE_MASK) == MODE_REC ) gui_osd_draw_ev(); 2252 2517 } … … 2262 2527 #if CAM_DRAW_EXPOSITION 2263 2528 if (gui_get_mode()==GUI_MODE_NONE && kbd_is_key_pressed(KEY_SHOOT_HALF) && ((m&MODE_MASK)==MODE_REC) && ((m&MODE_SHOOTING_MASK))!=MODE_VIDEO_STD && (m&MODE_SHOOTING_MASK)!=MODE_VIDEO_COMPACT) { 2264 strcpy( osd_buf,shooting_get_tv_str());2265 strcat( osd_buf,"\" F");2266 strcat( osd_buf,shooting_get_av_str());2267 draw_txt_string(22-strlen( osd_buf)/2, 14, osd_buf, conf.osd_color);2529 strcpy(buf,shooting_get_tv_str()); 2530 strcat(buf,"\" F"); 2531 strcat(buf,shooting_get_av_str()); 2532 draw_txt_string(22-strlen(buf)/2, 14, buf, conf.osd_color); 2268 2533 } 2269 2534 #endif … … 2281 2546 msg = ubasic_errstrings[UBASIC_E_UNKNOWN_ERROR]; 2282 2547 } else { 2283 msg = ubasic_errstrings[ubasic_error];2284 }2285 sprintf(osd_buf, "uBASIC:%d %s ", ubasic_linenumber(), msg);2286 draw_txt_string(0, 0, osd_buf, MAKE_COLOR(COLOR_RED, COLOR_YELLOW));2548 msg = ubasic_errstrings[ubasic_error]; 2549 } 2550 sprintf(buf, "uBASIC:%d %s ", ubasic_linenumber(), msg); 2551 draw_txt_string(0, 0, buf, MAKE_COLOR(COLOR_RED, COLOR_YELLOW)); 2287 2552 } 2288 2553 #endif … … 2312 2577 //------------------------------------------------------------------- 2313 2578 void gui_show_build_info(int arg) { 2314 static char buf[192];2315 2579 static char comp[64]; 2316 2580 … … 2323 2587 sprintf(comp, "UNKNOWN" ); 2324 2588 #endif 2325 sprintf(buf, lang_str(LANG_MSG_BUILD_INFO_TEXT), HDK_VERSION, BUILD_NUMBER, __DATE__, __TIME__, PLATFORM, PLATFORMSUB, comp);2326 gui_mbox_init(LANG_MSG_BUILD_INFO_TITLE, (int)buf, MBOX_FUNC_RESTORE|MBOX_TEXT_LEFT, NULL);2589 sprintf(buf, lang_str(LANG_MSG_BUILD_INFO_TEXT), HDK_VERSION, BUILD_NUMBER, BUILD_SVNREV, __DATE__, __TIME__, PLATFORM, PLATFORMSUB, comp); 2590 gui_mbox_init(LANG_MSG_BUILD_INFO_TITLE, (int)buf, MBOX_FUNC_RESTORE|MBOX_TEXT_LEFT, NULL); 2327 2591 } 2328 2592 2329 2593 //------------------------------------------------------------------- 2330 2594 void gui_show_memory_info(int arg) { 2331 static char buf[96]; // buffer size was 64, size increased for none english language2332 2333 2595 sprintf(buf, lang_str(LANG_MSG_MEMORY_INFO_TEXT), core_get_free_memory(), MEMISOSIZE, &_start, &_end); 2334 2596 gui_mbox_init(LANG_MSG_MEMORY_INFO_TITLE, (int)buf, MBOX_FUNC_RESTORE|MBOX_TEXT_CENTER, NULL); … … 2341 2603 2342 2604 //------------------------------------------------------------------- 2605 #if defined(VER_CHDK) 2606 #define LOGO_WIDTH 149 2607 #define LOGO_HEIGHT 84 2608 #else 2609 #define LOGO_WIDTH 169 2610 #define LOGO_HEIGHT 74 2611 #endif 2612 2343 2613 void gui_draw_splash(char* logo, int logo_size) { 2344 2614 coord w, h, x, y; 2345 2615 static const char *text[] = { 2346 "CHDK Firmware '" HDK_VERSION " " BUILD_NUMBER "'" ,2616 "CHDK Version '" HDK_VERSION " " BUILD_NUMBER "-" BUILD_SVNREV "'" , 2347 2617 "Build: " __DATE__ " " __TIME__ , 2348 2618 "Camera: " PLATFORM " - " PLATFORMSUB }; … … 2369 2639 int mx=0; 2370 2640 int my=0; 2371 int offset_x = ( camera_screen.width-150)>>1;2372 int offset_y = (( camera_screen.height-84)>>1) - 42;2641 int offset_x = (CAM_SCREEN_WIDTH-LOGO_WIDTH)>>1; 2642 int offset_y = ((CAM_SCREEN_HEIGHT-LOGO_HEIGHT)>>1) - 42; 2373 2643 const color color_lookup[8] = {COLOR_BLACK, 2374 2644 COLOR_SPLASH_RED/*0x2E redish*/, … … 2386 2656 draw_pixel(offset_x+mx,offset_y+my,c); 2387 2657 } 2388 if (mx== 149){2658 if (mx==LOGO_WIDTH){ 2389 2659 mx=0; 2390 2660 my++; 2391 2661 }else{ 2392 2662 mx++; 2393 } 2663 } 2394 2664 } 2395 2665 }
Note: See TracChangeset
for help on using the changeset viewer.