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

void vid_bitmap_refresh ()
 
void shutdown ()
 
void debug_led (int state)
 
void camera_set_led (int led, int state, __attribute__((unused)) int bright)
 
void shutdown_soft ()
 
void JogDial_CW (void)
 
void JogDial_CCW (void)
 
void * vid_get_viewport_live_fb ()
 
int vid_get_viewport_yscale ()
 
int vid_get_viewport_width ()
 
int vid_get_viewport_xoffset ()
 
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_bitmap_buffer
 
char * bitmap_buffer []
 
static long vp_xo [5] = { 0, 0, 0, 44, 72 }
 

Makro-Dokumentation

#define LED_PR   0xC022C30C

Definiert in Zeile 32 der Datei lib.c.

Dokumentation der Funktionen

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

Definiert in Zeile 46 der Datei lib.c.

46  {
47  static char led_table[2]={7,10};
48  _LEDDrive(led_table[led%sizeof(led_table)], state<=1 ? !state : state);
49 }
void debug_led ( int  state)

Definiert in Zeile 34 der Datei lib.c.

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

Definiert in Zeile 60 der Datei lib.c.

60  {
61  _PostLogicalEventToUI(0x873, 1); // RotateJogDialLeft (levent_table)
62 }
void JogDial_CW ( void  )

Definiert in Zeile 56 der Datei lib.c.

56  {
57  _PostLogicalEventToUI(0x872, 1); // RotateJogDialRight (levent_table)
58 }
void load_chdk_palette ( )

Definiert in Zeile 202 der Datei lib.c.

203 {
204  extern int active_palette_buffer;
205  // Only load for the standard record and playback palettes
206  if ((active_palette_buffer == 0) || (active_palette_buffer == 3))
207  {
208  int *pal = (int*)vid_get_bitmap_active_palette();
209  if (pal && pal[CHDK_COLOR_BASE+0] != 0x33ADF62)
210  {
211  pal[CHDK_COLOR_BASE+0] = 0x33ADF62; // Red
212  pal[CHDK_COLOR_BASE+1] = 0x326EA40; // Dark Red
213  pal[CHDK_COLOR_BASE+2] = 0x34CD57F; // Light Red
214  pal[CHDK_COLOR_BASE+3] = 0x373BFAE; // Green
215  pal[CHDK_COLOR_BASE+4] = 0x34BD6CA; // Dark Green
216  pal[CHDK_COLOR_BASE+5] = 0x395AB95; // Light Green
217  pal[CHDK_COLOR_BASE+6] = 0x34766F0; // Blue
218  pal[CHDK_COLOR_BASE+7] = 0x31250F3; // Dark Blue
219  pal[CHDK_COLOR_BASE+8] = 0x37F408F; // Cyan
220  pal[CHDK_COLOR_BASE+9] = 0x3512D5B; // Magenta
221  pal[CHDK_COLOR_BASE+10] = 0x3A9A917; // Yellow
222  pal[CHDK_COLOR_BASE+11] = 0x3819137; // Dark Yellow
223  pal[CHDK_COLOR_BASE+12] = 0x3DED115; // Light Yellow
224  pal[CHDK_COLOR_BASE+13] = 0x0090000; // Transparent dark grey
225 
226  extern char palette_control;
227  palette_control = 1;
229  }
230  }
231 }
void shutdown ( )

Definiert in Zeile 16 der Datei lib.c.

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

Definiert in Zeile 51 der Datei lib.c.

52 {
54 }
void vid_bitmap_refresh ( )

Definiert in Zeile 5 der Datei lib.c.

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

Definiert in Zeile 186 der Datei lib.c.

187 {
189 }
void* vid_get_bitmap_active_palette ( )

Definiert in Zeile 191 der Datei lib.c.

192 {
193  extern int active_palette_buffer;
194  extern char* palette_buffer[];
195  void* p = palette_buffer[active_palette_buffer];
196  // Don't add offset if value is 0
197  if (p) p += 4;
198  return p;
199 }
int vid_get_palette_size ( )

