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 ()
 
int vid_get_viewport_type ()
 
void * vid_get_bitmap_fb ()
 
int vid_get_viewport_display_xoffset_proper ()
 
int vid_get_viewport_display_yoffset_proper ()
 
int vid_get_viewport_buffer_width_proper ()
 
int vid_get_viewport_fullscreen_width ()
 
int vid_get_viewport_byte_width ()
 
int vid_get_viewport_fullscreen_height ()
 
int vid_get_aspect_ratio ()
 
void * vid_get_bitmap_active_buffer ()
 
void * vid_get_opacity_active_buffer ()
 
void * vid_get_bitmap_active_palette ()
 

Variablen

int active_raw_buffer
 
char * raw_buffers []
 
char * raw_buffers_canon_raw []
 
char * raw_buffers_jpeg []
 
char active_viewport_buffer
 
void * viewport_buffers []
 
void * current_viewport_buffer
 
static long vp_xo [5] = { 40, 0, 0, 120, 168 }
 
int active_bitmap_buffer
 
char * bitmap_buffer []
 
volatile char * opacity_buffer [2] = {(char*)0x41741000, (void*)0x41801000}
 

Makro-Dokumentation

#define LED_PR   0xd20b0994

Definiert in Zeile 43 der Datei lib.c.

Dokumentation der Funktionen

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

Definiert in Zeile 52 der Datei lib.c.

52  {
53  static char led_table[2]={0,4};
54  _LEDDrive(led_table[led%sizeof(led_table)], state<=1 ? !state : state);
55 }
void debug_led ( int  state)

Definiert in Zeile 45 der Datei lib.c.

45  {
46  volatile long *p = (void*)LED_PR;
47  *p = ((state) ? 0x4d0002 : 0x4c0003);
48 }
int get_flash_params_count ( void  )

Definiert in Zeile 63 der Datei lib.c.

63  {
64  return 0x91;
65 }
char* hook_raw_image_addr ( void  )

Definiert in Zeile 80 der Datei lib.c.

81 {
82 // return raw_buffers[(active_raw_buffer&3)];
83  // observed values 0-2, 3 would index something that doesn't look like a raw fb in the jpeg case
84  int i=active_raw_buffer&3;
85  if(i>2) i=0;
86  return raw_buffers[i];
87  // TODO most scene modes seem to use different addresse(s)
88 }
void JogDial_CCW ( void  )

Definiert in Zeile 71 der Datei lib.c.

71  {
72  _PostLogicalEventToUI(0x873, 1); //RotateJogDialLeft
73 }
void JogDial_CW ( void  )

Definiert in Zeile 67 der Datei lib.c.

67  {
68  _PostLogicalEventToUI(0x872, 1); //RotateJogDialRight
69 }
void shutdown ( )

Definiert in Zeile 25 der Datei lib.c.

25  {
26 //***TODO***
27 /*
28  volatile long *p = (void*)0xC022001C;
29 
30  asm(
31  "MRS R1, CPSR\n"
32  "AND R0, R1, #0x80\n"
33  "ORR R1, R1, #0x80\n"
34  "MSR CPSR_cf, R1\n"
35  :::"r1","r0"
36  );
37 
38  *p = 0x44; // power off.
39 */
40  while(1) _SleepTask(500);
41 }
void shutdown_soft ( )

Definiert in Zeile 57 der Datei lib.c.

57  {
58 // *(int*)0xd20b0810 = 0x4d0002; // Orange Led = on
59 
61 }
void vid_bitmap_refresh ( )

Definiert in Zeile 5 der Datei lib.c.

5  {
6  // extern int full_screen_refresh;
7  // extern void _ScreenUnlock();
8  // extern void _ScreenLock();
9  // extern void _displaybusyonscreen();
10  // extern void _undisplaybusyonscreen();
11 
12 
13  // clears perfectly but blinks and is asynchronous
14  // _displaybusyonscreen();
15  // _undisplaybusyonscreen();
16 
17  // https://chdk.setepontos.com/index.php?topic=12788.msg133958#msg133958
18  extern void _transfer_src_overlay(int);
19 // works in most cases but can cause "ghosting" in auto mode when canon UI constantly updates
20 // _transfer_src_overlay(active_bitmap_buffer);
21  _transfer_src_overlay(0);
22  _transfer_src_overlay(1);
23 }
int vid_get_aspect_ratio ( )

Definiert in Zeile 213 der Datei lib.c.

213 { return LV_ASPECT_3_2; }
void* vid_get_bitmap_active_buffer ( )

Definiert in Zeile 221 der Datei lib.c.

221  {
223 }
void* vid_get_bitmap_active_palette ( )

