CHDK_DE Vorschauversion  Trunk Rev. 6014
 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 (__attribute__((unused)) int a, __attribute__((unused)) int b)
 
void set_quality (int *x)
 
void __attribute__ ((naked, noinline))
 

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

!!

Definiert in Zeile 11 der Datei movie_rec.c.

11  {
12 asm volatile (
13  "STMFD SP!, {R2-R10,LR}\n"
14  "LDR R6, =0xFF17B968\n"
15  "LDR R7, =0xFF17C6F0\n" //This function was used to take values for set_quality -->
16  "LDR R4, =0x6DB8\n"
17  "LDR R9, =0x69B\n"
18  "LDR R10, =0x2710\n"
19  "MOV R8, #1\n"
20  "MOV R5, #0\n"
21 "loc_FF17CD1C:\n"
22  "LDR R0, [R4, #0x24]\n"
23  "MOV R2, #0\n"
24  "ADD R1, SP, #4\n"
25  "BL sub_00477218\n"
26  "LDR R0, [R4, #0x2C]\n"
27  "CMP R0, #0\n"
28  "LDRNE R0, [R4, #0xC]\n"
29  "CMPNE R0, #2\n"
30  "LDRNE R0, [R4, #0x44]\n"
31  "CMPNE R0, #6\n"
32  "BNE loc_FF17CE58\n"
33  "LDR R0, [SP, #4]\n"
34  "LDR R1, [R0]\n"
35  "SUB R1, R1, #2\n"
36  "CMP R1, #0xD\n"
37  "ADDCC PC, PC, R1, LSL #2\n"
38  "B loc_FF17CE58\n"
39  "B loc_FF17CDF8\n" //(01)
40  "B loc_FF17CE1C\n" //(02)
41  "B loc_FF17CE2C\n" //(03)
42  "B loc_FF17CE34\n" //(04)
43  "B loc_FF17CE3C\n" //(05)
44  "B loc_FF17CE44\n" //(06)
45  "B loc_FF17CE00\n" //(07)
46  "B loc_FF17CE4C\n" //(08)
47  "B loc_FF17CE0C\n" //(09)
48  "B loc_FF17CE58\n" //(10)
49  "B loc_FF17CE54\n" //(11)
50  "B loc_FF17CDC4\n" //(12)
51  "B loc_FF17CD94\n" //(13)
52 "loc_FF17CD94:\n" //Jump Table entry 13
53  "STR R5, [R4, #0x40]\n"
54  "STR R5, [R4, #0x30]\n"
55  "STR R5, [R4, #0x34]\n"
56  "STRH R5, [R4, #6]\n"
57  "STR R6, [R4, #0xD8]\n"
58  "STR R7, [R4, #0xF4]\n"
59  "LDR R0, [R4, #0xC]\n"
60  "ADD R0, R0, #1\n"
61  "STR R0, [R4, #0xC]\n"
62  "MOV R0, #6\n"
63  "STR R0, [R4, #0x44]\n"
64  "B loc_FF17CDE4\n"
65 "loc_FF17CDC4:\n" //Jump Table entry 12
66  "STR R5, [R4, #0x40]\n"
67  "STR R5, [R4, #0x30]\n"
68  "STR R6, [R4, #0xD8]\n"
69  "STR R7, [R4, #0xF4]\n"
70  "LDR R0, [R4, #0xC]\n"
71  "ADD R0, R0, #1\n"
72  "STR R0, [R4, #0xC]\n"
73  "STR R8, [R4, #0x44]\n"
74 "loc_FF17CDE4:\n"
75  "LDR R2, =0xFF17AE60\n"
76  "LDR R1, =0xB7A5C\n"
77  "LDR R0, =0xFF17AF74\n"
78  "BL sub_FF03BB2C\n"
79  "B loc_FF17CE58\n"
80 "loc_FF17CDF8:\n" //Jump Table entry 01
81  "BL unlock_optical_zoom \n" //added
82 //begin patch
83  "BL sub_FF17C2B8\n" //original
84 // "BL movie_time\n" //patch
85 // "label_A:\n"
86 //end patchd
87 
88  "B loc_FF17CE58\n"
89 "loc_FF17CE00:\n"
90  "LDR R1, [R4, #0xF4]\n"
91  "BLX R1\n"
92 //begin patch
93  "LDR R0, =0x6E3C \n" // added, 0x6E40-0x4 taken near to "loc_FF17CBE4:" see commented function below.
94  "BL set_quality \n" // added
95 //end patch
96  "B loc_FF17CE58\n"
97 "loc_FF17CE0C:\n" //Jump Table entry 09
98  "LDR R1, [R0, #0x18]\n"
99  "LDR R0, [R0, #4]\n"
100  "BL sub_FF2E284C\n"
101  "B loc_FF17CE58\n"
102 "loc_FF17CE1C:\n" //Jump Table entry 02
103  "LDR R0, [R4, #0x44]\n"
104  "CMP R0, #5\n"
105  "STRNE R8, [R4, #0x34]\n"
106  "B loc_FF17CE58\n"
107 "loc_FF17CE2C:\n" //Jump Table entry 03
108  "BL sub_FF17B5DC\n"
109  "B loc_FF17CE58\n"
110 "loc_FF17CE34:\n" //Jump Table entry 04
111  "BL sub_FF17B2C0\n"
112  "B loc_FF17CE58\n"
113 "loc_FF17CE3C:\n" //Jump Table entry 05
114  "BL sub_FF17AFD8\n"
115  "B loc_FF17CE58\n"
116 "loc_FF17CE44:\n" //Jump Table entry 06
117  "BL sub_FF17AB88\n"
118  "B loc_FF17CE58\n"
119 "loc_FF17CE4C:\n" //Jump Table entry 08
120  "BL sub_FF17AB08\n"
121  "B loc_FF17CE58\n"
122 "loc_FF17CE54:\n" //Jump Table entry 11
123  "BL sub_FF17D42C\n"
124 "loc_FF17CE58:\n"
125  "LDR R1, [SP, #4]\n"
126  "LDR R3, =0xFF17A7A0\n"
127  "STR R5, [R1]\n"
128  "STR R9, [SP]\n"
129  "LDR R0, [R4, #0x28]\n"
130  "MOV R2, R10\n"
131  "BL sub_00477B90\n"
132  "B loc_FF17CD1C\n"
133  );
134 }
void change_video_tables ( __attribute__((unused)) int  a,
__attribute__((unused)) int  b 
)

Definiert in Zeile 3 der Datei movie_rec.c.

3 {}
void set_quality ( int *  x)

Definiert in Zeile 5 der Datei movie_rec.c.

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