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   0xc022c020
 

Funktionen

void vid_bitmap_refresh ()
 
void shutdown ()
 
void debug_led (int state)
 
void camera_set_led (int led, int state, __attribute__((unused)) int bright)
 
char * camera_jpeg_count_str ()
 
int get_flash_params_count (void)
 
void * vid_get_bitmap_fb ()
 
void * vid_get_viewport_fb ()
 
void * vid_get_viewport_fb_d ()
 
void * vid_get_viewport_live_fb ()
 
char * hook_raw_image_addr ()
 
char * hook_alt_raw_image_addr ()
 
int vid_get_viewport_yscale ()
 
int vid_get_viewport_width ()
 
long vid_get_viewport_height ()
 
int vid_get_viewport_xoffset ()
 
int vid_get_viewport_display_xoffset ()
 
int vid_get_viewport_yoffset ()
 
int vid_get_viewport_display_yoffset ()
 
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

static long vp_xo [5] = { 0, 0, 0, 44 }
 
static long vp_yo [5] = { 0, 30, 13, 0 }
 
int active_bitmap_buffer
 
char * bitmap_buffer []
 

Makro-Dokumentation

#define LED_PR   0xc022c020

Definiert in Zeile 25 der Datei lib.c.

Dokumentation der Funktionen

char* camera_jpeg_count_str ( )

Definiert in Zeile 41 der Datei lib.c.

41 { return (char*)0x00181248; } // Found @0xff2b4948
void camera_set_led ( int  led,
int  state,
__attribute__((unused)) int  bright 
)

Definiert in Zeile 36 der Datei lib.c.

36  {
37  static char led_table[]={0,12}; // status, AF
38  _LEDDrive(led_table[led%sizeof(led_table)], state<=1 ? !state : state);
39 }
void debug_led ( int  state)

Definiert in Zeile 27 der Datei lib.c.

28 {
29  volatile long *p=(void*)LED_PR;
30  if (state)
31  p[0]=0x93d800;
32  else
33  p[0]=0x83dc00;
34 }
int get_flash_params_count ( void  )

Definiert in Zeile 43 der Datei lib.c.

43 { return 0x91; } // Found @0xff244ba4
char* hook_alt_raw_image_addr ( )

Definiert in Zeile 76 der Datei lib.c.

77 {
78  if (*((int*)(0x3a74)) == 0)
79  return (char*)0x4adb23c0;
80  else
81  return (char*)0x44000000;
82 }
char* hook_raw_image_addr ( void  )

Definiert in Zeile 68 der Datei lib.c.

69 {
70  if (*((int*)(0x3a74)) != 0) // 0x3a68 (@0xff0ba60c) + 0xc (@0xff0ba638)
71  return (char*)0x4adb23c0; // Found @0xff5e3444
72  else
73  return (char*)0x44000000;
74 }
void load_chdk_palette ( )

Definiert in Zeile 222 der Datei lib.c.

223 {
224  extern int active_palette_buffer;
225  // Only load for the standard record and playback palettes
226  // 0 = rec, 4 = func menu, 5 = playback, 6 = menu (play or rec),
227  if ((active_palette_buffer == 0) || (active_palette_buffer == 5) || (active_palette_buffer == 4))
228  {
229  int *pal = (int*)vid_get_bitmap_active_palette();
230  if (pal[CHDK_COLOR_BASE+0] != 0x33ADF62)
231  {
232  pal[CHDK_COLOR_BASE+0] = 0x33ADF62; // Red
233  pal[CHDK_COLOR_BASE+1] = 0x326EA40; // Dark Red
234  pal[CHDK_COLOR_BASE+2] = 0x34CD57F; // Light Red
235  pal[CHDK_COLOR_BASE+3] = 0x373BFAE; // Green
236  pal[CHDK_COLOR_BASE+4] = 0x34BD6CA; // Dark Green
237  pal[CHDK_COLOR_BASE+5] = 0x395AB95; // Light Green
238  pal[CHDK_COLOR_BASE+6] = 0x34766F0; // Blue
239  pal[CHDK_COLOR_BASE+7] = 0x31250F3; // Dark Blue
240  pal[CHDK_COLOR_BASE+8] = 0x37F408F; // Cyan
241  pal[CHDK_COLOR_BASE+9] = 0x3512D5B; // Magenta
242  pal[CHDK_COLOR_BASE+10] = 0x3A9A917; // Yellow
243  pal[CHDK_COLOR_BASE+11] = 0x3819137; // Dark Yellow
244  pal[CHDK_COLOR_BASE+12] = 0x3DED115; // Light Yellow
245 
246  extern char palette_control;
247  palette_control = 1; // note appears to be a bitmask, bit 2 is also used
249  }
250  }
251 }
void shutdown ( )

Definiert in Zeile 17 der Datei lib.c.

18 {
19  extern void _finish_shutdown(void);
20  _finish_shutdown();
21  while(1);
22 }
void vid_bitmap_refresh ( )

Definiert in Zeile 5 der Datei lib.c.

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

Definiert in Zeile 202 der Datei lib.c.

203 {
205 }
void* vid_get_bitmap_active_palette ( )

