Exemplo n.º 1
0
Arquivo: lib.c Projeto: cigor/CHDK
long raw_shoot_avail(){ // from 710 added
 long jpegs,size,quality;
 jpegs=atoi((char*)0x6E8D0); // orig.0x7BD98 find -> a9999
 get_property_case(23, (void *)&quality, 4);
 get_property_case(24, (void *)&size, 4);
 if ((size>4) || (quality>2)) return 0; 
 return (file_size_table[quality][size]*jpegs)/(file_size_table[quality][size]+(hook_raw_size()>>10));
}
Exemplo n.º 2
0
Arquivo: lib.c Projeto: c10ud/CHDK
int vid_get_viewport_display_xoffset_proper() {
    int val=0;
    int m = mode_get();
    if((m&MODE_MASK) != MODE_PLAY && (m&MODE_SHOOTING_MASK) == MODE_STITCH) {
        short dir=0;
        short seq=0;
        get_property_case(PROPCASE_STITCH_DIRECTION,&dir,sizeof(dir));
        get_property_case(PROPCASE_STITCH_SEQUENCE,&seq,sizeof(seq));
        // overall stitch window is 3/4 screen width, centered
        // live part is 1/2, so margin is either 1/8th or 3/8th
        if(dir==0) {
            val = seq?270:90;
        } else {
            val = seq?90:270;
        }
    }
    return val;
}
Exemplo n.º 3
0
int UnlockMF(void)
{
  if (!camera_info.state.mode_play) {
     int mf_lock;
     get_property_case(PROPCASE_FOCUS_MODE,&mf_lock,sizeof(mf_lock));
     if( mf_lock == 1 ) PostLogicalEventForNotPowerType(levent_id_for_name("PressSw1AndMF"),0);
     return(1);
  }
  return(0);
}
Exemplo n.º 4
0
Arquivo: lib.c Projeto: cigor/CHDK
int vid_get_viewport_display_xoffset() {
    int m = mode_get();
    if((m&MODE_MASK) == MODE_PLAY) {
        return 0;
    } else if((m&MODE_SHOOTING_MASK) == MODE_STITCH) {
        short dir=0;
        short seq=0;
        get_property_case(PROPCASE_STITCH_DIRECTION,&dir,sizeof(dir));
        get_property_case(PROPCASE_STITCH_SEQUENCE,&seq,sizeof(seq));
        // overall stitch window is 3/4 screen width, centered
        // live part is 1/2, so margin is either 1/8th or 3/8th
        if(dir==0) {
            return seq?132:44;
        } else {
            return seq?44:132;
        }
#ifdef FAKE_ASPECT
    } else if((m&MODE_SHOOTING_MASK) == MODE_PORTRAIT) {
        return 44;
#endif
    }
    return 0;
}
Exemplo n.º 5
0
void gui_osd_draw_rf3() {
  
  
  static char sd[10],dc[10],d[10],df[10],H[10];

  { unsigned short avv = 0;
    if (mode_get()&(MODE_M | MODE_AV))
         get_property_case(39, (void *)&avv, sizeof(avv));
    else get_property_case(68, (void *)&avv, sizeof(avv));

    canon_av2s((unsigned short)lens_get_zoom_point(),
               (unsigned short)lens_get_focus_pos(),
               (unsigned short)avv,
               (unsigned short)(10*3), // circle of confusion is 3 microns
               sd, 8,
               dc, 8,
               d, 8,
               df, 8,
               H, 8);

    //sprintf(osd_buf, "m %u A %u ", knob, avv, ""); }
    sprintf(osd_buf,"s%7u", (unsigned short)lens_get_focus_pos());
    draw_string(conf.values_pos.x, conf.values_pos.y+FONT_HEIGHT*6,
                osd_buf,conf.osd_color);
    sprintf(osd_buf,"f%7s",df);
    draw_string(conf.values_pos.x, conf.values_pos.y+FONT_HEIGHT*7,
                osd_buf,conf.osd_color);
    sprintf(osd_buf,"d%7s",d);
    draw_string(conf.values_pos.x, conf.values_pos.y+FONT_HEIGHT*8,
                osd_buf, conf.osd_color);
    sprintf(osd_buf,"c%7s",dc);
    draw_string(conf.values_pos.x, conf.values_pos.y+FONT_HEIGHT*9,
                osd_buf, conf.osd_color);
    sprintf(osd_buf,"s%7s",sd);
    draw_string(conf.values_pos.x, conf.values_pos.y+FONT_HEIGHT*10,
                osd_buf, conf.osd_color); }
}
Exemplo n.º 6
0
//------------------------------------------------------------------- 
// Handler for button presses in normal camera shooting or playback modes
static int gui_std_kbd_process()
{
#ifdef CAM_USE_ZOOM_FOR_MF
    if (conf.use_zoom_mf && kbd_use_zoom_as_mf())
        return 1;
#endif 

    if (kbd_use_up_down_left_right_as_fast_switch())
        return 1;

    // Process Shutter Half Press + BUTTON shortcuts
    gui_kbd_shortcuts();

    // process other keys in not <alt> mode

#if CAM_AF_SCAN_DURING_VIDEO_RECORD 
    if (is_video_recording())
        if (kbd_is_key_clicked(conf.video_af_key)) MakeAFScan(); 
#endif 

#if CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO
    // return from digital to optical zoom in video
#if CAM_HAS_ZOOM_LEVER
    if (conf.unlock_optical_zoom_for_video && is_video_recording() &&  kbd_is_key_clicked(KEY_ZOOM_OUT))
#else
    if (conf.unlock_optical_zoom_for_video && is_video_recording() &&  kbd_is_key_clicked(KEY_DOWN))
#endif
    {
        short x;
        // state = 1 => digital zoom standard
        if (shooting_get_digital_zoom_state())
        {
            get_property_case(PROPCASE_DIGITAL_ZOOM_POSITION, &x, sizeof(x));
#if defined(CAM_USE_OPTICAL_MAX_ZOOM_STATUS)
	        if (x==0) zoom_status=ZOOM_OPTICAL_MAX; //ERR99: No zoom back from digital to optical zoom possible if set to medium
#else
	        if (x==0) zoom_status=ZOOM_OPTICAL_MEDIUM;
#endif
        }
    }
#endif

#if CAM_EV_IN_VIDEO
    if (is_video_recording() && !camera_info.state.is_shutter_half_press)
    {
#if CAM_HAS_ERASE_BUTTON
        if (kbd_is_key_clicked(KEY_ERASE))
#elif CAM_HAS_DISP_BUTTON
        if (kbd_is_key_clicked(KEY_DISPLAY))
#else
        if (kbd_is_key_clicked(KEY_MENU))
#endif
        {
            set_ev_video_avail(!get_ev_video_avail());
#ifdef CAM_TOUCHSCREEN_UI
            redraw_buttons = 1;
#endif
        }
        if (get_ev_video_avail())
        {
            if (kbd_is_key_clicked(KEY_LEFT))
            {
                set_ev_video(get_ev_video()-1);
            }
            if (kbd_is_key_clicked(KEY_RIGHT))
            {
                set_ev_video(get_ev_video()+1);
            }
        }
    }
#endif

    return 0;
}