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

Funktionen

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)
 
void shutdown_soft ()
 
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 ()
 
int vid_get_viewport_width ()
 
long vid_get_viewport_height ()
 
int vid_get_viewport_yscale ()
 
int vid_get_viewport_yoffset ()
 
int vid_get_viewport_display_xoffset ()
 
int vid_get_viewport_display_yoffset ()
 
void * vid_get_bitmap_fb ()
 
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 []
 

Dokumentation der Funktionen

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

Definiert in Zeile 45 der Datei lib.c.

45  {
46  static char led_table[2]={0,4};
47  _LEDDrive(led_table[led%sizeof(led_table)], state<=1 ? !state : state);
48 }
void debug_led ( __attribute__((unused)) int  state)

Definiert in Zeile 34 der Datei lib.c.

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

Definiert in Zeile 54 der Datei lib.c.

54  {
55  return 0xA6; //asm1989 @FF1F3FB4, sx230:0xA0 @FF1B94A8 in GetParameterData
56 }
void JogDial_CCW ( void  )

Definiert in Zeile 64 der Datei lib.c.

64  {
65  _PostLogicalEventToUI(0x873, 1); //asm1989 RotateJogDialLeft (in table @FF5879A8 like SX40 -> FF593E5C,)
66 }
void JogDial_CW ( void  )

Definiert in Zeile 60 der Datei lib.c.

60  {
61  _PostLogicalEventToUI(0x872, 1); //asm1989 RotateJogDialRight (in table @ FF58799C)
62 }
void load_chdk_palette ( )

Definiert in Zeile 184 der Datei lib.c.

185 {
186  extern int active_palette_buffer;
187  // Only load for the standard record and playback palettes
188  //rec=0, set menu=4, play=5, menu=6
189  if ((active_palette_buffer == 0) || (active_palette_buffer == 5))
190  {
191  int *pal = (int*)vid_get_bitmap_active_palette();
192  if (pal && pal[CHDK_COLOR_BASE+0] != 0x33ADF62)
193  {
194  pal[CHDK_COLOR_BASE+0] = 0x33ADF62; // Red
195  pal[CHDK_COLOR_BASE+1] = 0x326EA40; // Dark Red
196  pal[CHDK_COLOR_BASE+2] = 0x34CD57F; // Light Red
197  pal[CHDK_COLOR_BASE+3] = 0x373BFAE; // Green
198  pal[CHDK_COLOR_BASE+4] = 0x34BD6CA; // Dark Green
199  pal[CHDK_COLOR_BASE+5] = 0x395AB95; // Light Green
200  pal[CHDK_COLOR_BASE+6] = 0x34766F0; // Blue
201  pal[CHDK_COLOR_BASE+7] = 0x31250F3; // Dark Blue
202  pal[CHDK_COLOR_BASE+8] = 0x37F408F; // Cyan
203  pal[CHDK_COLOR_BASE+9] = 0x3512D5B; // Magenta
204  pal[CHDK_COLOR_BASE+10] = 0x3A9A917; // Yellow
205  pal[CHDK_COLOR_BASE+11] = 0x3819137; // Dark Yellow
206  pal[CHDK_COLOR_BASE+12] = 0x3DED115; // Light Yellow
207  pal[CHDK_COLOR_BASE+13] = 0x0090000; // Transparent dark grey
208 
209  extern char palette_control;
210  palette_control = 1;
212  }
213  }
214 }
void shutdown ( )

Definiert in Zeile 15 der Datei lib.c.

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

Definiert in Zeile 50 der Datei lib.c.

50  {
52 }
void vid_bitmap_refresh ( )

Definiert in Zeile 5 der Datei lib.c.

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

Definiert in Zeile 170 der Datei lib.c.

170  {
172 }
void* vid_get_bitmap_active_palette ( )

Definiert in Zeile 174 der Datei lib.c.

174  {
175  extern int active_palette_buffer;
176  extern char* palette_buffer[];
177  void* p = palette_buffer[active_palette_buffer];
178  // Don't add offset if value is 0
179  if (p) p += 4;
180  return p;
181 }
void* vid_get_bitmap_fb ( )

OSD screen

Definiert in Zeile 157 der Datei lib.c.

157  {
158  // Return first bitmap buffer address
159  return bitmap_buffer[0];
160 }
int vid_get_palette_size ( )

Definiert in Zeile 168 der Datei lib.c.

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

Definiert in Zeile 167 der Datei lib.c.

167 { return 3; }
int vid_get_viewport_display_xoffset ( )

Definiert in Zeile 119 der Datei lib.c.

119  {
120  if ((mode_get() & MODE_MASK) == MODE_PLAY) {
121  return 0;
122  } else if (shooting_get_prop(PROPCASE_SHOOTING_MODE) == 16909) { // Stitch mode
123  if (shooting_get_prop(PROPCASE_STITCH_DIRECTION) == 0) // Direction check
124  if (shooting_get_prop(PROPCASE_STITCH_SEQUENCE) == 0) // Shot already taken?
125  return 40;
126  else
127  return 140;
128  else
129  if (shooting_get_prop(PROPCASE_STITCH_SEQUENCE) == 0) // Shot already taken?
130  return 140;
131  else
132  return 40;
133  } else {
134  // viewport width offset table for each image size
135  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1
136  static long vp_w[4] = { 0, 0, 0, 44 }; // should all be even values for edge overlay
138  }
139 }
int vid_get_viewport_display_xoffset_proper ( )

Definiert in Zeile 163 der Datei lib.c.

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

Definiert in Zeile 141 der Datei lib.c.

141  {
142  if ((mode_get() & MODE_MASK) == MODE_PLAY) {
143  return 0;
144  } else if (shooting_get_prop(PROPCASE_SHOOTING_MODE) == 16909) { // Stitch mode
145  return 72;
146  } else {
147  // viewport width offset table for each image size
148  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1
149  static long vp_h[4] = { 0, 30, 13, 0 };
151  }
152 }
int vid_get_viewport_display_yoffset_proper ( )

Definiert in Zeile 164 der Datei lib.c.

164 { 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.

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

Definiert in Zeile 166 der Datei lib.c.

166 { return 480; }
long vid_get_viewport_height ( )

Definiert in Zeile 93 der Datei lib.c.

93  {
94  if ((mode_get() & MODE_MASK) == MODE_PLAY) {
95  return 240;
96  }
97  extern int _GetVRAMVPixelsSize();
98  return _GetVRAMVPixelsSize() >> 1;
99 }
int vid_get_viewport_height_proper ( )

Definiert in Zeile 165 der Datei lib.c.

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

Definiert in Zeile 76 der Datei lib.c.

76  {
77  // appears to use 4 buffers in video mode or recording
80  }
81  // 8 buffers in still mode
83 }
int vid_get_viewport_width ( )

Definiert in Zeile 85 der Datei lib.c.

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

Definiert in Zeile 106 der Datei lib.c.

106  {
107  if ((mode_get() & MODE_MASK) == MODE_PLAY) {
108  return 0;
109  } else if (shooting_get_prop(PROPCASE_SHOOTING_MODE) == 16909) { // Stitch mode
110  return 0;
111  } else {
112  // viewport height offset table for each image size
113  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1
114  static long vp_h[4] = { 0, 30, 13, 0 };
116  }
117 }
int vid_get_viewport_yscale ( )

Definiert in Zeile 102 der Datei lib.c.

102  {
103  return 2;
104 }

Variablen-Dokumentation

int active_bitmap_buffer
char active_viewport_buffer
char* bitmap_buffer[]

Definiert in Zeile 84 der Datei lib.c.

void* viewport_buffers[]