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

Funktionen

char * hook_raw_image_addr ()
 
char * hook_alt_raw_image_addr ()
 
char * camera_jpeg_count_str ()
 
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_viewport_fb_d ()
 
void * vid_get_bitmap_fb ()
 
int vid_get_viewport_yscale ()
 
int vid_get_viewport_width ()
 
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

int active_raw_buffer
 
char * raw_buffers []
 
char active_viewport_buffer
 
void * viewport_buffers []
 
int active_bitmap_buffer
 
char * bitmap_buffer []
 

Makro-Dokumentation

#define LED_PR   0xC022C30C

Definiert in Zeile 55 der Datei lib.c.

Dokumentation der Funktionen

char* camera_jpeg_count_str ( )

Definiert in Zeile 20 der Datei lib.c.

21 {
22  extern char jpeg_count_str[];
23  return jpeg_count_str;
24 }
void camera_set_led ( int  led,
int  state,
__attribute__((unused)) int  bright 
)

Definiert in Zeile 71 der Datei lib.c.

71  {
72  static char led_table[5]={0,1,3,9};
73  _LEDDrive(led_table[led%sizeof(led_table)], state<=1 ? !state : state);
74 }
void debug_led ( int  state)

Definiert in Zeile 57 der Datei lib.c.

58 {
59  // using power LED, which defaults to on
60  // for debugging turn LED off if state is 1 and on for state = 0
61  // leaves LED on at end of debugging
62  volatile long *p = (void*)LED_PR;
63  *p = (*p & 0xFFFFFFCF) | ((state) ? 0x00 : 0x20);
64 }
int get_flash_params_count ( void  )

Definiert in Zeile 76 der Datei lib.c.

76 { return 0x9f; } // Found @0xff206724
char* hook_alt_raw_image_addr ( )

Definiert in Zeile 14 der Datei lib.c.

15 {
17 }
char* hook_raw_image_addr ( void  )

Definiert in Zeile 9 der Datei lib.c.

10 {
12 }
void JogDial_CCW ( void  )

Definiert in Zeile 82 der Datei lib.c.

82  {
83  _PostLogicalEventToUI(0x873, 1); // RotateJogDialLeft (in levent_table)
84 }
void JogDial_CW ( void  )

Definiert in Zeile 78 der Datei lib.c.

78  {
79  _PostLogicalEventToUI(0x872, 1); // RotateJogDialRight (in levent_table)
80 }
void load_chdk_palette ( )

Definiert in Zeile 236 der Datei lib.c.

237 {
238  extern int active_palette_buffer;
239  // Only load for the standard record and playback palettes
240  if ((active_palette_buffer == 0) || (active_palette_buffer == 3) || (active_palette_buffer == 6))
241  {
242  int *pal = (int*)vid_get_bitmap_active_palette();
243  if (pal && pal[CHDK_COLOR_BASE+0] != 0x33ADF62)
244  {
245  pal[CHDK_COLOR_BASE+0] = 0x33ADF62; // Red
246  pal[CHDK_COLOR_BASE+1] = 0x326EA40; // Dark Red
247  pal[CHDK_COLOR_BASE+2] = 0x34CD57F; // Light Red
248  pal[CHDK_COLOR_BASE+3] = 0x373BFAE; // Green
249  pal[CHDK_COLOR_BASE+4] = 0x34BD6CA; // Dark Green
250  pal[CHDK_COLOR_BASE+5] = 0x395AB95; // Light Green
251  pal[CHDK_COLOR_BASE+6] = 0x34766F0; // Blue
252  pal[CHDK_COLOR_BASE+7] = 0x31250F3; // Dark Blue
253  pal[CHDK_COLOR_BASE+8] = 0x37F408F; // Cyan
254  pal[CHDK_COLOR_BASE+9] = 0x3512D5B; // Magenta
255  pal[CHDK_COLOR_BASE+10] = 0x3A9A917; // Yellow
256  pal[CHDK_COLOR_BASE+11] = 0x3819137; // Dark Yellow
257  pal[CHDK_COLOR_BASE+12] = 0x3DED115; // Light Yellow
258  pal[CHDK_COLOR_BASE+13] = 0x0090000; // Transparent dark grey
259 
260  extern char palette_control;
261  palette_control = 1;
263  }
264  }
265 }
void shutdown ( )

Definiert in Zeile 39 der Datei lib.c.

40 {
41  volatile long *p = (void*)0xC022001C;
42 
43  asm(
44  "MRS R1, CPSR\n"
45  "AND R0, R1, #0x80\n"
46  "ORR R1, R1, #0x80\n"
47  "MSR CPSR_cf, R1\n"
48  :::"r1","r0");
49 
50  *p = 0x44; // power off.
51 
52  while(1);
53 }
void vid_bitmap_refresh ( )

Definiert in Zeile 27 der Datei lib.c.

