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

Funktionen

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)
 
int vid_get_viewport_byte_width ()
 
int vid_get_viewport_yscale ()
 
int vid_get_viewport_width ()
 
int vid_get_viewport_display_xoffset ()
 
long vid_get_viewport_height ()
 
int vid_get_viewport_height_proper ()
 
int vid_get_viewport_buffer_width_proper ()
 
int vid_get_viewport_fullscreen_height ()
 
int vid_get_palette_type ()
 
int vid_get_palette_size ()
 
int vid_get_aspect_ratio ()
 
void * vid_get_bitmap_active_buffer ()
 
void * vid_get_bitmap_active_palette ()
 
void load_chdk_palette ()
 

Variablen

int active_bitmap_buffer
 
char * bitmap_buffer []
 

Makro-Dokumentation

#define LED_PR   0xC0220130

Definiert in Zeile 35 der Datei lib.c.

Dokumentation der Funktionen

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

Definiert in Zeile 43 der Datei lib.c.

43  {
44  static char led_table[2]={0,9};
45  _LEDDrive(led_table[led%sizeof(led_table)], state<=1 ? !state : state);
46 }
void debug_led ( int  state)

Definiert in Zeile 38 der Datei lib.c.

39 {
40  *(int*)LED_PR=state ? 0x46 : 0x44;
41 }
int get_flash_params_count ( void  )

Definiert in Zeile 48 der Datei lib.c.

48  {
49  return 0xA0; //@FF1B94A8 in GetParameterData
50 }
void JogDial_CCW ( void  )

Definiert in Zeile 56 der Datei lib.c.

56  {
57  _PostLogicalEventToUI(0x86F, 1); // RotateJogDialLeft
58 }
void JogDial_CW ( void  )

Definiert in Zeile 52 der Datei lib.c.

52  {
53  _PostLogicalEventToUI(0x86E, 1); // RotateJogDialRight
54 }
void load_chdk_palette ( )

Definiert in Zeile 121 der Datei lib.c.

122 {
123  extern int active_palette_buffer;
124  // Only load for the standard record and playback palettes
125  if ((active_palette_buffer == 0) || (active_palette_buffer == 4))
126  {
127  int *pal = (int*)vid_get_bitmap_active_palette();
128  if (pal && pal[CHDK_COLOR_BASE+0] != 0x33ADF62)
129  {
130  pal[CHDK_COLOR_BASE+0] = 0x33ADF62; // Red
131  pal[CHDK_COLOR_BASE+1] = 0x326EA40; // Dark Red
132  pal[CHDK_COLOR_BASE+2] = 0x34CD57F; // Light Red
133  pal[CHDK_COLOR_BASE+3] = 0x373BFAE; // Green
134  pal[CHDK_COLOR_BASE+4] = 0x34BD6CA; // Dark Green
135  pal[CHDK_COLOR_BASE+5] = 0x395AB95; // Light Green
136  pal[CHDK_COLOR_BASE+6] = 0x34766F0; // Blue
137  pal[CHDK_COLOR_BASE+7] = 0x31250F3; // Dark Blue
138  pal[CHDK_COLOR_BASE+8] = 0x37F408F; // Cyan
139  pal[CHDK_COLOR_BASE+9] = 0x3512D5B; // Magenta
140  pal[CHDK_COLOR_BASE+10] = 0x3A9A917; // Yellow
141  pal[CHDK_COLOR_BASE+11] = 0x3819137; // Dark Yellow
142  pal[CHDK_COLOR_BASE+12] = 0x3DED115; // Light Yellow
143  pal[CHDK_COLOR_BASE+13] = 0x0090000; // Transparent dark grey
144 
145  extern char palette_control;
146  palette_control = 1;
148  }
149  }
150 }
void shutdown ( )

Definiert in Zeile 19 der Datei lib.c.

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

Definiert in Zeile 6 der Datei lib.c.

7 {
8  extern int full_screen_refresh;
9 
10  extern void _LockAndRefresh(); // wrapper function for screen lock
11  extern void _UnlockAndRefresh(); // wrapper function for screen unlock
12 
13  full_screen_refresh |= 3; //found in ScreenUnlock
14  _LockAndRefresh();
15  _UnlockAndRefresh();
16 }
int vid_get_aspect_ratio ( )

Definiert in Zeile 103 der Datei lib.c.

103 { return 1; }
void* vid_get_bitmap_active_buffer ( )

Definiert in Zeile 105 der Datei lib.c.

106 {
108 }
void* vid_get_bitmap_active_palette ( )

Definiert in Zeile 110 der Datei lib.c.

111 {
112  extern int active_palette_buffer;
113  extern char* palette_buffer[];
114  void* p = palette_buffer[active_palette_buffer];
115  // Don't add offset if value is 0
116  if (p) p += 8;
117  return p;
118 }
int vid_get_palette_size ( )

Definiert in Zeile 102 der Datei lib.c.

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

Definiert in Zeile 101 der Datei lib.c.

101 { return 3; }
int vid_get_viewport_buffer_width_proper ( )

Definiert in Zeile 99 der Datei lib.c.

99 { return 960; }
int vid_get_viewport_byte_width ( )

Definiert in Zeile 69 der Datei lib.c.

69  {
70  return 960 * 6 / 4; // SX230HS - wide screen LCD is 960 pixels wide, each group of 4 pixels uses 6 bytes (UYVYYY)
71 }
int vid_get_viewport_display_xoffset ( )

Definiert in Zeile 87 der Datei lib.c.

88 {
89  // viewport width offset table for each image size
90  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1
91  static long vp_w[4] = { 60, 0, 36, 104 }; // should all be even values for edge overlay
93 }
int vid_get_viewport_fullscreen_height ( )

Definiert in Zeile 100 der Datei lib.c.

100 { return 480; }
long vid_get_viewport_height ( )

Definiert in Zeile 95 der Datei lib.c.

95 { return 240; }
int vid_get_viewport_height_proper ( )

Definiert in Zeile 98 der Datei lib.c.

98 { return 480; }
int vid_get_viewport_width ( )

Definiert in Zeile 79 der Datei lib.c.

80 {
81  // viewport width table for each image size
82  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1
83  static long vp_w[4] = { 360, 480, 408, 272 };
85 }
int vid_get_viewport_yscale ( )

Definiert in Zeile 74 der Datei lib.c.

74  {
75  return 2; // SX230HS viewport is 480 pixels high
76 }

Variablen-Dokumentation

int active_bitmap_buffer
char* bitmap_buffer[]

Definiert in Zeile 84 der Datei lib.c.