CHDK_DE Vorschauversion  Trunk Rev. 6014
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
capt_seq.c-Dateireferenz
#include "lolevel.h"
#include "platform.h"
#include "core.h"
#include "conf.h"
#include "../../../generic/capt_seq.c"
+ Include-Abhängigkeitsdiagramm für capt_seq.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define NR_AUTO   (0)
 

Funktionen

void _LogCameraEvent (int id, const char *fmt,...)
 
char * hook_raw_image_addr (void)
 
void log_capt_seq (int m)
 
void log_capt_seq2 (int m)
 
void log_capt_seq_override (void)
 
int _captseq_raw_addr_init (int raw_index, char **ptr)
 
void captseq_raw_addr_init_my (int raw_index, char **ptr)
 
void clear_current_raw_addr (void)
 
void __attribute__ ((naked, noinline))
 *-------------------------------------------------------------------— Mehr ...
 
void log_remote_hook (void)
 
void log_rh (void)
 

Variablen

static long * nrflag = (long*)0x1e858
 
int active_raw_buffer
 
char * current_raw_addr
 

Makro-Dokumentation

#define NR_AUTO   (0)

Definiert in Zeile 5 der Datei capt_seq.c.

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

*-------------------------------------------------------------------—

!!

IS_ERROR( hSoundHandle )

IS_ERROR( RetCode )

IS_ERROR( RetCode )

IS_ERROR( RetCode )

IS_ERROR( RetCode )

"MOV R3, #0\n" "STR R3, [R9]\n"

TODO! below is from sd400

"MOV R3, #0\n" "STR R3, [R9]\n"

TODO! below is from sd400

__MovieRecorder_c__100

__MovieRecorder_c__100

ASM1989 -> In sx200:FF857190 //"Mounter.c"

ASM1989 -> In sx200:FF81B284 // DebugAssert

Definiert in Zeile 56 der Datei capt_seq.c.

