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] = {(char*)0x5fd87300, (void*)0x5fd08a00}
 

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

293 {
294  extern char jpeg_count_str[];
295  return jpeg_count_str;
296 }
void camera_set_led ( int  led,
int  state,
__attribute__((unused)) int  bright 
)

Definiert in Zeile 43 der Datei lib.c.

43  {
44  static char led_table[2]={0,4};
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.

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

Definiert in Zeile 52 der Datei lib.c.

52  {
53  return 0xe5; // @fc066f98 GetParameterData
54 }
char* hook_raw_image_addr ( void  )

Definiert in Zeile 66 der Datei lib.c.

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

Definiert in Zeile 60 der Datei lib.c.

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

Definiert in Zeile 56 der Datei lib.c.

56  {
57  _PostLogicalEventToUI(0x872, 1); //RotateJogDialRight
58 }
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 48 der Datei lib.c.

48  {
49  _PostLogicalEventForNotPowerType(0x1005,0); // PressOffButton
50 }
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 206 der Datei lib.c.

206  {
208 }
void* vid_get_bitmap_fb ( )

OSD screen

Definiert in Zeile 190 der Datei lib.c.

190  {
191  return (void *)0x5ff02e00; // from sub_fc1632ba, alt 5fe05c00, based on searching for "BmpDDev.c" similar to g7x
192 }
void* vid_get_opacity_active_buffer ( )

Definiert in Zeile 215 der Datei lib.c.

215  {
216  return (void *)opacity_buffer[active_bitmap_buffer&1];
217 }
int vid_get_viewport_buffer_width_proper ( )

Definiert in Zeile 203 der Datei lib.c.

203 { return vp_full_buf_width; }
int vid_get_viewport_byte_width ( )

Definiert in Zeile 194 der Datei lib.c.

194  {
195  return vp_full_buf_width*2;
196 }
int vid_get_viewport_display_xoffset ( )

Definiert in Zeile 157 der Datei lib.c.

157  {
159  {
160  return 0;
161  }
162  // video, ignore still res propcase
164  return 0; //neither 4:3 nor 16:9 video have x offset
165  }
167 }
int vid_get_viewport_display_xoffset_proper ( )

Definiert in Zeile 199 der Datei lib.c.

int vid_get_viewport_display_yoffset ( )

Definiert in Zeile 172 der Datei lib.c.

172  {
174  {
175  return 0;
176  }
177  // video, ignore still res propcase
180  return 0; // 4:3 video, no Y offset
181  } else {
182  return 60; // 16:9 video
183  }
184  }
186 }
int vid_get_viewport_display_yoffset_proper ( )

Definiert in Zeile 200 der Datei lib.c.

void* vid_get_viewport_fb ( )

IMG viewport in 'rec' mode

Definiert in Zeile 88 der Datei lib.c.

88  {
89  return (void*)0x42cafe00; // "first" viewport adr, "VRAM Address : %p", contains d6 uyvy
90 }
void* vid_get_viewport_fb_d ( )

IMG viewport in 'play' mode

Definiert in Zeile 94 der Datei lib.c.

94  {
95  // based on suggestion from 62ndidiot in https://chdk.setepontos.com/index.php?topic=12532.msg129914#msg129914
96  extern void *current_fb_d;
97  return current_fb_d;
98 }
int vid_get_viewport_fullscreen_height ( )

Definiert in Zeile 202 der Datei lib.c.

202 { return vp_full_height; }
int vid_get_viewport_fullscreen_width ( )

Definiert in Zeile 201 der Datei lib.c.

201 { return vp_full_width; }
long vid_get_viewport_height ( )

Definiert in Zeile 139 der Datei lib.c.

139  {
140  extern int _GetVRAMVPixelsSize();
142  {
143  return vp_full_height;
144  }
145 // TODO: currently using actual height rather than 240 used on pre d6
146  return _GetVRAMVPixelsSize();
147 }
void* vid_get_viewport_live_fb ( )

Definiert in Zeile 110 der Datei lib.c.

111 {
112 // current_viewport_buffer assummed not most recent, like g7x
113  int i;
114  for(i=0;i<4;i++) {
115  if(current_viewport_buffer == viewport_buffers[i]) {
116  return viewport_buffers[(i+1)&3];
117  }
118  }
119  return 0;
120 }
int vid_get_viewport_type ( )

Definiert in Zeile 204 der Datei lib.c.

204 { return LV_FB_YUV8B; }
int vid_get_viewport_width ( )

Definiert in Zeile 128 der Datei lib.c.

128  {
129  extern int _GetVRAMHPixelsSize();
131  {
132  return vp_full_width;
133  }
134 // TODO: currently using actual width rather than half width used on pre d6
135 // pixel format is uyvy (16bpp)
136  return _GetVRAMHPixelsSize();
137 }
int vid_get_viewport_yoffset ( )

Definiert in Zeile 149 der Datei lib.c.

149  {
150  // this seems to be always 0, buffer always begins with actual display data (widescreen or not)
151  return 0;
152 }

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] = {(char*)0x5fd87300, (void*)0x5fd08a00}

Definiert in Zeile 212 der Datei lib.c.

void* viewport_buffers[]
int vp_full_buf_width = 640
static

Definiert in Zeile 125 der Datei lib.c.

int vp_full_height = 480
static

Definiert in Zeile 126 der Datei lib.c.

int vp_full_width = 640
static

Definiert in Zeile 124 der Datei lib.c.

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

Definiert in Zeile 155 der Datei lib.c.

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

Definiert in Zeile 170 der Datei lib.c.