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)
 
void shutdown_soft ()
 
int get_flash_params_count (void)
 
void JogDial_CW (void)
 
void JogDial_CCW (void)
 
char * hook_raw_image_addr ()
 
void * vid_get_viewport_fb ()
 
void * vid_get_viewport_fb_d ()
 
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_byte_width ()
 
int vid_get_viewport_display_xoffset_proper ()
 
int vid_get_viewport_display_yoffset_proper ()
 
int vid_get_viewport_fullscreen_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 ()
 
char * camera_jpeg_count_str ()
 

Variablen

int active_bitmap_buffer
 
char * current_raw_addr
 
void * viewport_buffers []
 
void * current_viewport_buffer
 
static int vp_full_width = 640
 
static int vp_full_buf_width = 640
 
static int vp_full_height = 480
 
static long vp_xo [4] = { 0, 0, 0, 80 }
 
static long vp_yo [4] = { 0, 60, 28, 0 }
 
char * bitmap_buffer []
 
volatile char * opacity_buffer [2] = {(void*)0x5FC40000, (char*)0x5FB80000}
 

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

287 {
288  extern char jpeg_count_str[];
289  return jpeg_count_str;
290 }
void camera_set_led ( int  led,
int  state,
__attribute__((unused)) int  bright 
)

Definiert in Zeile 44 der Datei lib.c.

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

Definiert in Zeile 36 der Datei lib.c.

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

Definiert in Zeile 53 der Datei lib.c.

53  {
54  return 0x116; // @fc06b012 GetParameterData
55 }
char* hook_raw_image_addr ( void  )

Definiert in Zeile 67 der Datei lib.c.

68 {
69  if(current_raw_addr) {
70  return current_raw_addr;
71  }
72  // TODO fallback if current_raw_addr not set. Would be better to fail, but calling code doesn't check
73  return (char *)0x43ec0040; // CRAW BUF = *fc52e180
74 }
void JogDial_CCW ( void  )

Definiert in Zeile 61 der Datei lib.c.

61  {
62  _PostLogicalEventToUI(0x873, 1); //RotateJogDialLeft
63 }
void JogDial_CW ( void  )

Definiert in Zeile 57 der Datei lib.c.

57  {
58  _PostLogicalEventToUI(0x872, 1); //RotateJogDialRight
59 }
void shutdown ( )

Definiert in Zeile 16 der Datei lib.c.

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

Definiert in Zeile 49 der Datei lib.c.

49  {
50  _PostLogicalEventForNotPowerType(0x1005,0); // PressOffButton
51 }
void vid_bitmap_refresh ( )

Definiert in Zeile 7 der Datei lib.c.

7  {
8  // https://chdk.setepontos.com/index.php?topic=12788.msg133958#msg133958
9  extern void _transfer_src_overlay(int);
10 // works in most cases but can cause "ghosting" in auto mode when canon UI constantly updates
11 // _transfer_src_overlay(active_bitmap_buffer);
12  _transfer_src_overlay(0);
13  _transfer_src_overlay(1);
14 }
void* vid_get_bitmap_active_buffer ( )

Definiert in Zeile 201 der Datei lib.c.

201  {
203 }
void* vid_get_bitmap_fb ( )

OSD screen

Definiert in Zeile 184 der Datei lib.c.

184  {
185  return (void *)0x5fe80000; // from sub_fc0a3ed2, alt 0x5fd00000, based on caller fc348732 == sx710 fc309cd4
186  // called from GUISrv_StartGUISystem_FW
187 }
void* vid_get_opacity_active_buffer ( )

Definiert in Zeile 210 der Datei lib.c.

210  {
211  return (void *)opacity_buffer[active_bitmap_buffer&1];
212 }
int vid_get_viewport_buffer_width_proper ( )

Definiert in Zeile 198 der Datei lib.c.

198 { return vp_full_buf_width; }
int vid_get_viewport_byte_width ( )