56  {
57  asm volatile (
58 " push {r3, r4, r5, r6, r7, lr}\n"
59 " ldr r4, =0x0003c478\n"
60 " movs r6, #0\n"
61 " ldr r5, =0x0000ba2c\n"
62 "loc_fc152766:\n"
63 " movs r2, #0\n"
64 " mov r1, sp\n"
65 " ldr r0, [r5, #8]\n"
66 " blx sub_fc2cf348\n" // j_ReceiveMessageQueue
67 " lsls r0, r0, #0x1f\n"
68 " beq loc_fc152788\n"
69 " movw r2, #0x448\n"
70 " ldr r1, =0xfc152410\n" // *"SsShootTask.c"
71 " movs r0, #0\n"
72 " blx sub_fc2cf408\n" // j_DebugAssert
73 " blx sub_fc2cf358\n"
74 " pop {r3, r4, r5, r6, r7, pc}\n"
75 "loc_fc152788:\n"
76 " ldr r0, [sp]\n"
77 " ldr r0, [r0]\n"
78 " cmp r0, #1\n"
79 " beq loc_fc1527a0\n"
80 " cmp r0, #0x29\n"
81 " beq loc_fc1527a0\n"
82 " cmp r0, #0x1d\n"
83 " beq loc_fc1527a0\n"
84 " cmp r0, #0x21\n"
85 " beq loc_fc1527a0\n"
86 " bl sub_fc1dd978\n"
87 "loc_fc1527a0:\n"
88 " ldr r0, [sp]\n"
89 " ldr r1, [r0]\n"
90 " cmp r1, #0x2b\n"
91 " bhs loc_fc152888\n"
92 " tbb [pc, r1]\n" // (jumptable r1 43 elements)
93 "branchtable_fc1527ac:\n"
94 " .byte((loc_fc1527d8 - branchtable_fc1527ac) / 2)\n" // (case 0)
95 " .byte((loc_fc1527f0 - branchtable_fc1527ac) / 2)\n" // (case 1)
96 " .byte((loc_fc1527f8 - branchtable_fc1527ac) / 2)\n" // (case 2)
97 " .byte((loc_fc152806 - branchtable_fc1527ac) / 2)\n" // (case 3)
98 " .byte((loc_fc152800 - branchtable_fc1527ac) / 2)\n" // (case 4)
99 " .byte((loc_fc152812 - branchtable_fc1527ac) / 2)\n" // (case 5)
100 " .byte((loc_fc152818 - branchtable_fc1527ac) / 2)\n" // (case 6)
101 " .byte((loc_fc15281e - branchtable_fc1527ac) / 2)\n" // (case 7)
102 " .byte((loc_fc152826 - branchtable_fc1527ac) / 2)\n" // (case 8)
103 " .byte((loc_fc152866 - branchtable_fc1527ac) / 2)\n" // (case 9)
104 " .byte((loc_fc152830 - branchtable_fc1527ac) / 2)\n" // (case 10)
105 " .byte((loc_fc152838 - branchtable_fc1527ac) / 2)\n" // (case 11)
106 " .byte((loc_fc15284c - branchtable_fc1527ac) / 2)\n" // (case 12)
107 " .byte((loc_fc152854 - branchtable_fc1527ac) / 2)\n" // (case 13)
108 " .byte((loc_fc15285a - branchtable_fc1527ac) / 2)\n" // (case 14)
109 " .byte((loc_fc152860 - branchtable_fc1527ac) / 2)\n" // (case 15)
110 " .byte((loc_fc152870 - branchtable_fc1527ac) / 2)\n" // (case 16)
111 " .byte((loc_fc152876 - branchtable_fc1527ac) / 2)\n" // (case 17)
112 " .byte((loc_fc15287c - branchtable_fc1527ac) / 2)\n" // (case 18)
113 " .byte((loc_fc152882 - branchtable_fc1527ac) / 2)\n" // (case 19)
114 " .byte((loc_fc15288a - branchtable_fc1527ac) / 2)\n" // (case 20)
115 " .byte((loc_fc15288e - branchtable_fc1527ac) / 2)\n" // (case 21)
116 " .byte((loc_fc152894 - branchtable_fc1527ac) / 2)\n" // (case 22)
117 " .byte((loc_fc15289a - branchtable_fc1527ac) / 2)\n" // (case 23)
118 " .byte((loc_fc1528a0 - branchtable_fc1527ac) / 2)\n" // (case 24)
119 " .byte((loc_fc1528a6 - branchtable_fc1527ac) / 2)\n" // (case 25)
120 " .byte((loc_fc1528ac - branchtable_fc1527ac) / 2)\n" // (case 26)
121 " .byte((loc_fc1528b4 - branchtable_fc1527ac) / 2)\n" // (case 27)
122 " .byte((loc_fc1528ba - branchtable_fc1527ac) / 2)\n" // (case 28)
123 " .byte((loc_fc1528be - branchtable_fc1527ac) / 2)\n" // (case 29)
124 " .byte((loc_fc1528c6 - branchtable_fc1527ac) / 2)\n" // (case 30)
125 " .byte((loc_fc1528cc - branchtable_fc1527ac) / 2)\n" // (case 31)
126 " .byte((loc_fc1528f6 - branchtable_fc1527ac) / 2)\n" // (case 32)
127 " .byte((loc_fc1528fc - branchtable_fc1527ac) / 2)\n" // (case 33)
128 " .byte((loc_fc152902 - branchtable_fc1527ac) / 2)\n" // (case 34)
129 " .byte((loc_fc152908 - branchtable_fc1527ac) / 2)\n" // (case 35)
130 " .byte((loc_fc15290e - branchtable_fc1527ac) / 2)\n" // (case 36)
131 " .byte((loc_fc152914 - branchtable_fc1527ac) / 2)\n" // (case 37)
132 " .byte((loc_fc15291c - branchtable_fc1527ac) / 2)\n" // (case 38)
133 " .byte((loc_fc152922 - branchtable_fc1527ac) / 2)\n" // (case 39)
134 " .byte((loc_fc152946 - branchtable_fc1527ac) / 2)\n" // (case 40)
135 " .byte((loc_fc15294c - branchtable_fc1527ac) / 2)\n" // (case 41)
136 " .byte((loc_fc152966 - branchtable_fc1527ac) / 2)\n" // (case 42)
137 ".align 1\n"
138 "loc_fc1527d8:\n" // case 0: preshoot, quick press shoot
139 " ldr r0, [r0, #0xc]\n"
140 " uxtb r0, r0\n"
141 " bl sub_fc152cfa\n"
142 #ifdef CAPTSEQ_DEBUG_LOG
143 "bl log_capt_seq_override\n"
144 #endif
145 " BL clear_current_raw_addr\n" // +
146 " BL shooting_expo_param_override\n" //sx280
147 " bl sub_fc150454\n"
148 " ldr r0, [r4, #0x28]\n"
149 " cmp r0, #0\n"
150 " beq loc_fc1527ee\n"
151 //" bl sub_fc1dcaa8\n" //may need _my routine sx280
152 " bl sub_fc1dcaa8_my\n"
153 "loc_fc1527ee:\n"
154 " b loc_fc152966\n"
155 "loc_fc1527f0:\n"
156 " ldr r0, [r0, #0x10]\n" //case 1 normal shoot
157 //" bl sub_fc1dc8d2\n" //my need _my routinej
158 " bl sub_fc1dc8d2_my\n"
159 " b loc_fc152966\n"
160 "loc_fc1527f8:\n"
161 " movs r0, #1\n"
162 " bl sub_fc152ff4\n"
163 " b loc_fc152966\n"
164 "loc_fc152800:\n"
165 " bl sub_fc152a72\n"
166 " b loc_fc15280e\n"
167 "loc_fc152806:\n"
168 " ldr r0, [r0, #0xc]\n"
169 " uxtb r0, r0\n"
170 " bl sub_fc152ce2\n"
171 "loc_fc15280e:\n"
172 " str r6, [r4, #0x28]\n"
173 " b loc_fc152966\n"
174 "loc_fc152812:\n"
175 " bl sub_fc152ce8\n"
176 " b loc_fc152966\n"
177 "loc_fc152818:\n"
178 " bl sub_fc152ef0\n"
179 " b loc_fc15282a\n"
180 "loc_fc15281e:\n"
181 " ldr r0, [r0, #0x10]\n"
182 " bl sub_fc1dcb50\n"
183 " b loc_fc152966\n"
184 "loc_fc152826:\n"
185 " bl sub_fc152f7a\n"
186 "loc_fc15282a:\n"
187 " bl sub_fc150454\n"
188 " b loc_fc152966\n"
189 "loc_fc152830:\n"
190 " ldr r0, [r4, #0x54]\n"
191 " bl sub_fc153580\n"
192 " b loc_fc152966\n"
193 "loc_fc152838:\n"
194 " bl sub_fc15380c\n"
195 " b loc_fc152966\n"
196 ".ltorg\n"
197 /*
198 " movs r0, r0\n"
199 " stm r6!, {r2, r4, r5, r6}\n"
200 " movs r3, r0\n"
201 " stm r4!, {r3, r4, r5, r6}\n"
202 " movs r3, r0\n"
203 " rev r4, r5\n"
204 " movs r0, r0\n"
205 c674 0003
206 c478 0003
207 ba2c 0000
208 */
209 "loc_fc15284c:\n"
210 " ldr r0, [r0, #0xc]\n"
211 " bl sub_fc153858\n"
212 " b loc_fc152966\n"
213 "loc_fc152854:\n"
214 " bl sub_fc1539d2\n"
215 " b loc_fc152966\n"
216 "loc_fc15285a:\n"
217 " bl sub_fc153da0\n"
218 " b loc_fc152966\n"
219 "loc_fc152860:\n"
220 " bl sub_fc153e36\n"
221 " b loc_fc152966\n"
222 "loc_fc152866:\n"
223 " ldr r0, [r0, #0xc]\n"
224 " uxtb r0, r0\n"
225 " bl sub_fc152ce2\n"
226 " b loc_fc152966\n"
227 "loc_fc152870:\n"
228 " bl sub_fc1db418\n"
229 " b loc_fc152966\n"
230 "loc_fc152876:\n"
231 " bl sub_fc1db600\n"
232 " b loc_fc152966\n"
233 "loc_fc15287c:\n"
234 " bl sub_fc1db69c\n"
235 " b loc_fc152966\n"
236 "loc_fc152882:\n"
237 " bl sub_fc1db718\n"
238 " b loc_fc152966\n"
239 "loc_fc152888:\n"
240 " b loc_fc152958\n"
241 "loc_fc15288a:\n"
242 " movs r0, #0\n"
243 " b loc_fc1528ae\n"
244 "loc_fc15288e:\n"
245 " bl sub_fc1dbb04\n"
246 " b loc_fc152966\n"
247 "loc_fc152894:\n"
248 " bl sub_fc1dbb64\n"
249 " b loc_fc152966\n"
250 "loc_fc15289a:\n"
251 " bl sub_fc1dbb68\n"
252 " b loc_fc152966\n"
253 "loc_fc1528a0:\n"
254 " bl sub_fc1dbb78\n"
255 " b loc_fc152966\n"
256 "loc_fc1528a6:\n"
257 " bl sub_fc1dbbf0\n"
258 " b loc_fc152966\n"
259 "loc_fc1528ac:\n"
260 " movs r0, #1\n"
261 "loc_fc1528ae:\n"
262 " bl sub_fc1db9e4\n"
263 " b loc_fc152966\n"
264 "loc_fc1528b4:\n"
265 " bl sub_fc153102\n"
266 " b loc_fc152966\n"
267 "loc_fc1528ba:\n"
268 " movs r0, #0\n"
269 " b loc_fc1528c0\n"
270 "loc_fc1528be:\n"
271 " ldr r0, [r0, #0xc]\n"
272 "loc_fc1528c0:\n"
273 " bl sub_fc153164\n"
274 " b loc_fc152966\n"
275 "loc_fc1528c6:\n"
276 " bl sub_fc1db8d8\n"
277 " b loc_fc152966\n"
278 "loc_fc1528cc:\n"
279 " ldr r1, =0x0003c4da\n"
280 " movs r2, #2\n"
281 " movs r0, #0x72\n"
282 " bl _GetPropertyCase\n"
283 " lsls r0, r0, #0x1f\n"
284 " beq loc_fc1528e8\n"
285 " movw r2, #0x508\n"
286 " ldr r1, =0xfc152410\n" // *"SsShootTask.c"
287 " movs r0, #0\n"
288 " blx sub_fc2cf408\n" // j_DebugAssert
289 "loc_fc1528e8:\n"
290 " ldrh.w r0, [r4, #0x62]\n"
291 " cmp r0, #1\n"
292 " bne loc_fc152966\n"
293 " bl sub_fc1db8d2\n"
294 " b loc_fc152966\n"
295 "loc_fc1528f6:\n"
296 " bl sub_fc1db956\n"
297 " b loc_fc152966\n"
298 "loc_fc1528fc:\n"
299 " bl sub_fc1dd354\n"
300 " b loc_fc152966\n"
301 "loc_fc152902:\n"
302 " bl sub_fc150d7a\n"
303 " b loc_fc152966\n"
304 "loc_fc152908:\n"
305 " bl sub_fc2aa48e\n"
306 " b loc_fc152966\n"
307 "loc_fc15290e:\n"
308 " bl sub_fc2aa568\n"
309 " b loc_fc152966\n"
310 "loc_fc152914:\n"
311 " ldr r0, [r0, #0xc]\n"
312 " bl sub_fc1dbcc4\n"
313 " b loc_fc152966\n"
314 "loc_fc15291c:\n"
315 " bl sub_fc1dbd2c\n"
316 " b loc_fc152966\n"
317 "loc_fc152922:\n"
318 " bl sub_fc15893e\n"
319 " ldrh.w r0, [r4, #0x1a4]\n"
320 " cmp r0, #4\n"
321 " beq loc_fc152938\n"
322 " ldrh r0, [r4]\n"
323 " sub.w r1, r0, #0x4200\n"
324 " subs r1, #0x36\n"
325 " bne loc_fc152966\n"
326 "loc_fc152938:\n"
327 " bl sub_fc2aa568\n"
328 " bl sub_fc2aaa7e\n"
329 " bl sub_fc2aa8c6\n"
330 " b loc_fc152966\n"
331 "loc_fc152946:\n"
332 " movs r2, #0\n"
333 " movs r1, #0x11\n"
334 " b loc_fc152950\n"
335 "loc_fc15294c:\n"
336 " movs r2, #0\n"
337 " movs r1, #0x10\n"
338 "loc_fc152950:\n"
339 " movs r0, #0\n"
340 " bl sub_fc150f62\n"
341 " b loc_fc152966\n"
342 "loc_fc152958:\n" //near line 308 of g7x
343 " movw r2, #0x572\n"
344 " ldr r1, =0xfc152410\n" // *"SsShootTask.c"
345 " movs r0, #0\n"
346 " blx sub_fc2cf408\n" // j_DebugAssert
347 "loc_fc152966:\n"
348 // debug after message handled
349 "ldr r0, [sp]\n"
350 "ldr r0, [r0]\n"
351 "bl log_capt_seq2\n"
352 " BL capt_seq_hook_set_nr\n" // dark frame control
353 " ldr r0, [sp]\n"
354 " ldr r1, [r0, #4]\n"
355 " ldr r0, [r5, #4]\n"
356 " blx sub_fc2cf328\n" // j_SetEventFlag
357 " ldr r7, [sp]\n"
358 " ldr r0, [r7, #8]\n"
359 " cbnz r0, loc_fc152984\n"
360 " movw r2, #0x128\n"
361 " ldr r1, =0xfc152410\n" // *"SsShootTask.c"
362 " movs r0, #0\n"
363 " blx sub_fc2cf408\n" // j_DebugAssert
364 "loc_fc152984:\n"
365 " str r6, [r7, #8]\n"
366 " b loc_fc152766\n"
367 /*" ldr r2, =0x0003c2f0\n"
368 " movs r0, #0\n"
369 " push {r3, r4, r5, lr}\n"
370 " mov r1, r0\n"
371 */
372 ".ltorg\n"
373  );
374 }
int _captseq_raw_addr_init ( int  raw_index,
char **  ptr 
)
void _LogCameraEvent ( int  id,
const char *  fmt,
  ... 
)
void captseq_raw_addr_init_my ( int  raw_index,
char **  ptr 
)

