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_GR   0xC0220014
 
#define LED_OR   0xC0220010
 
#define LED_AF   0xC022000C
 

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 ()
 
int vid_get_viewport_xoffset ()
 
int vid_get_viewport_yoffset ()
 
void * vid_get_viewport_fb ()
 
void * vid_get_viewport_live_fb ()
 
int vid_get_palette_type ()
 
int vid_get_palette_size ()
 
void * vid_get_bitmap_active_palette ()
 
void load_chdk_palette ()
 

Variablen

char active_viewport_buffer
 
void * viewport_buffers []
 

Makro-Dokumentation

#define LED_AF   0xC022000C

Definiert in Zeile 7 der Datei lib.c.

#define LED_GR   0xC0220014

Definiert in Zeile 5 der Datei lib.c.

#define LED_OR   0xC0220010

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

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

Definiert in Zeile 25 der Datei lib.c.

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

Definiert in Zeile 106 der Datei lib.c.

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

Definiert in Zeile 9 der Datei lib.c.

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

Definiert in Zeile 97 der Datei lib.c.

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

Definiert in Zeile 93 der Datei lib.c.

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

Definiert in Zeile 92 der Datei lib.c.

92 { return 3; }
void* vid_get_viewport_fb ( )

Definiert in Zeile 75 der Datei lib.c.

76 {
77  // Return first viewport buffer - for case when vid_get_viewport_live_fb not defined
78  return viewport_buffers[0];
79 }
long vid_get_viewport_height ( )

Definiert in Zeile 45 der Datei lib.c.

45  {
46 
47  // viewport height table for each image size
48  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1
49  // static long vp_h[4] = { 240, 240, 240, 240 };
50  // return vp_h[shooting_get_prop(PROPCASE_ASPECT_RATIO)];
51  return( 240 );
52 }
void* vid_get_viewport_live_fb ( )

Definiert in Zeile 81 der Datei lib.c.

82 {
83  if (MODE_IS_VIDEO(mode_get()))
84  return viewport_buffers[0]; // Video only seems to use the first viewport buffer.
85 
86  // Hopefully return the most recently used viewport buffer so that motion detect, histogram, zebra and edge overly are using current image data
88 }
int vid_get_viewport_width ( )

Definiert in Zeile 36 der Datei lib.c.

36  {
37 
38  // viewport width table for each image size
39  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1
40  //static long vp_w[4] = { 360, 360, 360, 360 };
41  //return vp_w[shooting_get_prop(PROPCASE_ASPECT_RATIO)];
42  return(360);
43 }
int vid_get_viewport_xoffset ( )

Definiert in Zeile 54 der Datei lib.c.

54  {
55 
56  // viewport width offset table for each image size
57  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1
58  //static long vp_w[4] = { 0, 0, 0, 0 }; // should all be even values for edge overlay
59  //return vp_w[shooting_get_prop(PROPCASE_ASPECT_RATIO)];
60  return( 0 ) ;
61 }
int vid_get_viewport_yoffset ( )

Definiert in Zeile 63 der Datei lib.c.

63  {
64 
65  // viewport height offset table for each image size
66  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1
67  // static long vp_h[4] = { 0, 0, 0, 0 };
68  // return vp_h[shooting_get_prop(PROPCASE_ASPECT_RATIO)];
69  return ( 0 ) ;
70 }

Variablen-Dokumentation

char active_viewport_buffer
void * viewport_buffers

Definiert in Zeile 110 der Datei lib.c.