Definiert in Zeile 189 der Datei lib.c.

189  {
190  return vp_full_buf_width*2;
191 }
int vid_get_viewport_display_xoffset ( )

Definiert in Zeile 151 der Datei lib.c.

151  {
153  {
154  return 0;
155  }
156  // video, ignore still res propcase
158  return 0; //neither 4:3 nor 16:9 video have x offset
159  }
161 }
int vid_get_viewport_display_xoffset_proper ( )

Definiert in Zeile 194 der Datei lib.c.

int vid_get_viewport_display_yoffset ( )

Definiert in Zeile 166 der Datei lib.c.

166  {
168  {
169  return 0;
170  }
171  // video, ignore still res propcase
174  return 0; // 4:3 video, no Y offset
175  } else {
176  return 60; // 16:9 video
177  }
178  }
180 }
int vid_get_viewport_display_yoffset_proper ( )

Definiert in Zeile 195 der Datei lib.c.

void* vid_get_viewport_fb ( )

IMG viewport in 'rec' mode

Definiert in Zeile 84 der Datei lib.c.

84  {
85  return (void*)0x42e78000; // "first" viewport adr, "VRAM Address : %p", contains d6 uyvy
86 }
void* vid_get_viewport_fb_d ( )

IMG viewport in 'play' mode

Definiert in Zeile 90 der Datei lib.c.

90  {
91  extern void *current_fb_d;
92  return current_fb_d;
93 }
int vid_get_viewport_fullscreen_height ( )

Definiert in Zeile 197 der Datei lib.c.

197 { return vp_full_height; }
int vid_get_viewport_fullscreen_width ( )

Definiert in Zeile 196 der Datei lib.c.

196 { return vp_full_width; }
long vid_get_viewport_height ( )

Definiert in Zeile 134 der Datei lib.c.

134  {
135  extern int _GetVRAMVPixelsSize();
137  {
138  return vp_full_height;
139  }
140 // NOTE: currently using actual height rather than 240 used on pre d6
141  return _GetVRAMVPixelsSize();
142 }
void* vid_get_viewport_live_fb ( )

Definiert in Zeile 105 der Datei lib.c.

106 {
107 // current_viewport_buffer assummed not most recent, like g7x
108  int i;
109  for(i=0;i<4;i++) {
110  if(current_viewport_buffer == viewport_buffers[i]) {
111  return viewport_buffers[(i+1)&3];
112  }
113  }
114  return 0;
115 }
int vid_get_viewport_type ( )

Definiert in Zeile 199 der Datei lib.c.

199 { return LV_FB_YUV8B; }
int vid_get_viewport_width ( )

Definiert in Zeile 123 der Datei lib.c.

123  {
124  extern int _GetVRAMHPixelsSize();
126  {
127  return vp_full_width;
128  }
129 // NOTE: currently using actual width rather than half width used on pre d6
130 // pixel format is uyvy (16bpp)
131  return _GetVRAMHPixelsSize();
132 }
int vid_get_viewport_yoffset ( )

Definiert in Zeile 144 der Datei lib.c.

144  {
145  // this seems to be always 0, buffer always begins with actual display data (widescreen or not)
146  return 0;
147 }

Variablen-Dokumentation

int active_bitmap_buffer
char* bitmap_buffer[]

Definiert in Zeile 84 der Datei lib.c.

char* current_raw_addr

Definiert in Zeile 13 der Datei capt_seq.c.

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

Definiert in Zeile 208 der Datei lib.c.

void* viewport_buffers[]
int vp_full_buf_width = 640
static

Definiert in Zeile 120 der Datei lib.c.

int vp_full_height = 480
static

Definiert in Zeile 121 der Datei lib.c.

int vp_full_width = 640
static

Definiert in Zeile 119 der Datei lib.c.

long vp_xo[4] = { 0, 0, 0, 80 }
static

Definiert in Zeile 149 der Datei lib.c.

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

Definiert in Zeile 164 der Datei lib.c.