source: trunk/platform/generic/capt_seq.c @ 1300

Revision 1300, 1.7 KB checked in by philmoz, 21 months ago (diff)

Updated comments for G12 & SX30 to include correct firmware addresses for each version.

  • Property svn:eol-style set to native
Line 
1// generic capt_seq fuctions
2
3#define RAWDATA_AVAILABLE (1)
4#define RAWDATA_SAVED (2)
5
6// some cams use different values
7// note: many cams ROM also accepts a value of 3, meaning unknown
8#ifndef NR_ON
9#define NR_ON (2)
10#endif
11#ifndef NR_OFF
12#define NR_OFF (1)
13#endif
14
15static long raw_save_stage;
16volatile long shutter_open_time=0; // for DNG EXIF creation
17
18void __attribute__((naked,noinline)) capt_seq_hook_raw_here()
19{
20 asm volatile("STMFD   SP!, {R0-R12,LR}\n");
21
22#ifdef PAUSE_FOR_FILE_COUNTER
23    // Some cameras need a slight delay for the file counter to be updated correctly
24    // before raw_savefile tries to get the file name & directory.
25    // Add '#define PAUSE_FOR_FILE_COUNTER 100' in the camera firmware capt_seq.c file.
26    // The value can be adjusted as needed for different cameras.
27    _SleepTask(PAUSE_FOR_FILE_COUNTER);
28#endif
29
30    raw_save_stage = RAWDATA_AVAILABLE;
31    core_rawdata_available();
32    while (raw_save_stage != RAWDATA_SAVED){
33        _SleepTask(10);
34    }
35
36 asm volatile("LDMFD   SP!, {R0-R12,PC}\n");
37}
38
39
40void hook_raw_save_complete()
41{
42    raw_save_stage = RAWDATA_SAVED;
43}
44
45void __attribute__((naked,noinline)) capt_seq_hook_set_nr()
46{
47 asm volatile("STMFD   SP!, {R0-R12,LR}\n");
48    switch (core_get_noise_reduction_value()){
49    case NOISE_REDUCTION_AUTO_CANON:
50        // leave it alone
51#if defined(NR_AUTO)                    // If value defined store it (e.g. for G12 & SX30 need to reset back to 0 to enable auto)
52        *nrflag = NR_AUTO;
53#endif
54        break;
55    case NOISE_REDUCTION_OFF:
56        *nrflag = NR_OFF;
57        break;
58    case NOISE_REDUCTION_ON:
59        *nrflag = NR_ON;
60        break;
61    };
62
63 shutter_open_time=_time((void*)0);
64
65 asm volatile("LDMFD   SP!, {R0-R12,PC}\n");
66}
67
Note: See TracBrowser for help on using the repository browser.