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 "live_view.h"
+ Include-Abhängigkeitsdiagramm für lib.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define LED_PR   0xd20b0994
 

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)
 
char * camera_jpeg_count_str ()
 
void JogDial_CW (void)
 
void JogDial_CCW (void)
 
char * hook_raw_image_addr ()
 
char * hook_alt_raw_image_addr ()
 
void * vid_get_viewport_fb_d ()
 
void * vid_get_viewport_fb ()
 
void * vid_get_viewport_live_fb ()
 
int vid_get_viewport_width ()
 
long vid_get_viewport_height ()
 
int vid_get_viewport_yoffset ()
 
int vid_get_viewport_display_xoffset ()
 
int vid_get_viewport_display_yoffset ()
 
void * vid_get_bitmap_fb ()
 
int vid_get_viewport_display_xoffset_proper ()
 
int vid_get_viewport_display_yoffset_proper ()
 
int vid_get_viewport_byte_width ()
 
int vid_get_viewport_fullscreen_height ()
 
int vid_get_viewport_buffer_width_proper ()
 
int vid_get_viewport_type ()
 
void * vid_get_bitmap_active_buffer ()
 
void * vid_get_opacity_active_buffer ()
 

Variablen

int active_raw_buffer
 
char * raw_buffers []
 
char * raw_buffers_jpeg []
 
void * viewport_buffers []
 
void * current_viewport_buffer
 
static long vp_xo [5] = { 0, 0, 0, 80, 128 }
 
static long vp_yo [5] = { 0, 60, 28, 0, 0}
 
int active_bitmap_buffer
 
char * bitmap_buffer []
 
volatile char * opacity_buffer [2] = { (char*)0x41718600, (void*)0x41796f00 }
 

Makro-Dokumentation

#define LED_PR   0xd20b0994

Definiert in Zeile 34 der Datei lib.c.

Dokumentation der Funktionen

char* camera_jpeg_count_str ( )

Definiert in Zeile 53 der Datei lib.c.

54 {
55  extern char jpeg_count_str[];
56  return jpeg_count_str;
57 }
void camera_set_led ( int  led,
int  state,
__attribute__((unused)) int  bright 
)

Definiert in Zeile 42 der Datei lib.c.

43 {
44  static char led_table[4]={0,1,2,4}; // 0=Green OVF, 1=Orange OVF, 2=Power Switch LED, 4=Focus Assist Lamp
45  _LEDDrive(led_table[led%sizeof(led_table)], state<=1 ? !state : state);
46 }
void debug_led ( int  state)

Definiert in Zeile 36 der Datei lib.c.

37 {
38  volatile long *p = (void*)LED_PR;
39  *p = ((state) ? 0x4d0002 : 0x4c0003);
40 }
int get_flash_params_count ( void  )

Definiert in Zeile 48 der Datei lib.c.

49 {
50  return 0x9a; // @0xfc0cce24 - look for compares to #0x4000 in section with PropertyTableManagerCore.c"
51 }
char* hook_alt_raw_image_addr ( )

Definiert in Zeile 93 der Datei lib.c.

94 {
95  int i=0 ; // AUTO mode uses just 1 buffer
98  {
99  int i = (active_raw_buffer&3)-1; // indexes three buffers
100  if (i<0) i=2;
101 
103  {
104  return raw_buffers_jpeg[i]; // canon raw disabled
105  }
106  }
107  return raw_buffers[i];
108 }
char* hook_raw_image_addr ( void  )

Definiert in Zeile 75 der Datei lib.c.

76 {
77  int i=0 ; // AUTO mode uses just 1 buffer
80  {
81  i=active_raw_buffer&3; // indexes three buffers
82 
84  {
85  return raw_buffers_jpeg[i]; // canon raw disabled
86  }
87  }
88  return raw_buffers[i]; // canon raw enabled or AUTO mode
89 
90  // **FIXME** scene mode addresses might not be right
91 }
void JogDial_CCW ( void  )

Definiert in Zeile 64 der Datei lib.c.

64  {
65  _PostLogicalEventToUI(0x873, 1); //RotateJogDialLeft
66 }
void JogDial_CW ( void  )

Definiert in Zeile 59 der Datei lib.c.

60 {
61  _PostLogicalEventToUI(0x872, 1); //RotateJogDialRight
62 }
void shutdown ( )

Definiert in Zeile 27 der Datei lib.c.

28 {
29  // _PostLogicalEventForNotPowerType(0x1005,0); // Hack : Press the Off Button and wait
30  // while(1) msleep(100) ;
31  while(1);
32 }
void vid_bitmap_refresh ( )

Definiert in Zeile 5 der Datei lib.c.

