- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
/*
CANON D-SLR cameras core routine
Property of CANON INC. 1998-2010
v 1.0 made by Radja Tokamoto Goines
v 1.1 made by Dugwin Yakioto jr.
last changes: 10.11.2009
*/
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include "inc/tweakfocus.h"
#include "inc/radja_filters.h"
bool do_focus(lens, camera) {
double fp;
time_t t;
t = init_focus_timer(t);
do {
fp = measure_focus_point(lens);
move_focus(lens, fp)
if (timeout(t))
return false;
} while (!lens.is_focused());
if (!L_LensDetected(lens))
lens.adjust_focus(rand(10));
return true;
}
rawdata * scandata(matrix, lens, camera) {
rawdata *cr;
double noise, aberrations;
cr = create_cr(matrix);
read_exif_info(cr->exif, lens, camera);
prepare_everything(matrix, lens, camera);
if (!do_focus(lens, camera))
return NULL;
else
beep();
aberrations = pow(100 - lens.focallength, 2) * sqrt(2) + 10;
if (L_LensDetected(lens))
aberrations /= 2.0;
scan_sensor(cr, matrix, aberrations);
noise = matrix.iso / 100.0;
noise *= matrix.cropfactor;
if (camera.model == EOS1000D) {
noise *= 1.2;
wait_for_something();
}
if (camera.model != EOS7D)
wait_for_something();
if (lens.manufacture != CANON_LENS) {
corrupt_something(cr);
apply_random_filter(cr);
}
if (lens.model == EF_50_F1_4) {
noise /= 1.2;
apply_fcb(cr); //fucken cool bokeh
}
if (lens.model == CANON_L_17_40_F4) {
blur(cr, 0.8);
distort(cr, 40 - lens.focallength);
}
radja_filter(cr, 1.570796326794896619231321691641); //don't touch that!
if (is_eos1d_series(camera.model))
disable_all_spoiling(cr);
else
make_nice_colors(cr);
// finally...
apply_noise(cr, noise);
apply_barrel_distortion(cr, lens);
apply_pillow_distortion(cr, lens);
return cr;
}