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_AC   0xC0220130
 
#define LED_AF   0xC02200AC
 

Funktionen

void shutdown ()
 
void debug_led (int state)
 
void camera_set_led (int led, int state, __attribute__((unused)) int bright)
 
int vid_get_viewport_width ()
 
long vid_get_viewport_height ()
 
void * vid_get_viewport_fb ()
 
void * vid_get_viewport_live_fb ()
 
void * vid_get_viewport_fb_d ()
 
void vid_bitmap_refresh ()
 
void * vid_get_bitmap_active_palette ()
 
void load_chdk_palette ()
 
int vid_get_palette_type ()
 
int vid_get_palette_size ()
 
void * vid_get_bitmap_active_buffer ()
 

Variablen

char active_viewport_buffer
 
void * viewport_buffers []
 

Makro-Dokumentation

#define LED_AC   0xC0220130

Definiert in Zeile 5 der Datei lib.c.

#define LED_AF   0xC02200AC

Definiert in Zeile 6 der Datei lib.c.

Dokumentation der Funktionen

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

Definiert in Zeile 29 der Datei lib.c.

29  {
30 
31  static char led_table[2]={0,9};
32  _LEDDrive(led_table[led%sizeof(led_table)], state<=1 ? !state : state);
33 }
void debug_led ( int  state)

Definiert in Zeile 24 der Datei lib.c.

24  {
25 
26  *(int*)LED_AC=state ? 0x46 : 0x44;
27 }
void load_chdk_palette ( )

Definiert in Zeile 105 der Datei lib.c.

105  {
106 
107  extern int active_palette_buffer;
108  // Only load for the standard record and playback palettes
109  if ((active_palette_buffer == 0) || (active_palette_buffer == 4))
110  {
111  int *pal = (int*)vid_get_bitmap_active_palette();
112  if (pal && pal[CHDK_COLOR_BASE+0] != 0x33ADF62)
113  {
114  pal[CHDK_COLOR_BASE+0] = 0x33ADF62; // Red
115  pal[CHDK_COLOR_BASE+1] = 0x326EA40; // Dark Red
116  pal[CHDK_COLOR_BASE+2] = 0x34CD57F; // Light Red
117  pal[CHDK_COLOR_BASE+3] = 0x373BFAE; // Green
118  pal[CHDK_COLOR_BASE+4] = 0x34BD6CA; // Dark Green
119  pal[CHDK_COLOR_BASE+5] = 0x395AB95; // Light Green
120  pal[CHDK_COLOR_BASE+6] = 0x34766F0; // Blue
121  pal[CHDK_COLOR_BASE+7] = 0x31250F3; // Dark Blue
122  pal[CHDK_COLOR_BASE+8] = 0x37F408F; // Cyan
123  pal[CHDK_COLOR_BASE+9] = 0x3512D5B; // Magenta
124  pal[CHDK_COLOR_BASE+10] = 0x3A9A917; // Yellow
125  pal[CHDK_COLOR_BASE+11] = 0x3819137; // Dark Yellow
126  pal[CHDK_COLOR_BASE+12] = 0x3DED115; // Light Yellow
127 
128  extern char palette_control;
129  palette_control = 1;
131  }
132  }
133 }
void shutdown ( )

Definiert in Zeile 8 der Datei lib.c.

8  {
9 
10  volatile long *p = (void*)LED_AF;
11 
12  asm(
13  "MRS R1, CPSR\n"
14  "AND R0, R1, #0x80\n"
15  "ORR R1, R1, #0x80\n"
16  "MSR CPSR_cf, R1\n"
17  :::"r1","r0");
18 
19  *p = 0x44; // power off.
20 
21  while(1);
22 }
void vid_bitmap_refresh ( )

Definiert in Zeile 70 der Datei lib.c.

70  {
71 
72  extern int full_screen_refresh;
73  extern void _ScreenLock();
74  extern void _ScreenUnlock();
75 
76  full_screen_refresh |= 3;
77  _ScreenLock();
78  _ScreenUnlock();
79 }
void* vid_get_bitmap_active_buffer ( )

Definiert in Zeile 145 der Datei lib.c.

146 {
147 
148  return (void*)(*(int*)(0x560C+0x18)); // found @ FF912D5C: A2200 100b & 100d
149 }
void* vid_get_bitmap_active_palette ( )

Definiert in Zeile 95 der Datei lib.c.

95  {
96  extern int active_palette_buffer;
97  extern char* palette_buffer[];
98  void* p = palette_buffer[active_palette_buffer];
99  // Don't add offset if value is 0
100  if (p) p += 8;
101  return p;
102 }
int vid_get_palette_size ( )

Definiert in Zeile 140 der Datei lib.c.

140  {
141 
142  return 256 * 4;
143 }
int vid_get_palette_type ( )

Definiert in Zeile 135 der Datei lib.c.

135  {
136 
137  return 3;
138 }
void* vid_get_viewport_fb ( )

Definiert in Zeile 49 der Datei lib.c.

50 {
51  // Return first viewport buffer - for case when vid_get_viewport_live_fb not defined
52  return viewport_buffers[0];
53 }
void* vid_get_viewport_fb_d ( )

Definiert in Zeile 64 der Datei lib.c.

65 {
66  extern char *viewport_fb_d;
67  return viewport_fb_d;
68 }
long vid_get_viewport_height ( )

Definiert in Zeile 40 der Datei lib.c.

41 {
42  return 240;
43 }
void* vid_get_viewport_live_fb ( )

Definiert in Zeile 55 der Datei lib.c.

56 {
57  if (MODE_IS_VIDEO(mode_get()))
58  return viewport_buffers[0]; // Video only seems to use the first viewport buffer.
59 
60  // Hopefully return the most recently used viewport buffer so that motion detect, histogram, zebra and edge overly are using current image data
62 }
int vid_get_viewport_width ( )

Definiert in Zeile 35 der Datei lib.c.

36 {
37  return 360;
38 }

Variablen-Dokumentation

char active_viewport_buffer
void* viewport_buffers[]