Changeset 1772 for trunk/platform/sx100is/main.c
- Timestamp:
- 03/28/12 08:43:49 (15 months ago)
- Location:
- trunk
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
platform/sx100is/main.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/release-1_0 merged: 1770-1771
- Property svn:mergeinfo changed
-
trunk/platform/sx100is/main.c
r847 r1772 29 29 } 30 30 31 // Focus length table in firmware @0xfffe31ac 32 #define NUM_FL 23 // 0 - 22, entries in firmware 33 #define NUM_DATA 3 // 3 words each entry, first is FL 34 extern int focus_len_table[NUM_FL*NUM_DATA]; 31 35 32 static const int fl_tbl[] = {6000, 6700, 7300, 8200, 9100, 10300, 11500, 12800, 14400, 16100, 18100, 20100, 22400, 25200, 28100, 31500, 34900, 38900, 42500, 46600, 51100, 55900, 60000}; 33 #define NUM_FL (sizeof(fl_tbl)/sizeof(fl_tbl[0])) 34 #define CF_EFL 6000 36 // Conversion factor lens FL --> 35mm equiv 37 // lens 35mm CF 38 // ---- ---- -- 39 // 6.0 36 ( 36/ 6.0) * 60 = 360 (min FL) 40 // 60.0 360 (360/60.0) * 60 = 360 (max FL) 41 #define CF_EFL 360 42 #define CF_EFL_DIV 60 35 43 36 44 const int zoom_points = NUM_FL; 37 45 38 46 int get_effective_focal_length(int zp) { 39 return (CF_EFL*get_focal_length(zp))/ 1000;47 return (CF_EFL*get_focal_length(zp))/CF_EFL_DIV; 40 48 } 41 49 42 50 int get_focal_length(int zp) { 43 if (zp <0) return fl_tbl[0];44 else if (zp >NUM_FL-1) return fl_tbl[NUM_FL-1];45 else return fl_tbl[zp];51 if (zp < 0) zp = 0; 52 else if (zp >= NUM_FL) zp = NUM_FL-1; 53 return focus_len_table[zp*NUM_DATA]; 46 54 } 47 55 48 56 int get_zoom_x(int zp) { 49 if (zp<1) return 10; 50 else if (zp>NUM_FL-1) return fl_tbl[NUM_FL-1]*10/fl_tbl[0]; 51 else return fl_tbl[zp]*10/fl_tbl[0]; 57 return get_focal_length(zp)*10/focus_len_table[0]; 52 58 } 53 59
Note: See TracChangeset
for help on using the changeset viewer.