Definiert in Zeile 184 der Datei lib.c.

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

Definiert in Zeile 183 der Datei lib.c.

183 { return 5; }
int vid_get_viewport_display_xoffset ( )

Definiert in Zeile 108 der Datei lib.c.

109 {
110  if ((mode_get() & MODE_MASK) == MODE_PLAY)
111  {
112  return 0;
113  }
114  else if (shooting_get_prop(PROPCASE_SHOOTING_MODE) == 16909) // Stitch mode
115  {
116  if (shooting_get_prop(PROPCASE_STITCH_DIRECTION) == 0) // Direction check
117  if (shooting_get_prop(PROPCASE_STITCH_SEQUENCE) == 0) // Shot already taken?
118  return 40;
119  else
120  return 140;
121  else
122  if (shooting_get_prop(PROPCASE_STITCH_SEQUENCE) == 0) // Shot already taken?
123  return 140;
124  else
125  return 40;
126  }
127  else
128  {
130  }
131 }
int vid_get_viewport_display_xoffset_proper ( )

Definiert in Zeile 179 der Datei lib.c.

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

Definiert in Zeile 173 der Datei lib.c.

174 {
175  return vp_yoffset(72);
176 }
int vid_get_viewport_display_yoffset_proper ( )

Definiert in Zeile 180 der Datei lib.c.

180 { return vid_get_viewport_display_yoffset() * 2; }
int vid_get_viewport_fullscreen_height ( )

Definiert in Zeile 182 der Datei lib.c.

182 { return 480; }
long vid_get_viewport_height ( )

Definiert in Zeile 133 der Datei lib.c.

134 {
135  if ((mode_get() & MODE_MASK) == MODE_PLAY)
136  {
137  return 240;
138  }
139  extern int _GetVRAMVPixelsSize();
140  return _GetVRAMVPixelsSize() >> 1;
141 }
int vid_get_viewport_height_proper ( )

Definiert in Zeile 181 der Datei lib.c.

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

Definiert in Zeile 64 der Datei lib.c.

65 {
66  return vid_get_viewport_fb();
67 }
int vid_get_viewport_width ( )

Definiert in Zeile 78 der Datei lib.c.

79 {
80  if ((mode_get() & MODE_MASK) == MODE_PLAY)
81  {
82  return 360;
83  }
84  extern int _GetVRAMHPixelsSize();
85  return _GetVRAMHPixelsSize() >> 1;
86 }
int vid_get_viewport_xoffset ( )

Definiert in Zeile 92 der Datei lib.c.

93 {
94  if ((mode_get() & MODE_MASK) == MODE_PLAY)
95  {
96  return 0;
97  }
98  else if (shooting_get_prop(PROPCASE_SHOOTING_MODE) == 16909) // Stitch mode
99  {
100  return 0;
101  }
102  else
103  {
105  }
106 }
int vid_get_viewport_yoffset ( )

Definiert in Zeile 168 der Datei lib.c.

169 {
170  return vp_yoffset(0);
171 }
int vid_get_viewport_yscale ( )

Definiert in Zeile 74 der Datei lib.c.

74  {
75  return 2;
76 }
static int vp_yoffset ( int  stitch)
static

Definiert in Zeile 143 der Datei lib.c.

144 {
145  // viewport height offset table for each image size
146  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1, 4 = 4:5
147  static long vp_yo[5] = { 0, 30, 13, 0, 0 };
148 
149  int m = mode_get();
150  if ((m & MODE_MASK) == MODE_PLAY)
151  {
152  return 0;
153  }
154  else if (shooting_get_prop(PROPCASE_SHOOTING_MODE) == 16908) // Stitch mode
155  {
156  return stitch;
157  }
158  else if (mode_is_video(m))
159  {
160  return 30;
161  }
162  else
163  {
165  }
166 }

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, 72 }
static

Definiert in Zeile 90 der Datei lib.c.