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   0xC022302C
 
#define AF_LED   0xC0223030
 

Funktionen

char * hook_raw_image_addr ()
 
char * camera_jpeg_count_str ()
 
void vid_bitmap_refresh ()
 
void shutdown ()
 
void * vid_get_bitmap_fb ()
 
int get_flash_params_count (void)
 
void debug_led (int state)
 
void camera_set_led (int led, int state, __attribute__((unused)) int bright)
 
void * vid_get_viewport_fb ()
 
void * vid_get_viewport_fb_d ()
 
void * vid_get_viewport_live_fb ()
 
int vid_get_viewport_width ()
 
long vid_get_viewport_height ()
 
int vid_get_viewport_display_xoffset ()
 
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 ()
 
void _MakeAFScan (__attribute__((unused)) int *a, __attribute__((unused)) int b)
 
void state_check_for_movie_af ()
 

Variablen

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

Makro-Dokumentation

#define AF_LED   0xC0223030

Definiert in Zeile 28 der Datei lib.c.

#define LED_PR   0xC022302C

Definiert in Zeile 27 der Datei lib.c.

Dokumentation der Funktionen

void _MakeAFScan ( __attribute__((unused)) int *  a,
__attribute__((unused)) int  b 
)

Definiert in Zeile 192 der Datei lib.c.

192  {
193  _DoAFLock();
195 }
char* camera_jpeg_count_str ( )

Definiert in Zeile 10 der Datei lib.c.

11 {
12  extern char jpeg_count_str[];
13  return jpeg_count_str;
14 }
void camera_set_led ( int  led,
int  state,
__attribute__((unused)) int  bright 
)

Definiert in Zeile 57 der Datei lib.c.

57  {
58  static char led_table[]={0,4}; // status, AF
59  _LEDDrive(led_table[led%sizeof(led_table)], state<=1 ? !state : state);
60 }
void debug_led ( int  state)

Definiert in Zeile 39 der Datei lib.c.

40 {
41  volatile long *p=(void*)LED_PR;
42  if (state)
43  p[0]=0x46;
44  else
45  p[0]=0x44;
46 }
int get_flash_params_count ( void  )

Definiert in Zeile 37 der Datei lib.c.

37 { return 0xd4; } // Found @0xff9c7eb4
char* hook_raw_image_addr ( void  )

Definiert in Zeile 5 der Datei lib.c.

6 {
7  return (char*)0x42fb5130; //Found @0xff8758cc and 0xffa655d8 (Search for A/%08x.CRW)
8 }
void load_chdk_palette ( )

Definiert in Zeile 158 der Datei lib.c.

159 {
160  extern int active_palette_buffer;
161  // Only load for the standard record and playback palettes
162  if ((active_palette_buffer == 0) || (active_palette_buffer == 5))
163  {
164  int *pal = (int*)vid_get_bitmap_active_palette();
165  if (pal[CHDK_COLOR_BASE+0] != 0x3F3ADF62)
166  {
167  pal[CHDK_COLOR_BASE+0] = 0x3F3ADF62; // Red
168  pal[CHDK_COLOR_BASE+1] = 0x3F26EA40; // Dark Red
169  pal[CHDK_COLOR_BASE+2] = 0x3F4CD57F; // Light Red
170  pal[CHDK_COLOR_BASE+5] = 0x3F73BFAE; // Green
171  pal[CHDK_COLOR_BASE+6] = 0x3F4BD6CA; // Dark Green
172  pal[CHDK_COLOR_BASE+7] = 0x3F95AB95; // Light Green
173  pal[CHDK_COLOR_BASE+8] = 0x3F4766F0; // Blue
174  pal[CHDK_COLOR_BASE+9] = 0x3F1250F3; // Dark Blue
175  pal[CHDK_COLOR_BASE+10] = 0x3F7F408F; // Cyan
176  pal[CHDK_COLOR_BASE+11] = 0x3F512D5B; // Magenta
177  pal[CHDK_COLOR_BASE+12] = 0x3FA9A917; // Yellow
178  pal[CHDK_COLOR_BASE+13] = 0x3F819137; // Dark Yellow
179  pal[CHDK_COLOR_BASE+14] = 0x3FDED115; // Light Yellow
180  pal[CHDK_COLOR_BASE+15] = 0x00090000; // Transparent dark grey
181 
182  extern char palette_control;
183  palette_control = 1;
185  }
186  }
187 }
void shutdown ( )

