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

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 (__attribute__((unused)) 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_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_height_proper ()
 
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   0xC0220134

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 66 der Datei lib.c.

66  {
67  static char led_table[2]={3,9};
68  _LEDDrive(led_table[led%sizeof(led_table)], state<=1 ? !state : state);
69 }
void debug_led ( __attribute__((unused)) int  state)

Definiert in Zeile 58 der Datei lib.c.

59 {
60  //*(int*)LED_PR=state ? 0x46 : 0x44;
61 }
int get_flash_params_count ( void  )

Definiert in Zeile 71 der Datei lib.c.

71  {
72  return 0x9a; // found in GetParameterData ???
73 }
char* hook_alt_raw_image_addr ( )

Definiert in Zeile 14 der Datei lib.c.

15 {
16  return raw_buffers[(active_raw_buffer^1)*3];
17 }
char* hook_raw_image_addr ( void  )

Definiert in Zeile 9 der Datei lib.c.

10 {
12 }
void JogDial_CCW ( void  )

Definiert in Zeile 79 der Datei lib.c.

79  {
80  _PostLogicalEventForNotPowerType(0x86F, 1); // RotateJogDialLeft (in table @ FFC0E88C, fw 1.00h)
81 }
void JogDial_CW ( void  )

Definiert in Zeile 75 der Datei lib.c.

75  {
76  _PostLogicalEventForNotPowerType(0x86E, 1); // RotateJogDialRight (in table @ FFC0E88C, fw 1.00h)
77 }
void load_chdk_palette ( )

Definiert in Zeile 218 der Datei lib.c.

219 {
220  extern int active_palette_buffer;
221  // Only load for the standard record and playback palettes
222  if ((active_palette_buffer == 0) || (active_palette_buffer == 4) || (active_palette_buffer == 6))
223  {
224  int *pal = (int*)vid_get_bitmap_active_palette();
225  if (pal && pal[CHDK_COLOR_BASE+0] != 0x33ADF62)
226  {
227  pal[CHDK_COLOR_BASE+0] = 0x33ADF62; // Red
228  pal[CHDK_COLOR_BASE+1] = 0x326EA40; // Dark Red
229  pal[CHDK_COLOR_BASE+2] = 0x34CD57F; // Light Red
230  pal[CHDK_COLOR_BASE+3] = 0x373BFAE; // Green
231  pal[CHDK_COLOR_BASE+4] = 0x34BD6CA; // Dark Green
232  pal[CHDK_COLOR_BASE+5] = 0x395AB95; // Light Green
233  pal[CHDK_COLOR_BASE+6] = 0x34766F0; // Blue
234  pal[CHDK_COLOR_BASE+7] = 0x31250F3; // Dark Blue
235  pal[CHDK_COLOR_BASE+8] = 0x37F408F; // Cyan
236  pal[CHDK_COLOR_BASE+9] = 0x3512D5B; // Magenta
237  pal[CHDK_COLOR_BASE+10] = 0x3A9A917; // Yellow
238  pal[CHDK_COLOR_BASE+11] = 0x3819137; // Dark Yellow
239  pal[CHDK_COLOR_BASE+12] = 0x3DED115; // Light Yellow
240  pal[CHDK_COLOR_BASE+13] = 0x0090000; // Transparent dark grey
241 
242  extern char palette_control;
243  palette_control = 1;
245  }
246  }
247 }
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 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 char* palette_buffer[];
211  void* p = palette_buffer[active_palette_buffer];
212  // Don't add offset if value is 0
213  if (p) p += 8;
214  return p;
215 }
void* vid_get_bitmap_fb ( )

OSD screen

Definiert in Zeile 115 der Datei lib.c.

116 {
117  // Return first bitmap buffer address
118  return bitmap_buffer[0];
119 }
int vid_get_palette_size ( )

Definiert in Zeile 200 der Datei lib.c.

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

Definiert in Zeile 199 der Datei lib.c.

199 { return 3; }
int vid_get_viewport_display_xoffset ( )

Definiert in Zeile 131 der Datei lib.c.

132 {
134  {
135  return 0;
136  }
137  else if (shooting_get_prop(PROPCASE_SHOOTING_MODE) == 16908) // Stitch mode
138  {
139  if (shooting_get_prop(PROPCASE_STITCH_DIRECTION) == 0) // Direction check
140  if (shooting_get_prop(PROPCASE_STITCH_SEQUENCE) == 0) // Shot already taken?
141  return 40;
142  else
143  return 140;
144  else
145  if (shooting_get_prop(PROPCASE_STITCH_SEQUENCE) == 0) // Shot already taken?
146  return 140;
147  else
148  return 40;
149  }
150  else
151  {
152  return 0;
153  }
154 }
int vid_get_viewport_display_xoffset_proper ( )

Definiert in Zeile 197 der Datei lib.c.

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

Definiert in Zeile 190 der Datei lib.c.

191 {
192  return vp_yoffset(72);
193 }
void* vid_get_viewport_fb ( )

IMG viewport in 'rec' mode

Definiert in Zeile 90 der Datei lib.c.

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

IMG viewport in 'play' mode

Definiert in Zeile 105 der Datei lib.c.

106 {
107  extern char *viewport_fb_d;
108  return viewport_fb_d;
109 }
long vid_get_viewport_height ( )

Definiert in Zeile 156 der Datei lib.c.

157 {
159  {
160  return 240;
161  }
162  extern int _GetVRAMVPixelsSize();
163  return _GetVRAMVPixelsSize();
164 }
int vid_get_viewport_height_proper ( )

Definiert in Zeile 198 der Datei lib.c.

198 { return vid_get_viewport_height(); }
void* vid_get_viewport_live_fb ( )

Definiert in Zeile 96 der Datei lib.c.

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

Definiert in Zeile 121 der Datei lib.c.

122 {
124  {
125  return 360;
126  }
127  extern int _GetVRAMHPixelsSize();
128  return _GetVRAMHPixelsSize() >> 1;
129 }
int vid_get_viewport_yoffset ( )

Definiert in Zeile 185 der Datei lib.c.

186 {
187  return vp_yoffset(0);
188 }
static int vp_yoffset ( int  stitch)
static

Definiert in Zeile 166 der Datei lib.c.

167 {
169  {
170  return 0;
171  }
172  else if (shooting_get_prop(PROPCASE_SHOOTING_MODE) == 16908) // Stitch mode
173  {
174  return stitch;
175  }
176  else if (camera_info.state.mode_video)
177  {
178  return 30;
179  }
180  else if (shooting_get_prop(PROPCASE_ASPECT_RATIO) == 1) // Wide screen top & bottom 30 pixels not used in viewport
181  return 30;
182  return 0;
183 }

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[]