CHDK_DE Vorschauversion  Trunk Rev. 6014
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
lib.c-Dateireferenz
#include "platform.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 * vid_get_viewport_fb ()
 
void * vid_get_viewport_live_fb ()
 
int vid_get_viewport_yscale ()
 
int vid_get_viewport_width ()
 
int vid_get_viewport_xoffset ()
 
long vid_get_viewport_height ()
 
int vid_get_viewport_yoffset ()
 
int vid_get_viewport_display_xoffset ()
 
int vid_get_viewport_display_xoffset_proper ()
 
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 ()
 

Variablen

char active_viewport_buffer
 
void * viewport_buffers []
 
int active_bitmap_buffer
 
char * bitmap_buffer []
 

Makro-Dokumentation

#define LED_PR   0xC0220130

Definiert in Zeile 31 der Datei lib.c.

Dokumentation der Funktionen

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

Definiert in Zeile 38 der Datei lib.c.

38  {
39  static char led_table[2]={0,9};
40  _LEDDrive(led_table[led%sizeof(led_table)], state<=1 ? !state : state);
41 }
void debug_led ( int  state)

Definiert in Zeile 33 der Datei lib.c.

34 {
35  *(int*)LED_PR=state ? 0x46 : 0x44;
36 }
int get_flash_params_count ( void  )

Definiert in Zeile 43 der Datei lib.c.

43  {
44  return 0x9F; //@FF1B4C5C in GetParameterData
45 }
void shutdown ( )

Definiert in Zeile 15 der Datei lib.c.

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

Definiert in Zeile 4 der Datei lib.c.

5 {
6  extern int full_screen_refresh;
7  extern void _ScreenLock(); // wrapper function for screen lock
8  extern void _ScreenUnlock(); // wrapper function for screen unlock
9 
10  full_screen_refresh |= 3; //found in ScreenUnlock
11  _ScreenLock();
12  _ScreenUnlock();
13 }
int vid_get_aspect_ratio ( )

Definiert in Zeile 131 der Datei lib.c.

131 { return 1; }
void* vid_get_bitmap_active_buffer ( )

Definiert in Zeile 137 der Datei lib.c.

138 {
140 }
void* vid_get_bitmap_active_palette ( )

Definiert in Zeile 142 der Datei lib.c.

143 {
144  extern int active_palette_buffer;
145  extern char* palette_buffer[];
146  void* p = palette_buffer[active_palette_buffer];
147  // Don't add offset if value is 0
148  if (p) p += 8;
149  return p;
150 }
int vid_get_palette_size ( )

Definiert in Zeile 130 der Datei lib.c.

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

Definiert in Zeile 129 der Datei lib.c.

129 { return 3; }
int vid_get_viewport_buffer_width_proper ( )

Definiert in Zeile 127 der Datei lib.c.

127 { return 960; }
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
115  {
116  // viewport width offset table for each image size
117  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1
118  static long vp_w[5] = { 0, 0, 0, 0 }; // should all be even values for edge overlay
120  }
121 }
int vid_get_viewport_display_xoffset_proper ( )

Definiert in Zeile 125 der Datei lib.c.

125 { return vid_get_viewport_display_xoffset() * 2; }
void* vid_get_viewport_fb ( )

Definiert in Zeile 54 der Datei lib.c.

55 {
56  // Return first viewport buffer - for case when vid_get_viewport_live_fb not defined
57  // Offset the return value because the viewport is left justified instead of centered on this camera
58  return viewport_buffers[0];
59 }
int vid_get_viewport_fullscreen_height ( )

Definiert in Zeile 128 der Datei lib.c.

128 { return 480; }
long vid_get_viewport_height ( )

Definiert in Zeile 92 der Datei lib.c.

93 {
94  // viewport height table for each image size
95  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1
96  static long vp_h[5] = { 240, 180, 214, 240 };
98 }
int vid_get_viewport_height_proper ( )

Definiert in Zeile 126 der Datei lib.c.

126 { return 480; }
void* vid_get_viewport_live_fb ( )

Definiert in Zeile 61 der Datei lib.c.

62 {
64  return viewport_buffers[0]; // Video only seems to use the first viewport buffer.
65 
66  // Hopefully return the most recently used viewport buffer so that motion detect, histogram, zebra and edge overly are using current image data
67  // Offset the return value because the viewport is left justified instead of centered on this camera
69 }
int vid_get_viewport_width ( )

Definiert in Zeile 76 der Datei lib.c.

77 {
78  // viewport width table for each image size
79  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1
80  static long vp_w[5] = { 360, 360, 360, 272 };
82 }
int vid_get_viewport_xoffset ( )

Definiert in Zeile 84 der Datei lib.c.

85 {
86  // viewport width offset table for each image size
87  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1
88  static long vp_w[5] = { 0, 0, 0, 44 }; // should all be even values for edge overlay
90 }
int vid_get_viewport_yoffset ( )

Definiert in Zeile 100 der Datei lib.c.

101 {
102  // viewport height offset table for each image size
103  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1
104  static long vp_h[5] = { 0, 30, 13, 0 };
106 }
int vid_get_viewport_yscale ( )

Definiert in Zeile 72 der Datei lib.c.

72  {
73  return 2; // ixus230/ixus3310 viewport is 480 pixels high
74 }

Variablen-Dokumentation

int active_bitmap_buffer
char active_viewport_buffer
char* bitmap_buffer[]

Definiert in Zeile 84 der Datei lib.c.

void* viewport_buffers[]