Definiert in Zeile 230 der Datei lib.c.

230  {
231  return (void*)0x8000; // just to return something valid, no palette needed on this cam
232 }
void* vid_get_bitmap_fb ( )

OSD screen

Definiert in Zeile 200 der Datei lib.c.

200  {
201  // Return first bitmap buffer address
202  return bitmap_buffer[0];
203 }
void* vid_get_opacity_active_buffer ( )

Definiert in Zeile 225 der Datei lib.c.

225  {
226  return (void *)opacity_buffer[active_bitmap_buffer&1];
227 }
int vid_get_viewport_buffer_width_proper ( )

Definiert in Zeile 208 der Datei lib.c.

208 { return camera_screen.buffer_width ; } //(*(int*)(0x00053CBC) );
int vid_get_viewport_byte_width ( )

Definiert in Zeile 210 der Datei lib.c.

210 { return (camera_screen.buffer_width * 2); }
int vid_get_viewport_display_xoffset ( )

Definiert in Zeile 154 der Datei lib.c.

154  {
156  {
157  return 0;
158  }
159  // video, ignore still res propcase
162  return 40;// 4:3 video
163  } else {
164  return 0; // 16:9 video, no x offset
165  }
166  }
168 }
int vid_get_viewport_display_xoffset_proper ( )

Definiert in Zeile 206 der Datei lib.c.

int vid_get_viewport_display_yoffset ( )

Definiert in Zeile 170 der Datei lib.c.

170  {
172  {
173  return 0;
174  }
175  // video, ignore still res propcase
178  return 0; // 4:3 video, no Y offset
179  } else {
180  return 36; // 16:9 video
181  }
182  }
184  {
185  return 36;
186  }
187  return 0;
188 }
int vid_get_viewport_display_yoffset_proper ( )

Definiert in Zeile 207 der Datei lib.c.

void* vid_get_viewport_fb ( )

IMG viewport in 'rec' mode

Definiert in Zeile 98 der Datei lib.c.

98  {
99  // Return first viewport buffer - for case when vid_get_viewport_live_fb not defined
100  //return (void*)0x43115100; // uyvy buffers with signed(?) chroma components
101  return (void*)0x4367AF00; // 0x43A6F700 0x4b25fc00; uyvy buffers (more than 4), pixel format compatible with earlier DIGIC uyvy
102 }
void* vid_get_viewport_fb_d ( )

IMG viewport in 'play' mode

Definiert in Zeile 104 der Datei lib.c.

104  {
105  // based on suggestion from 62ndidiot in https://chdk.setepontos.com/index.php?topic=12532.msg129914#msg129914
106  extern void *current_fb_d;
107  return current_fb_d;
108 }
int vid_get_viewport_fullscreen_height ( )

Definiert in Zeile 212 der Datei lib.c.

212 { return 480; }
int vid_get_viewport_fullscreen_width ( )

Definiert in Zeile 209 der Datei lib.c.

209 { return camera_screen.width; }
long vid_get_viewport_height ( )

Definiert in Zeile 137 der Datei lib.c.

137  {
138  extern int _GetVRAMVPixelsSize();
140  {
141  return 480;
142  }
143  return _GetVRAMVPixelsSize();
144 }
void* vid_get_viewport_live_fb ( )

Definiert in Zeile 113 der Datei lib.c.

114 {
115 // current_viewport_buffer doesn't seem to be most recent
116  int i;
117  for(i=0;i<4;i++) {
118  if(current_viewport_buffer == viewport_buffers[i]) {
119  return viewport_buffers[(i+1)&3];
120  }
121  }
122  return 0;
123 // return (void*)0x4367AF00;
124 }
int vid_get_viewport_type ( )

Definiert in Zeile 193 der Datei lib.c.

193  {
194 // if (camera_info.state.mode_play)
195  return LV_FB_YUV8B;
196 // return LV_FB_YUV8C;
197 }
int vid_get_viewport_width ( )

Definiert in Zeile 126 der Datei lib.c.

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

Definiert in Zeile 146 der Datei lib.c.

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

Variablen-Dokumentation

int active_bitmap_buffer
int active_raw_buffer
char active_viewport_buffer
char* bitmap_buffer[]

Definiert in Zeile 84 der Datei lib.c.

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

Definiert in Zeile 219 der Datei lib.c.

char* raw_buffers[]
char* raw_buffers_canon_raw[]
char* raw_buffers_jpeg[]
void* viewport_buffers[]

Definiert in Zeile 110 der Datei lib.c.

long vp_xo[5] = { 40, 0, 0, 120, 168 }
static

Definiert in Zeile 152 der Datei lib.c.