CHDK_DE Vorschauversion  Trunk Rev. 6014
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
lib.c-Dateireferenz
#include "platform.h"
#include "platform_palette.h"
#include "lolevel.h"
+ Include-Abhängigkeitsdiagramm für lib.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define LED_PR   0xC022C200
 

Funktionen

void vid_bitmap_refresh ()
 
void shutdown ()
 
void debug_led (int state)
 
void camera_set_led (int led, int state, __attribute__((unused)) int bright)
 
int get_flash_params_count (void)
 
void JogDial_CW (void)
 
void JogDial_CCW (void)
 
void * vid_get_viewport_fb ()
 
void * vid_get_viewport_live_fb ()
 
void * vid_get_bitmap_fb ()
 
int vid_get_viewport_yscale ()
 
int vid_get_viewport_width ()
 
int vid_get_viewport_xoffset ()
 
int vid_get_viewport_display_xoffset ()
 
long vid_get_viewport_height ()
 
static int vp_yoffset (int stitch)
 
int vid_get_viewport_yoffset ()
 
int vid_get_viewport_display_yoffset ()
 
int vid_get_viewport_display_xoffset_proper ()
 
int vid_get_viewport_display_yoffset_proper ()
 
int vid_get_viewport_height_proper ()
 
int vid_get_viewport_fullscreen_height ()
 
int vid_get_palette_type ()
 
int vid_get_palette_size ()
 
void * vid_get_bitmap_active_buffer ()
 
void * vid_get_bitmap_active_palette ()
 
void load_chdk_palette ()
 

Variablen

char active_viewport_buffer
 
void * viewport_buffers []
 
int active_bitmap_buffer
 
char * bitmap_buffer []
 
static long vp_xo [5] = { 0, 0, 0, 44, 72 }
 

Makro-Dokumentation

#define LED_PR   0xC022C200

Definiert in Zeile 33 der Datei lib.c.

Dokumentation der Funktionen

void camera_set_led ( int  led,
int  state,
__attribute__((unused)) int  bright 
)

Definiert in Zeile 49 der Datei lib.c.

49  {
50  static char led_table[2]={0,5};
51  _LEDDrive(led_table[led%sizeof(led_table)], state<=1 ? !state : state);
52 }
void debug_led ( int  state)

Definiert in Zeile 35 der Datei lib.c.

36 {
37  // using power LED, which defaults to on
38  // for debugging turn LED off if state is 1 and on for state = 0
39  // leaves LED on at end of debugging
40  volatile long *p = (void*)LED_PR;
41  *p = (*p & 0xFFFFFFCF) | ((state) ? 0x00 : 0x20);
42 }
int get_flash_params_count ( void  )

Definiert in Zeile 54 der Datei lib.c.

54 { return 0xa6; } // Found @0xff205ce4
void JogDial_CCW ( void  )

Definiert in Zeile 60 der Datei lib.c.

60  {
61  _PostLogicalEventForNotPowerType(0x873, 1); // RotateJogDialLeft (in table @ ff62f358, fw 1.00b)
62 }
void JogDial_CW ( void  )

Definiert in Zeile 56 der Datei lib.c.

56  {
57  _PostLogicalEventForNotPowerType(0x872, 1); // RotateJogDialRight (in table @ ff62f34c, fw 1.00b)
58 }
void load_chdk_palette ( )

Definiert in Zeile 223 der Datei lib.c.

224 {
225  extern int active_palette_buffer;
226  // Only load for the standard record and playback palettes
227  if ((active_palette_buffer == 0) || (active_palette_buffer == 5) || (active_palette_buffer == 6))
228  {
229  int *pal = (int*)vid_get_bitmap_active_palette();
230  if (pal && pal[CHDK_COLOR_BASE+0] != 0x3F3ADF62)
231  {
232  pal[CHDK_COLOR_BASE+0] = 0x3F3ADF62; // Red
233  pal[CHDK_COLOR_BASE+1] = 0x3F26EA40; // Dark Red
234  pal[CHDK_COLOR_BASE+2] = 0x3F4CD57F; // Light Red
235  pal[CHDK_COLOR_BASE+3] = 0x3F73BFAE; // Green
236  pal[CHDK_COLOR_BASE+4] = 0x3F4BD6CA; // Dark Green
237  pal[CHDK_COLOR_BASE+5] = 0x3F95AB95; // Light Green
238  pal[CHDK_COLOR_BASE+6] = 0x3F4766F0; // Blue
239  pal[CHDK_COLOR_BASE+7] = 0x3F1250F3; // Dark Blue
240  pal[CHDK_COLOR_BASE+8] = 0x3F7F408F; // Cyan
241  pal[CHDK_COLOR_BASE+9] = 0x3F512D5B; // Magenta
242  pal[CHDK_COLOR_BASE+10] = 0x3FA9A917; // Yellow
243  pal[CHDK_COLOR_BASE+11] = 0x3F819137; // Dark Yellow
244  pal[CHDK_COLOR_BASE+12] = 0x3FDED115; // Light Yellow
245  pal[CHDK_COLOR_BASE+13] = 0x1F0A0000; // Transparent dark grey
246 
247  extern char palette_control;
248  palette_control = 1;
250  }
251  }
252 }
void shutdown ( )

Definiert in Zeile 17 der Datei lib.c.

18 {
19  volatile long *p = (void*)0xC022001C;
20 
21  asm(
22  "MRS R1, CPSR\n"
23  "AND R0, R1, #0x80\n"
24  "ORR R1, R1, #0x80\n"
25  "MSR CPSR_cf, R1\n"
26  :::"r1","r0");
27 
28  *p = 0x44; // power off.
29 
30  while(1);
31 }
void vid_bitmap_refresh ( )

Definiert in Zeile 5 der Datei lib.c.

