CHDK_DE Vorschauversion  Trunk Rev. 5428
 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] ; ff95a838: (000004b3)
21  "LDR r7, =0x00002710\n" // was: [pc, #-2500] ; ff959b84: (00002710)
22  "LDR r4, =0x000063f8\n" // was: [pc, #-4008] ; ff9595a4: (000063f8)
23  "LDR r6, =0x0\n" // was: "mov ..., #0"
24  "LDR r5, =0x1\n" // was: "mov ..., #1"
25 "loc_FF95A550:\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_FF95A620\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_FF95A620\n"
39  "B loc_FF95A5D4\n" // 0 jump table start
40  "B loc_FF95A5F4\n"
41  "B loc_FF95A604\n"
42  "B loc_FF95A60C\n"
43  "B loc_FF95A5DC\n"
44  "B loc_FF95A614\n"
45  "B loc_FF95A5E4\n"
46  "B loc_FF95A620\n"
47  "B loc_FF95A61C\n"
48  "B loc_FF95A5AC\n" // 9
49 "loc_FF95A5AC:\n" // jump table entry 9
50  "LDR r0, =0xFF95A24C\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 r0, =0xFF959854\n" // was: [pc, #-2596] ; ff959ba4: (0009668c)
60  "LDR r2, =0xFF959770\n" // was: [pc, #640] ; ff95a840: (ff959854)
61  "LDR r1, =0x0009668c\n" // was: [pc, #632] ; ff95a83c: (ff959770)
62  "STR r6, [r4, #0x24]\n" // 0x24
63  "BL sub_ff85021c\n"
64  "STR r5, [r4, #56]\n" // 0x38
65  "B loc_FF95A620\n"
66 "loc_FF95A5D4:\n" // jump table entry 0
67  "BL unlock_optical_zoom\n" // added (disabled in camera.h, crashes)
68  "BL sub_FF95A354\n"
69  "B loc_FF95A620\n"
70 "loc_FF95A5DC:\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_FF959ECC\n"
77  //"BL sub_ff959f88_my\n"
78  "B loc_FF95A620\n"
79 "loc_FF95A5E4:\n" // jump table entry 6
80  "LDR r1, [r0, #24]\n"
81  "LDR r0, [r0, #4]\n"
82  "BL sub_FFA8CB84\n"
83  "B loc_FF95A620\n"
84 "loc_FF95A5F4:\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_FF95A620\n"
89 "loc_FF95A604:\n" // jump table entry 2
90  "BL sub_FF959BC8\n"
91  "B loc_FF95A620\n"
92 "loc_FF95A60C:\n" // jump table entry 3
93  "BL sub_FF9598A0\n"
94  "B loc_FF95A620\n"
95 "loc_FF95A614:\n" // jump table entry 5
96  "BL sub_FF9596FC\n"
97  "B loc_FF95A620\n"
98 "loc_FF95A61C:\n" // jump table entry 8
99  "BL sub_FF95A788\n"
100 "loc_FF95A620:\n" // jump table entry 7, default
101  "LDR r1, [sp, #4]\n"
102  "LDR r3, =0xFF959590\n" // was [pc, #-2684] ; ff959bb0: (ff959590) **"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_FF95A550\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 }