6 {
7  // Method 1:
8  // extern void _displaybusyonscreen();
9  // extern void _undisplaybusyonscreen();
10  // _displaybusyonscreen(); // clears perfectly but blinks and is asynchronous - see SX280hs for more code options
11  // _undisplaybusyonscreen();
12 
13  // Method 2:
14  // extern int active_bitmap_buffer;
15  // extern void _transfer_src_overlay(int);
16  // _transfer_src_overlay(active_bitmap_buffer);
17 
18  // Method 3:
19  // https://chdk.setepontos.com/index.php?topic=12788.msg133958#msg133958
20  // works in most cases but can cause "ghosting" in auto mode when canon UI constantly updates;
21  extern void _transfer_src_overlay(int);
22  _transfer_src_overlay(0);
23  _transfer_src_overlay(1);
24 
25 }
void* vid_get_bitmap_active_buffer ( )

Definiert in Zeile 210 der Datei lib.c.

211 {
213 }
void* vid_get_bitmap_fb ( )

Definiert in Zeile 196 der Datei lib.c.

197 {
198  return bitmap_buffer[0];
199  //return (void *)0x41421000; // G16 value based on g7x port
200 }
void* vid_get_opacity_active_buffer ( )

Definiert in Zeile 219 der Datei lib.c.

220 {
221  return (void *)opacity_buffer[active_bitmap_buffer&1];
222 }
int vid_get_viewport_buffer_width_proper ( )

Definiert in Zeile 207 der Datei lib.c.

207 { return camera_screen.buffer_width; }
int vid_get_viewport_byte_width ( )

Definiert in Zeile 205 der Datei lib.c.

205 { return (640 * 2); }
int vid_get_viewport_display_xoffset ( )

Definiert in Zeile 167 der Datei lib.c.

168 {
170  {
171  return 0;
172  }
174  {
175  return 0;
176  }
178 }
int vid_get_viewport_display_xoffset_proper ( )

Definiert in Zeile 203 der Datei lib.c.

int vid_get_viewport_display_yoffset ( )

Definiert in Zeile 180 der Datei lib.c.

181 {
183  {
184  return 0;
185  }
187  {
188  return 0;
189  }
191 }
int vid_get_viewport_display_yoffset_proper ( )

Definiert in Zeile 204 der Datei lib.c.

void* vid_get_viewport_fb ( )

Definiert in Zeile 122 der Datei lib.c.

123 {
124  return viewport_buffers[0]; // ptr in fc571014: (i.e.viewport_buffer[0]) -> 0x43115100
125  //return (void *) 0x43115100; // "first" viewport adr, found before "VRAM Address : %p", contains d6 uyvy
126 }
void* vid_get_viewport_fb_d ( )

Definiert in Zeile 116 der Datei lib.c.

117 {
118  extern void *current_fb_d;
119  return current_fb_d; // same as sx280, sx60, g7x
120 }
int vid_get_viewport_fullscreen_height ( )

Definiert in Zeile 206 der Datei lib.c.

206 { return camera_screen.height; }
long vid_get_viewport_height ( )

Definiert in Zeile 149 der Datei lib.c.

150 {
151  extern int _GetVRAMVPixelsSize();
153  {
155  }
156  return _GetVRAMVPixelsSize();
157 }
void* vid_get_viewport_live_fb ( )

Definiert in Zeile 128 der Datei lib.c.

129 {
130  int i;
131  for(i=0;i<4;i++) {
132  if(current_viewport_buffer == viewport_buffers[i]) {
133  return viewport_buffers[(i+1)&3];
134  }
135  }
136  return 0;
137 }
int vid_get_viewport_type ( )

Definiert in Zeile 208 der Datei lib.c.

208 { return LV_FB_YUV8B; }
int vid_get_viewport_width ( )

Definiert in Zeile 139 der Datei lib.c.

140 {
141  extern int _GetVRAMHPixelsSize();
143  {
145  }
146  return _GetVRAMHPixelsSize();
147 }
int vid_get_viewport_yoffset ( )

Definiert in Zeile 162 der Datei lib.c.

163 {
164  return 0; // this seems to be always 0, buffer always begins with actual display data (widescreen or not)
165 }

Variablen-Dokumentation

int active_bitmap_buffer
int active_raw_buffer
char* bitmap_buffer[]

Definiert in Zeile 84 der Datei lib.c.

void* current_viewport_buffer
volatile char* opacity_buffer[2] = { (char*)0x41718600, (void*)0x41796f00 }

Definiert in Zeile 217 der Datei lib.c.

char* raw_buffers[]
char* raw_buffers_jpeg[]
void* viewport_buffers[]
long vp_xo[5] = { 0, 0, 0, 80, 128 }
static

Definiert in Zeile 159 der Datei lib.c.

long vp_yo[5] = { 0, 60, 28, 0, 0}
static

Definiert in Zeile 160 der Datei lib.c.