6 {
7  extern int full_screen_refresh;
8  extern void _ScreenUnlock();
9  extern void _ScreenLock();
10 
11  full_screen_refresh |= 3;
12  _ScreenLock();
13  _ScreenUnlock();
14 }
void* vid_get_bitmap_active_buffer ( )

Definiert in Zeile 207 der Datei lib.c.

208 {
210 }
void* vid_get_bitmap_active_palette ( )

Definiert in Zeile 212 der Datei lib.c.

213 {
214  extern int active_palette_buffer;
215  extern char* palette_buffer[];
216  void* p = palette_buffer[active_palette_buffer];
217  // Don't add offset if value is 0
218  if (p) p += 4;
219  return p;
220 }
void* vid_get_bitmap_fb ( )

OSD screen

Definiert in Zeile 91 der Datei lib.c.

91 { return (void*)0x406c5000; } // Found @0xff056b6c
int vid_get_palette_size ( )

Definiert in Zeile 205 der Datei lib.c.

205 { return 256 * 4; }
int vid_get_palette_type ( )

Definiert in Zeile 204 der Datei lib.c.

204 { return 5; }
int vid_get_viewport_display_xoffset ( )

Definiert in Zeile 129 der Datei lib.c.

130 {
131  if ((mode_get() & MODE_MASK) == MODE_PLAY)
132  {
133  return 0;
134  }
135  else if (shooting_get_prop(PROPCASE_SHOOTING_MODE) == 16909) // Stitch mode
136  {
137  if (shooting_get_prop(PROPCASE_STITCH_DIRECTION) == 0) // Direction check
138  if (shooting_get_prop(PROPCASE_STITCH_SEQUENCE) == 0) // Shot already taken?
139  return 40;
140  else
141  return 140;
142  else
143  if (shooting_get_prop(PROPCASE_STITCH_SEQUENCE) == 0) // Shot already taken?
144  return 140;
145  else
146  return 40;
147  }
148  else
149  {
151  }
152 }
int vid_get_viewport_display_xoffset_proper ( )

Definiert in Zeile 200 der Datei lib.c.

200 { return vid_get_viewport_display_xoffset() * 2; }
int vid_get_viewport_display_yoffset ( )

Definiert in Zeile 194 der Datei lib.c.

195 {
196  return vp_yoffset(72);
197 }
int vid_get_viewport_display_yoffset_proper ( )

Definiert in Zeile 201 der Datei lib.c.

201 { return vid_get_viewport_display_yoffset() * 2; }
void* vid_get_viewport_fb ( )

IMG viewport in 'rec' mode

Definiert in Zeile 71 der Datei lib.c.

72 {
73  // Return first viewport buffer - for case when vid_get_viewport_live_fb not defined
74  return viewport_buffers[0];
75 }
int vid_get_viewport_fullscreen_height ( )

Definiert in Zeile 203 der Datei lib.c.

203 { return 480; }
long vid_get_viewport_height ( )

Definiert in Zeile 154 der Datei lib.c.

155 {
156  if ((mode_get() & MODE_MASK) == MODE_PLAY)
157  {
158  return 240;
159  }
160  extern int _GetVRAMVPixelsSize();
161  return _GetVRAMVPixelsSize() >> 1;
162 }
int vid_get_viewport_height_proper ( )

Definiert in Zeile 202 der Datei lib.c.

202 { return vid_get_viewport_height() * 2; }
void* vid_get_viewport_live_fb ( )

Definiert in Zeile 77 der Datei lib.c.

78 {
80  return viewport_buffers[0]; // Video only seems to use the first viewport buffer.
81 
82  // Hopefully return the most recently used viewport buffer so that motion detect, histogram, zebra and edge overly are using current image data
84 }
int vid_get_viewport_width ( )

Definiert in Zeile 99 der Datei lib.c.

100 {
101  if ((mode_get() & MODE_MASK) == MODE_PLAY)
102  {
103  return 360;
104  }
105  extern int _GetVRAMHPixelsSize();
106  return _GetVRAMHPixelsSize() >> 1;
107 }
int vid_get_viewport_xoffset ( )

Definiert in Zeile 113 der Datei lib.c.

114 {
115  if ((mode_get() & MODE_MASK) == MODE_PLAY)
116  {
117  return 0;
118  }
119  else if (shooting_get_prop(PROPCASE_SHOOTING_MODE) == 16909) // Stitch mode
120  {
121  return 0;
122  }
123  else
124  {
126  }
127 }
int vid_get_viewport_yoffset ( )

Definiert in Zeile 189 der Datei lib.c.

190 {
191  return vp_yoffset(0);
192 }
int vid_get_viewport_yscale ( )

Definiert in Zeile 95 der Datei lib.c.

95  {
96  return 2;
97 }
static int vp_yoffset ( int  stitch)
static

Definiert in Zeile 164 der Datei lib.c.

165 {
166  // viewport height offset table for each image size
167  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1, 4 = 4:5
168  static long vp_yo[5] = { 0, 30, 13, 0, 0 };
169 
170  int m = mode_get();
171  if ((m & MODE_MASK) == MODE_PLAY)
172  {
173  return 0;
174  }
175  else if (shooting_get_prop(PROPCASE_SHOOTING_MODE) == 16908) // Stitch mode
176  {
177  return stitch;
178  }
179  else if (mode_is_video(m))
180  {
181  return 30;
182  }
183  else
184  {
186  }
187 }

Variablen-Dokumentation

int active_bitmap_buffer
char active_viewport_buffer
char* bitmap_buffer[]

Definiert in Zeile 84 der Datei lib.c.

void* viewport_buffers[]
long vp_xo[5] = { 0, 0, 0, 44, 72 }
static

Definiert in Zeile 111 der Datei lib.c.