Changeset 683 for trunk/core/gui.c


Ignore:
Timestamp:
01/18/09 10:06:38 (4 years ago)
Author:
reyalp
Message:

https://chdk.kernreaktor.org/mantis/view.php?id=147 allocate zebra memory only when needed, frees when zebra not displayed.
this disables zebra in when scripts are running, could be made an option if needed.
Also some cosmetic formatting changes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/core/gui.c

    r660 r683  
    25142514    static int flashlight = 0; 
    25152515#endif 
    2516     static int zebra = 0, zebra_init = 0, pressed = 0; 
     2516    static int pressed = 0; 
    25172517    static int half_disp_press_old=0; 
    25182518    int half_disp_press; 
    2519      
     2519    int need_restore = 0; 
    25202520    m = mode_get(); 
    25212521 
     
    25282528        if ((!((m&MODE_SCREEN_OPENED) && (m&MODE_SCREEN_ROTATED))) || (gui_mode!=GUI_MODE_NONE /* && gui_mode!=GUI_MODE_ALT */)) { 
    25292529            flashlight = 0; 
    2530             draw_restore(); 
    2531         } 
    2532         return; 
     2530                        need_restore = 1; 
     2531        } else { 
     2532                        return; 
     2533                } 
    25332534    } 
    25342535#endif 
     
    25382539            if (!pressed) { 
    25392540                conf.zebra_draw = !conf.zebra_draw; 
    2540                 if (zebra && !conf.zebra_draw) { 
    2541                     zebra = 0; 
    2542                     draw_restore(); 
     2541                if (!conf.zebra_draw) { 
     2542                                        need_restore = 1; 
    25432543                } 
    25442544                pressed = 1; 
    25452545            } 
    2546         } 
    2547          else if (kbd_is_key_pressed(SHORTCUT_TOGGLE_HISTO)) { 
     2546        } else if (kbd_is_key_pressed(SHORTCUT_TOGGLE_HISTO)) { 
    25482547            if (!pressed) { 
    25492548                if (++conf.show_histo>SHOW_HALF) conf.show_histo=0; 
    25502549                if (!conf.show_histo) { 
    2551                     draw_restore(); 
     2550                                        need_restore = 1; 
    25522551                } 
    25532552                pressed = 1; 
     
    25572556                conf.show_osd = !conf.show_osd; 
    25582557                if (!conf.show_osd) { 
    2559                     draw_restore(); 
     2558                                        need_restore = 1; 
    25602559                } 
    25612560                pressed = 1; 
    25622561            } 
    2563           } else if (kbd_is_key_pressed(SHORTCUT_DISABLE_OVERRIDES)) { 
     2562        } else if (kbd_is_key_pressed(SHORTCUT_DISABLE_OVERRIDES)) { 
    25642563             if (!pressed) { 
    25652564                 if (conf.override_disable < 2) conf.override_disable = !conf.override_disable; 
    25662565                 if (!conf.show_osd) { 
    2567                      draw_restore(); 
     2566                                        need_restore = 1; 
    25682567                 } 
    25692568                 pressed = 1; 
     
    25842583 
    25852584    half_disp_press=mode_photo && kbd_is_key_pressed(KEY_SHOOT_HALF) && kbd_is_key_pressed(KEY_DISPLAY); 
    2586     if (half_disp_press && ! half_disp_press_old) draw_restore(); 
     2585    if (half_disp_press && ! half_disp_press_old)  
     2586                need_restore = 1; 
    25872587    half_disp_press_old=half_disp_press; 
    2588     if (half_disp_press) return; 
    2589  
    2590     if (conf.zebra_draw && gui_mode==GUI_MODE_NONE && kbd_is_key_pressed(KEY_SHOOT_HALF) && mode_photo) { 
    2591         if (!zebra_init) { 
    2592             zebra_init = 1; 
    2593             gui_osd_zebra_init(); 
    2594         } 
    2595         zebra = gui_osd_draw_zebra(); 
    2596     } 
    2597     if (zebra_init && !kbd_is_key_pressed(KEY_SHOOT_HALF)) { 
    2598         zebra_init = 0; 
    2599     } 
    2600     if (zebra) { 
    2601         if (!kbd_is_key_pressed(KEY_SHOOT_HALF)) { 
    2602             zebra = 0; 
    2603             draw_restore(); 
    2604         } 
    2605         return; 
    2606     } 
     2588 
     2589        if (need_restore) 
     2590                draw_restore(); 
     2591 
     2592    if (half_disp_press)  
     2593                return; 
     2594 
     2595        if (gui_osd_draw_zebra(conf.zebra_draw && gui_mode==GUI_MODE_NONE && 
     2596                                                        kbd_is_key_pressed(KEY_SHOOT_HALF) && mode_photo && 
     2597                                                        !state_kbd_script_run)) {// no zebra when script running, to save mem 
     2598                return; // if zebra drawn, we're done 
     2599        } 
    26072600#if !CAM_SHOW_OSD_IN_SHOOT_MENU 
    26082601    if (!(conf.show_osd && (canon_menu_active==(int)&canon_menu_active-4) && (canon_shoot_menu_active==0)))  return;     
     
    26492642 
    26502643 
    2651      if ((recreview_hold==0) &&  (!kbd_is_key_pressed(KEY_SHOOT_HALF) &&  (  ((m&MODE_MASK) == MODE_REC) || (!((m&MODE_MASK) == MODE_REC) &&  !((conf.hide_osd == 1) || (conf.hide_osd == 3)) )) && !(((conf.hide_osd == 2) || (conf.hide_osd == 3))&& (shooting_get_prop(PROPCASE_DISPLAY_MODE) == 1))))   { 
     2644    if ((recreview_hold==0) &&  (!kbd_is_key_pressed(KEY_SHOOT_HALF) &&  (  ((m&MODE_MASK) == MODE_REC) || (!((m&MODE_MASK) == MODE_REC) &&  !((conf.hide_osd == 1) || (conf.hide_osd == 3)) )) && !(((conf.hide_osd == 2) || (conf.hide_osd == 3))&& (shooting_get_prop(PROPCASE_DISPLAY_MODE) == 1))))   { 
    26522645        gui_batt_draw_osd(); 
    26532646        gui_space_draw_osd(); 
    26542647    } 
    26552648     
    2656      if ((conf.show_clock) && (recreview_hold==0) &&  ((!kbd_is_key_pressed(KEY_SHOOT_HALF) &&  (  ((m&MODE_MASK) == MODE_REC) || (!((m&MODE_MASK) == MODE_REC) &&  !((conf.hide_osd == 1) || (conf.hide_osd == 3)) )) && !(((conf.hide_osd == 2) || (conf.hide_osd == 3))&& (shooting_get_prop(PROPCASE_DISPLAY_MODE) == 1)))|| (conf.clock_halfpress==0) )) { 
     2649    if ((conf.show_clock) && (recreview_hold==0) &&  ((!kbd_is_key_pressed(KEY_SHOOT_HALF) &&  (  ((m&MODE_MASK) == MODE_REC) || (!((m&MODE_MASK) == MODE_REC) &&  !((conf.hide_osd == 1) || (conf.hide_osd == 3)) )) && !(((conf.hide_osd == 2) || (conf.hide_osd == 3))&& (shooting_get_prop(PROPCASE_DISPLAY_MODE) == 1)))|| (conf.clock_halfpress==0) )) { 
    26572650        gui_osd_draw_clock(0,0,0); 
    2658             } 
    2659      
     2651    } 
    26602652    else if ((conf.show_clock) && (recreview_hold==0) &&  kbd_is_key_pressed(KEY_SHOOT_HALF) && conf.clock_halfpress==1) { 
    26612653        gui_osd_draw_seconds(); 
    26622654    } 
    26632655  
    2664       if ((conf.show_temp>0) && (recreview_hold==0) &&  ((!kbd_is_key_pressed(KEY_SHOOT_HALF) &&  (  ((m&MODE_MASK) == MODE_REC) || (!((m&MODE_MASK) == MODE_REC) &&  !((conf.hide_osd == 1) || (conf.hide_osd == 3)) )) && !(((conf.hide_osd == 2) || (conf.hide_osd == 3))&& (shooting_get_prop(PROPCASE_DISPLAY_MODE) == 1)) )|| (conf.clock_halfpress==0) )) { 
     2656    if ((conf.show_temp>0) && (recreview_hold==0) &&  ((!kbd_is_key_pressed(KEY_SHOOT_HALF) &&  (  ((m&MODE_MASK) == MODE_REC) || (!((m&MODE_MASK) == MODE_REC) &&  !((conf.hide_osd == 1) || (conf.hide_osd == 3)) )) && !(((conf.hide_osd == 2) || (conf.hide_osd == 3))&& (shooting_get_prop(PROPCASE_DISPLAY_MODE) == 1)) )|| (conf.clock_halfpress==0) )) { 
    26652657        gui_osd_draw_temp(); 
    2666       } 
    2667  if (conf.show_movie_time > 0 && (mode_video || movie_status > 1)) 
    2668  { 
    2669  gui_osd_draw_movie_time_left(); 
    2670 } 
     2658    } 
     2659    if (conf.show_movie_time > 0 && (mode_video || movie_status > 1)) { 
     2660        gui_osd_draw_movie_time_left(); 
     2661    } 
    26712662  
    2672  if ((conf.fast_ev) && (recreview_hold==0) && ((mode_get()&MODE_SHOOTING_MASK) != MODE_VIDEO_STD) && ((!kbd_is_key_pressed(KEY_SHOOT_HALF) &&  (  ((m&MODE_MASK) == MODE_REC) || (!((m&MODE_MASK) == MODE_REC) &&  !((conf.hide_osd == 1) || (conf.hide_osd == 3)) )) && !(((conf.hide_osd == 2) || (conf.hide_osd == 3))&& (shooting_get_prop(PROPCASE_DISPLAY_MODE) == 1))) )) { 
    2673        gui_osd_draw_ev(); 
    2674  } 
     2663    if ((conf.fast_ev) && (recreview_hold==0) && ((mode_get()&MODE_SHOOTING_MASK) != MODE_VIDEO_STD) && ((!kbd_is_key_pressed(KEY_SHOOT_HALF) &&  (  ((m&MODE_MASK) == MODE_REC) || (!((m&MODE_MASK) == MODE_REC) &&  !((conf.hide_osd == 1) || (conf.hide_osd == 3)) )) && !(((conf.hide_osd == 2) || (conf.hide_osd == 3))&& (shooting_get_prop(PROPCASE_DISPLAY_MODE) == 1))) )) { 
     2664        gui_osd_draw_ev(); 
     2665    } 
    26752666#if CAM_DRAW_EXPOSITION 
    26762667    if (gui_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) { 
Note: See TracChangeset for help on using the changeset viewer.