CHDK_DE Vorschauversion  Trunk Rev. 5426
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
movie_rec.c-Dateireferenz
#include "conf.h"
+ Include-Abhängigkeitsdiagramm für movie_rec.c:

gehe zum Quellcode dieser Datei

Funktionen

void change_video_tables (int a, int b)
 
void set_quality (int *x)
 
void __attribute__ ((naked, noinline))
 *-------------------------------------------------------------------— Mehr ...
 

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

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

!!

Definiert in Zeile 17 der Datei movie_rec.c.

17  { // was FF96BD30
18  asm volatile (
19  "PUSH {r2, r3, r4, r5, r6, r7, r8, lr}\n"
20  "LDR r8, =0x000004b3\n" // was: "[pc, #756] ; ff95a8f4"
21  "LDR r7, =0x00002710\n" // was: "[pc, #-2512] ; ff959c34"
22  "LDR r4, =0x000063f8\n" // was: "[pc, #-4020] ; ff959654"
23  "LDR r6, =0x0\n" // was: "mov ..., #0"
24  "LDR r5, =0x1\n" // was: "mov ..., #1"
25 "loc_ff95a60c:\n"
26  "LDR r0, [r4, #24]\n"
27  "LDR r2, =0x0\n" // was: "mov ..., #0"
28  "ADD r1, sp, #4\n" // 0x4
29  "BL sub_ff8396e4\n"
30  "LDR r0, [r4, #32]\n"
31  "CMP r0, #0\n" // 0x0
32  "BNE loc_ff95a6dc\n"
33  "LDR r0, [sp, #4]\n"
34  "LDR r1, [r0]\n"
35  "SUB r1, r1, #2\n" // 0x2
36  "CMP r1, #9\n" // 0x9
37  "ADDLS pc, pc, r1, lsl #2\n"
38  "B loc_ff95a6dc\n"
39  "B loc_ff95a690\n" // 0 jump table start
40  "B loc_ff95a6b0\n"
41  "B loc_ff95a6c0\n"
42  "B loc_ff95a6c8\n"
43  "B loc_ff95a698\n"
44  "B loc_ff95a6d0\n"
45  "B loc_ff95a6a0\n"
46  "B loc_ff95a6dc\n"
47  "B loc_ff95a6d8\n"
48  "B loc_ff95a668\n" // 9
49 "loc_ff95a668:\n" // jump table entry 9
50  "LDR r0, =0xff95a308\n" // was: "sub r0, pc, #872"
51  "STR r6, [r4, #52]\n"
52  "STR r0, [r4, #164]\n"
53 
54  // Ixus300 has this, referenced in case 4: (what does it do?)
55  //"ADR R0, =0xFF96BA00\n"
56  //"LDR R0, =sub_ff959f88_my\n" // +
57  //"STR R0, [R4,#0xAC]\n"
58 
59  "LDR r2, =0xff959820\n" // was: "[pc, #636] ; ff95a8f8"
60  "LDR r1, =0x0009668c\n" // was: "[pc, #-2604] ; ff959c54"
61  "LDR r0, =0xff959904\n" // was: "sub r0, pc, #3456"
62  "STR r6, [r4, #36]\n" // 0x24
63  "BL sub_ff85021c\n"
64  "STR r5, [r4, #56]\n" // 0x38
65  "B loc_ff95a6dc\n"
66 "loc_ff95a690:\n" // jump table entry 0
67  "BL unlock_optical_zoom\n" // added (disabled in camera.h, crashes)
68  "BL sub_ff95a410\n"
69  "B loc_ff95a6dc\n"
70 "loc_ff95a698:\n" // jump table entry 4
71 
72  // Ixus300 has the next 2 lines instead of the following one: (what does it do?)
73  //"LDR R1, [R4,#0xAC]\n"
74  //"BLX R1\n"
75 
76  "BL sub_ff959f88\n"
77  //"BL sub_ff959f88_my\n"
78  "B loc_ff95a6dc\n"
79 "loc_ff95a6a0:\n" // jump table entry 6
80  "LDR r1, [r0, #24]\n"
81  "LDR r0, [r0, #4]\n"
82  "BL sub_ffa8cc28\n"
83  "B loc_ff95a6dc\n"
84 "loc_ff95a6b0:\n" // jump table entry 1
85  "LDR r0, [r4, #56]\n"
86  "CMP r0, #5\n" // 0x5
87  "STRNE r5, [r4, #40]\n"
88  "B loc_ff95a6dc\n"
89 "loc_ff95a6c0:\n" // jump table entry 2
90  "BL sub_ff959c84\n"
91  "B loc_ff95a6dc\n"
92 "loc_ff95a6c8:\n" // jump table entry 3
93  "BL sub_ff959950\n"
94  "B loc_ff95a6dc\n"
95 "loc_ff95a6d0:\n" // jump table entry 5
96  "BL sub_ff9597ac\n"
97  "B loc_ff95a6dc\n"
98 "loc_ff95a6d8:\n" // jump table entry 8
99  "BL sub_ff95a844\n"
100 "loc_ff95a6dc:\n" // jump table entry 7, default
101  "LDR r1, [sp, #4]\n"
102  "LDR r3, =0xff959640\n" // was: "[pc, #-2696] ; ff959c60" **"MovieRecorder.c"
103  "STR r6, [r1]\n"
104  "STR r8, [sp]\n"
105  "LDR r0, [r4, #28]\n"
106  "MOV r2, r7\n"
107  "BL sub_ff83a038\n"
108  "B loc_ff95a60c\n"
109  );
110 }
void change_video_tables ( int  a,
int  b 
)

Definiert in Zeile 6 der Datei movie_rec.c.

6  {
7  //int i;
8  //for (i=0;i<24;i++) table[i]=(def_table[i]*a)/b;
9 }
void set_quality ( int *  x)

Definiert in Zeile 12 der Datei movie_rec.c.

12  { // -17 highest; +12 lowest
13  if (conf.video_mode) *x=12-((conf.video_quality-1)*(12+17)/(99-1));
14 }