28 {
29  extern int full_screen_refresh;
30  extern void _ScreenUnlock();
31  extern void _ScreenLock();
32 
33  full_screen_refresh |= 3;
34  _ScreenLock();
35  _ScreenUnlock();
36 }
void* vid_get_bitmap_active_buffer ( )

Definiert in Zeile 220 der Datei lib.c.

221 {
223 }
void* vid_get_bitmap_active_palette ( )

Definiert in Zeile 225 der Datei lib.c.

226 {
227  extern int active_palette_buffer;
228  extern char* palette_buffer[];
229  void* p = palette_buffer[active_palette_buffer];
230  // Don't add offset if value is 0
231  if (p) p += 4;
232  return p;
233 }
void* vid_get_bitmap_fb ( )

Definiert in Zeile 119 der Datei lib.c.

120 {
121  // Return first bitmap buffer address
122  return bitmap_buffer[0];
123 }
int vid_get_palette_size ( )

Definiert in Zeile 218 der Datei lib.c.

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

Definiert in Zeile 217 der Datei lib.c.

217 { return 3; }
int vid_get_viewport_display_xoffset ( )

Definiert in Zeile 140 der Datei lib.c.

141 {
143  {
144  return 0;
145  }
146  else if (shooting_get_prop(PROPCASE_SHOOTING_MODE) == 16909) // Stitch mode
147  {
148  if (shooting_get_prop(PROPCASE_STITCH_DIRECTION) == 0) // Direction check
149  if (shooting_get_prop(PROPCASE_STITCH_SEQUENCE) == 0) // Shot already taken?
150  return 40;
151  else
152  return 140;
153  else
154  if (shooting_get_prop(PROPCASE_STITCH_SEQUENCE) == 0) // Shot already taken?
155  return 140;
156  else
157  return 40;
158  }
159  else
160  {
161  // viewport width offset table for each image size
162  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1, 4 = 4:5
163  static long vp_w[5] = { 0, 0, 0, 44, 72 }; // should all be even values for edge overlay
165  }
166 }
int vid_get_viewport_display_xoffset_proper ( )

Definiert in Zeile 213 der Datei lib.c.

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

Definiert in Zeile 207 der Datei lib.c.

208 {
209  return vp_yoffset(72);
210 }
int vid_get_viewport_display_yoffset_proper ( )

Definiert in Zeile 214 der Datei lib.c.

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

Definiert in Zeile 93 der Datei lib.c.

94 {
95  // Return first viewport buffer - for case when vid_get_viewport_live_fb not defined
96  return viewport_buffers[0];
97 }
void* vid_get_viewport_fb_d ( )

Definiert in Zeile 109 der Datei lib.c.

110 {
111  extern char *viewport_fb_d;
112  return viewport_fb_d;
113 }
int vid_get_viewport_fullscreen_height ( )

Definiert in Zeile 216 der Datei lib.c.

216 { return 480; }
long vid_get_viewport_height ( )

Definiert in Zeile 168 der Datei lib.c.

169 {
171  {
172  return 240;
173  }
174  extern int _GetVRAMVPixelsSize();
175  return _GetVRAMVPixelsSize() >> 1;
176 }
int vid_get_viewport_height_proper ( )

Definiert in Zeile 215 der Datei lib.c.

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

Definiert in Zeile 99 der Datei lib.c.

100 {
101  int b = (active_viewport_buffer-1)&3;
103  b = 2; // Video only seems to use the first 3 viewport buffers.
104 
105  // Hopefully return the most recently used viewport buffer so that motion detect, histogram, zebra and edge overly are using current image data
106  return viewport_buffers[b];
107 }
int vid_get_viewport_width ( )

Definiert in Zeile 130 der Datei lib.c.

131 {
133  {
134  return 360;
135  }
136  extern int _GetVRAMHPixelsSize();
137  return _GetVRAMHPixelsSize() >> 1;
138 }
int vid_get_viewport_yoffset ( )

Definiert in Zeile 202 der Datei lib.c.

203 {
204  return vp_yoffset(0);
205 }
int vid_get_viewport_yscale ( )

Definiert in Zeile 126 der Datei lib.c.

126  {
127  return 2; // G1X viewport is 480 pixels high
128 }
static int vp_yoffset ( int  stitch)
static

Definiert in Zeile 178 der Datei lib.c.

179 {
180  // viewport height offset table for each image size
181  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1, 4 = 4:5
182  static long vp_yo[5] = { 0, 30, 13, 0, 0 };
183 
185  {
186  return 0;
187  }
188  else if (shooting_get_prop(PROPCASE_SHOOTING_MODE) == 16909) // Stitch mode
189  {
190  return stitch;
191  }
192  else if (camera_info.state.mode_video)
193  {
194  return 30;
195  }
196  else
197  {
199  }
200 }

Variablen-Dokumentation

int active_bitmap_buffer
int active_raw_buffer
char active_viewport_buffer
char* bitmap_buffer[]

Definiert in Zeile 84 der Datei lib.c.

char* raw_buffers[]
void* viewport_buffers[]