Definiert in Zeile 207 der Datei lib.c.

208 {
209  extern int active_palette_buffer;
210  extern int** palette_buffer_ptr;
211  int *p = palette_buffer_ptr[active_palette_buffer];
212  // active_palette_buffer can point at null when
213  // func and menu are opened for the first time
214  if(!p) {
215  p = palette_buffer_ptr[0]; // rec mode buffer appears to always be initialized
216  }
217  return (p+1);
218 }
void* vid_get_bitmap_fb ( )

Definiert in Zeile 46 der Datei lib.c.

46 { return (void*)0x406c5000; } // Found @0xff08dfd0
int vid_get_palette_size ( )

Definiert in Zeile 197 der Datei lib.c.

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

Definiert in Zeile 196 der Datei lib.c.

196 { return 3; }
int vid_get_viewport_display_xoffset ( )

Definiert in Zeile 119 der Datei lib.c.

120 {
121  int m = mode_get();
122  if ((m & MODE_MASK) == MODE_PLAY)
123  {
124  return 0;
125  }
126  else if ((m & MODE_SHOOTING_MASK) == MODE_STITCH)
127  {
128  if (shooting_get_prop(PROPCASE_STITCH_DIRECTION) == 0) // Direction check
129  if (shooting_get_prop(PROPCASE_STITCH_SEQUENCE) == 0) // Shot already taken?
130  return 40;
131  else
132  return 140;
133  else
134  if (shooting_get_prop(PROPCASE_STITCH_SEQUENCE) == 0) // Shot already taken?
135  return 140;
136  else
137  return 40;
138  }
139  else
140  {
142  }
143 }
int vid_get_viewport_display_yoffset ( )

Definiert in Zeile 171 der Datei lib.c.

172 {
173  int m = mode_get();
174  if ((m & MODE_MASK) == MODE_PLAY)
175  {
176  return 0;
177  }
178  else if ((m & MODE_SHOOTING_MASK) == MODE_STITCH)
179  {
180  return 72;
181  }
182  else if (/*mode_is_video(m)*/ get_movie_status() == VIDEO_RECORD_IN_PROGRESS)
183  {
184  return 30;
185  }
186  else
187  {
189  }
190 }
int vid_get_viewport_display_yoffset_proper ( )

Definiert in Zeile 192 der Datei lib.c.

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

Definiert in Zeile 47 der Datei lib.c.

47 { return (void*)0x4081ab80; } // Found @0xff49c3ac
void* vid_get_viewport_fb_d ( )

Definiert in Zeile 48 der Datei lib.c.

49 {
50  extern char *viewport_fb_d;
51  return viewport_fb_d;
52 }
int vid_get_viewport_fullscreen_height ( )

Definiert in Zeile 194 der Datei lib.c.

194 { return 480; }
long vid_get_viewport_height ( )

Definiert in Zeile 99 der Datei lib.c.

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

Definiert in Zeile 193 der Datei lib.c.

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

Definiert in Zeile 54 der Datei lib.c.

55 {
56  extern char active_viewport_buffer;
57  extern void* viewport_buffers[];
58 
59  // no distinct video mode
60  if (/*mode_is_video(mode_get())*/ get_movie_status() == VIDEO_RECORD_IN_PROGRESS)
61  return viewport_buffers[0]; // Video only seems to use the first viewport buffer.
62  // Hopefully return the most recently used viewport buffer so that motion detect, histogram, zebra and edge overly are using current image data
63  // verified -1 gives best response
64  return viewport_buffers[(active_viewport_buffer-1)&3];
65 }
int vid_get_viewport_width ( )

Definiert in Zeile 89 der Datei lib.c.

90 {
91  if ((mode_get() & MODE_MASK) == MODE_PLAY)
92  {
93  return 360;
94  }
95  extern int _GetVRAMHPixelsSize();
96  return _GetVRAMHPixelsSize() >> 1;
97 }
int vid_get_viewport_xoffset ( )

Definiert in Zeile 114 der Datei lib.c.

115 {
116  return 0;
117 }
int vid_get_viewport_yoffset ( )

Definiert in Zeile 149 der Datei lib.c.

150 {
151  int m = mode_get();
152  if ((m & MODE_MASK) == MODE_PLAY)
153  {
154  return 0;
155  }
156  else if ((m & MODE_SHOOTING_MASK) == MODE_STITCH)
157  {
158  return 0;
159  }
160  // no distinct video mode
161  else if (/*mode_is_video(m)*/ get_movie_status() == VIDEO_RECORD_IN_PROGRESS)
162  {
163  return 30;
164  }
165  else
166  {
168  }
169 }
int vid_get_viewport_yscale ( )

Definiert in Zeile 85 der Datei lib.c.

85  {
86  return 2;
87 }

Variablen-Dokumentation

int active_bitmap_buffer
char* bitmap_buffer[]

Definiert in Zeile 84 der Datei lib.c.

long vp_xo[5] = { 0, 0, 0, 44 }
static

Definiert in Zeile 111 der Datei lib.c.

long vp_yo[5] = { 0, 30, 13, 0 }
static

Definiert in Zeile 147 der Datei lib.c.