Definiert in Zeile 29 der Datei lib.c.

30 {
31  extern void _TurnOffE1(void);
32  _TurnOffE1();
33  while(1);
34 }
void state_check_for_movie_af ( )

Definiert in Zeile 197 der Datei lib.c.

197  {
200  _UnlockAF();
201  }
202 }
void vid_bitmap_refresh ( )

Definiert in Zeile 16 der Datei lib.c.

17 {
18  extern int full_screen_refresh;
19  extern void _ScreenLock();
20  extern void _ScreenUnlock();
21 
22  full_screen_refresh |= 3;
23  _ScreenLock();
24  _ScreenUnlock();
25 }
void* vid_get_bitmap_active_buffer ( )

Definiert in Zeile 139 der Datei lib.c.

140 {
142 }
void* vid_get_bitmap_active_palette ( )

Definiert in Zeile 144 der Datei lib.c.

145 {
146  extern int active_palette_buffer;
147  extern int** palette_buffer_ptr;
148  int *p = palette_buffer_ptr[active_palette_buffer];
149  // active_palette_buffer can point at null when
150  // func and menu are opened for the first time
151  if(!p) {
152  p = palette_buffer_ptr[0]; // rec mode buffer appears to always be initialized
153  }
154  return (p+1);
155 }
void* vid_get_bitmap_fb ( )

OSD screen

Definiert in Zeile 36 der Datei lib.c.

36 { return (void*)0x40711000; } // Found @0xff865754
int vid_get_palette_size ( )

Definiert in Zeile 134 der Datei lib.c.

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

Definiert in Zeile 133 der Datei lib.c.

133 { return 3; }
int vid_get_viewport_display_xoffset ( )

Definiert in Zeile 116 der Datei lib.c.

117 {
118  int m = mode_get();
119  int aspect_ratio=shooting_get_prop(PROPCASE_ASPECT_RATIO);
120 
121  if ((m & MODE_MASK) != MODE_PLAY) {
122  return (vp_xo[aspect_ratio]);
123  }
124  else
125  return 0;
126 }
void* vid_get_viewport_fb ( )

IMG viewport in 'rec' mode

Definiert in Zeile 62 der Datei lib.c.

62 { return (void*)0x40866b80; } // Found @0xffba1ce8
void* vid_get_viewport_fb_d ( )

IMG viewport in 'play' mode

Definiert in Zeile 63 der Datei lib.c.

64 {
65  extern char *viewport_fb_d;
66  return viewport_fb_d;
67 }
long vid_get_viewport_height ( )

Definiert in Zeile 93 der Datei lib.c.

94 {
95 
96  int m = mode_get();
97  int aspect_ratio=shooting_get_prop(PROPCASE_ASPECT_RATIO);
98 
100  return 240;
101 
102  if ((m & MODE_MASK) != MODE_PLAY)
103  {
104  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1
105  if (aspect_ratio==1 || aspect_ratio==2)
106  return 240;
107  }
108  extern int _GetVRAMVPixelsSize();
109  return ((m & MODE_MASK) == MODE_PLAY)?240:_GetVRAMVPixelsSize();
110 }
void* vid_get_viewport_live_fb ( )

Definiert in Zeile 72 der Datei lib.c.

73 {
75  return viewport_buffers[0]; // Video only seems to use the first viewport buffer.
76 
77  // Hopefully return the most recently used viewport buffer so that motion detect, histogram, zebra and edge overly are using current image data
78  // verified -1 gives best response
80 }
int vid_get_viewport_width ( )

Definiert in Zeile 82 der Datei lib.c.

83 {
84  if ((mode_get() & MODE_MASK) == MODE_PLAY)
85  {
86  return 360;
87  }
88  extern int _GetVRAMHPixelsSize();
89  return _GetVRAMHPixelsSize() >> 1;
90 }

Variablen-Dokumentation

int active_bitmap_buffer
char active_viewport_buffer
int af_locked_in_movierec = 0
static

Definiert in Zeile 190 der Datei lib.c.

char* bitmap_buffer[]

Definiert in Zeile 84 der Datei lib.c.

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

Definiert in Zeile 114 der Datei lib.c.