source: trunk/platform/g12/sub/100c/movie_rec.c @ 1109

Revision 1109, 5.0 KB checked in by reyalP, 2 years ago (diff)

G12 & SX30 that reduces the size of the 'movie_rec.c' code by moving the quality override code to the main loop - from philmoz in http://chdk.setepontos.com/index.php?topic=650.msg63486#msg63486

  • Property svn:eol-style set to native
Line 
1#include "conf.h"
2
3void change_video_tables(int a, int b){
4}
5
6void  set_quality(int *x){ // -17 highest; +12 lowest
7 if (conf.video_mode) *x=12-((conf.video_quality-1)*(12+17)/(99-1));
8}
9
10// @ FF987088
11void __attribute__((naked,noinline)) movie_record_task(){
12
13 asm volatile(
14"                STMFD   SP!, {R2-R10,LR} \n"
15"                LDR     R9, =0x5EE \n"
16"                LDR     R8, =0x2710 \n"
17"                LDR     R4, =0x7290 \n"
18"                MOV     R7, #1 \n"
19"                LDR     R6, =0xFF986D90 \n"
20"                MOV     R5, #0 \n"
21
22"loc_FF9870A4: \n"
23"                LDR     R0, [R4,#0x24] \n"
24"                MOV     R2, #0 \n"
25"                ADD     R1, SP, #4 \n"
26"                BL      sub_FF83A460 \n"
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_FF9871BC \n"
34"                LDR     R0, [SP,#4] \n"
35"                LDR     R1, [R0] \n"
36"                SUB     R1, R1, #2 \n"
37"                CMP     R1, #0xA \n"
38"                ADDLS   PC, PC, R1,LSL#2 \n"
39
40"                B       loc_FF9871BC \n"
41"loc_FF9870E8: \n"
42"                B       loc_FF987170 \n"
43"loc_FF9870EC: \n"
44"                B       loc_FF987190 \n"
45"loc_FF9870F0: \n"
46"                B       loc_FF9871A0 \n"
47"loc_FF9870F4: \n"
48"                B       loc_FF9871A8 \n"
49"loc_FF9870F8: \n"
50"                B       loc_FF987178 \n"
51"loc_FF9870FC: \n"
52"                B       loc_FF9871B0 \n"
53"loc_FF987100: \n"
54"                B       loc_FF987180 \n"
55"loc_FF987104: \n"
56"                B       loc_FF9871BC \n"
57"loc_FF987108: \n"
58"                B       loc_FF9871B8 \n"
59"loc_FF98710C: \n"
60"                B       loc_FF987140 \n"
61"loc_FF987110: \n"
62"                B       loc_FF987114 \n"
63
64"loc_FF987114: \n"
65//"; jumptable entry 10 \n"
66"                STR     R5, [R4,#0x40] \n"
67"                STR     R5, [R4,#0x30] \n"
68"                STR     R5, [R4,#0x34] \n"
69"                STRH    R5, [R4,#6] \n"
70"                STR     R6, [R4,#0xB4] \n"
71"                LDR     R0, [R4,#0xC] \n"
72"                ADD     R0, R0, #1 \n"
73"                STR     R0, [R4,#0xC] \n"
74"                MOV     R0, #6 \n"
75"                STR     R0, [R4,#0x44] \n"
76"                B       loc_FF98715C \n"
77
78"loc_FF987140: \n"
79//"; jumptable entry 9 \n"
80"                STR     R5, [R4,#0x40] \n"
81"                STR     R5, [R4,#0x30] \n"
82"                STR     R6, [R4,#0xB4] \n"
83"                LDR     R0, [R4,#0xC] \n"
84"                ADD     R0, R0, #1 \n"
85"                STR     R0, [R4,#0xC] \n"
86"                STR     R7, [R4,#0x44] \n"
87
88"loc_FF98715C: \n"
89"                LDR     R2, =0xFF985FA4 \n"
90"                LDR     R1, =0xB3E0C \n"
91"                LDR     R0, =0xFF9860A0 \n"
92"                BL      sub_FF8532D0 \n"
93"                B       loc_FF9871BC \n"
94
95"loc_FF987170: \n"
96//"; jumptable entry 0            ; LOCATION: MovieRecorder.c:0 \n"
97
98"               BL      unlock_optical_zoom\n"                  // added to unlock the zoom
99
100"                BL      sub_FF986EA0 \n"
101"                B       loc_FF9871BC \n"
102
103"loc_FF987178: \n"
104//"; jumptable entry 4            ; LOCATION: MovieRecorder.c:2032 \n"
105"                BL      sub_FF9867F8 \n"
106
107                "LDR     R0, =0x7318-4\n" // <----   -4 //+ set in sub_FF9867F8 above
108                "BL      set_quality\n"                 //+ reset here to user value
109
110"                B       loc_FF9871BC \n"
111
112"loc_FF987180: \n"
113//"; jumptable entry 6 \n"
114"                               LDR             R1, [R0,#0x18] \n"
115"                               LDR             R0, [R0,#4] \n"
116"                BL      sub_FFAFFF84 \n"
117"                B       loc_FF9871BC \n"
118
119"loc_FF987190: \n"
120//"; jumptable entry 1 \n"
121"                LDR     R0, [R4,#0x44] \n"
122"                CMP     R0, #5 \n"
123"                STRNE   R7, [R4,#0x34] \n"
124"                B       loc_FF9871BC \n"
125
126"loc_FF9871A0: \n"
127//"; jumptable entry 2            ; LOCATION: MovieRecorder.c:1000 \n"
128"                BL      sub_FF986440 \n"
129"                B       loc_FF9871BC \n"
130
131"loc_FF9871A8: \n"
132//"; jumptable entry 3            ; LOCATION: MovieRecorder.c:0 \n"
133"                BL      sub_FF9860EC \n"
134"                B       loc_FF9871BC \n"
135
136"loc_FF9871B0: \n"
137//"; jumptable entry 5            ; LOCATION: MovieRecorder.c:100 \n"
138"                BL      sub_FF985F30 \n"
139"                B       loc_FF9871BC \n"
140
141"loc_FF9871B8: \n"
142//"; jumptable entry 8            ; LOCATION: MovieRecorder.c:0 \n"
143"                BL      sub_FF9875E4 \n"
144
145"loc_FF9871BC: \n"
146//"; jumptable default entry \n"
147//"; jumptable entry 7 \n"
148"                LDR     R1, [SP,#4] \n"
149"                STR     R5, [R1] \n"
150"                LDR     R3, =0xFF985D8C \n" //;aMovierecorder_
151"                MOV     R2, R8 \n"
152"                STR     R9, [SP] \n"
153"                LDR     R0, [R4,#0x28] \n"
154"                BL      sub_FF83ADB4 \n"
155"                B       loc_FF9870A4 \n"
156 );
157}
158
Note: See TracBrowser for help on using the repository browser.