Definiert in Zeile 43 der Datei capt_seq.c.

43  {
44  _captseq_raw_addr_init(raw_index,ptr);
45  current_raw_addr=*(ptr + 0x5c/4); // fc154c5a: 65e0 str r0, [r4, #92]
46 #ifdef CAPTSEQ_DEBUG_LOG
47  _LogCameraEvent(0x60,"rawinit i:0x%x p:0x%x v:0x%x",raw_index,ptr,current_raw_addr);
48 #endif
49 }
void clear_current_raw_addr ( void  )

Definiert in Zeile 51 der Datei capt_seq.c.

51  {
53 }
char* hook_raw_image_addr ( void  )

Definiert in Zeile 3 der Datei lib.c.

4 {
5  // Found 0x11B96B80 at ROM:FFC377A0
6  // Found 0x107D58E0 at ROM:FFC756CC
7  // 0x51C0 + 0x18 found at ROM:FFC4C504
8  return (char*) (*(int*)(0x51C0+0x18) ? 0x11B96B80 : 0x107D58E0);
9 }
void log_capt_seq ( int  m)

Definiert in Zeile 13 der Datei capt_seq.c.

14 {
15  _LogCameraEvent(0x60,"cs m:%d arb:%d rb:0x%08x i:%04d",
16  m,
17  active_raw_buffer,
20 }
void log_capt_seq2 ( int  m)

Definiert in Zeile 22 der Datei capt_seq.c.

23 {
24  _LogCameraEvent(0x60,"cs end m:%d arb:%d rb:0x%08x i:%04d",
25  m,
26  active_raw_buffer,
29 }
void log_capt_seq_override ( void  )

Definiert in Zeile 30 der Datei capt_seq.c.

31 {
32  _LogCameraEvent(0x60,"cs override arb:%d rb:0x%08x i:%04d",
33  active_raw_buffer,
36 }
void log_remote_hook ( void  )

Definiert in Zeile 899 der Datei capt_seq.c.

899  {
900  _LogCameraEvent(0x60,"remote hook");
901 }
void log_rh ( void  )

Definiert in Zeile 902 der Datei capt_seq.c.

902  {
903  _LogCameraEvent(0x60,"raw hook");
904 }

Variablen-Dokumentation

int active_raw_buffer
char* current_raw_addr

Definiert in Zeile 41 der Datei capt_seq.c.

long* nrflag = (long*)0x1e858
static

Definiert in Zeile 6 der Datei capt_seq.c.