CHDK_DE Vorschauversion  Trunk Rev. 5272
 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))
 

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

Definiert in Zeile 12 der Datei movie_rec.c.

12  {
13 asm volatile (
14  "STMFD SP!, {R2-R10,LR} \n"
15  "LDR R6, =0xFF95A884 \n"
16  "LDR R7, =0xFF95ADB0 \n" //This function was used to take values for set_quality -->
17  "LDR R4, =0x62F8 \n"
18  "LDR R9, =0x69B \n"
19  "LDR R10, =0x2710 \n"
20  "MOV R8, #1 \n"
21  "MOV R5, #0 \n"
22 "loc_FF95B40C:\n"
23  "LDR R0, [R4, #0x24] \n"
24  "MOV R2, #0 \n"
25  "ADD R1, SP, #4 \n"
26  "BL sub_003F7218 \n" //RAM
27  "LDR R0, [R4, #0x2C] \n"
28  "CMP R0, #0 \n"
29  "LDRNE R0, [R4, #0xC] \n"
30  "CMPNE R0, #2 \n"
31  "LDRNE R0, [R4, #0x44] \n"
32  "CMPNE R0, #6 \n"
33  "BNE loc_FF95B530 \n"
34  "LDR R0, [SP, #4] \n"
35  "LDR R1, [R0] \n"
36  "SUB R1, R1, #2 \n"
37  "CMP R1, #0xB \n"
38  "ADDCC PC, PC, R1, LSL #2 \n"
39  "B loc_FF95B530 \n"
40  "B loc_FF95B4E0 \n" //(01)
41  "B loc_FF95B504 \n" //(02)
42  "B loc_FF95B514 \n" //(03)
43  "B loc_FF95B51C \n" //(04)
44  "B loc_FF95B4E8 \n" //(05)
45  "B loc_FF95B524 \n" //(06)
46  "B loc_FF95B4F4 \n" //(07)
47  "B loc_FF95B530 \n" //(08)
48  "B loc_FF95B52C \n" //(09)
49  "B loc_FF95B4AC \n" //(10)
50  "B loc_FF95B47C \n" //(11)
51 "loc_FF95B47C:\n" //Jump Table entry 11
52  "STR R5, [R4, #0x40] \n"
53  "STR R5, [R4, #0x30] \n"
54  "STR R5, [R4, #0x34] \n"
55  "STRH R5, [R4, #6] \n"
56  "STR R6, [R4, #0xB4] \n"
57  "STR R7, [R4, #0xD0] \n"
58  "LDR R0, [R4, #0xC] \n"
59  "ADD R0, R0, #1 \n"
60  "STR R0, [R4, #0xC] \n"
61  "MOV R0, #6 \n"
62  "STR R0, [R4, #0x44] \n"
63  "B loc_FF95B4CC \n"
64 "loc_FF95B4AC: \n" //Jump Table entry 10
65  "STR R5, [R4, #0x40] \n"
66  "STR R5, [R4, #0x30] \n"
67  "STR R6, [R4, #0xB4] \n"
68  "STR R7, [R4, #0xD0] \n"
69  "LDR R0, [R4, #0xC] \n"
70  "ADD R0, R0, #1 \n"
71  "STR R0, [R4, #0xC] \n"
72  "STR R8, [R4, #0x44] \n"
73 "loc_FF95B4CC:\n"
74  "LDR R2, =0xFF959FE4 \n"
75  "LDR R1, =0xACC18 \n"
76  "LDR R0, =0xFF95A0F8 \n"
77  "BL sub_FF84A34C \n"
78  "B loc_FF95B530 \n"
79 "loc_FF95B4E0: \n" //Jump Table entry 01
80  "BL unlock_optical_zoom \n" //added
81  "BL sub_FF95A9E4 \n"
82  "B loc_FF95B530 \n"
83 "loc_FF95B4E8: \n" //Jump Table entry 05
84  "LDR R1, [R4, #0xD0] \n"
85  "BLX R1 \n"
86 //begin patch
87  "LDR R0, =0x637C \n" // added, 0x6380-0x4 taken from "loc_FF95B2D4:" see commented function below.
88  "BL set_quality \n" // added
89  "BL mute_on_zoom\n" // added
90 //end patch
91  "B loc_FF95B530 \n"
92 "loc_FF95B4F4: \n" //Jump Table entry 07
93  "LDR R1, [R0, #0x18] \n"
94  "LDR R0, [R0, #4] \n"
95  "BL sub_FFA6A7F0 \n"
96  "B loc_FF95B530 \n"
97 "loc_FF95B504: \n" //Jump Table entry 02
98  "LDR R0, [R4, #0x44] \n"
99  "CMP R0, #5 \n"
100  "STRNE R8, [R4, #0x34] \n"
101  "B loc_FF95B530 \n"
102 "loc_FF95B514: \n" //Jump Table entry 03
103  "BL sub_FF95A4E4 \n"
104  "B loc_FF95B530 \n"
105 "loc_FF95B51C: \n" //Jump Table entry 04
106  "BL sub_FF95A144 \n"
107  "B loc_FF95B530 \n"
108 "loc_FF95B524: \n" //Jump Table entry 06
109  "BL sub_FF959F70 \n"
110  "B loc_FF95B530 \n"
111 "loc_FF95B52C: \n" //Jump Table entry 09
112  "BL sub_FF95BA08 \n"
113 "loc_FF95B530: \n"
114  "LDR R1, [SP, #4] \n"
115  "LDR R3, =0xFF959CD0 \n"
116  "STR R5, [R1] \n"
117  "STR R9, [SP] \n"
118  "LDR R0, [R4, #0x28] \n"
119  "MOV R2, R10 \n"
120  "BL sub_003F7B90 \n" //RAM
121  "B loc_FF95B40C \n"
122  );
123 }
void change_video_tables ( int  a,
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)
7  *x=12-((conf.video_quality-1)*(12+17)/(99-1));
8 }