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

gehe zum Quellcode dieser Datei

Datenstrukturen

struct  ximr_layer
 
struct  ximr_context
 

Makrodefinitionen

#define LED_PR   0xd20b0994
 
#define evf_out   (displaytype == 11)
 
#define hdmi_out   ((displaytype == 6) || (displaytype == 7))
 

Funktionen

void vid_bitmap_refresh ()
 
void * vid_get_bitmap_fb ()
 
void * vid_get_bitmap_active_buffer ()
 
void * vid_get_opacity_active_buffer ()
 
char * camera_jpeg_count_str ()
 
void shutdown ()
 
void _Restart (__attribute__((unused)) unsigned option)
 
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 * _GetActiveViewportBuffer ()
 
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_byte_width ()
 
int vid_get_viewport_display_xoffset ()
 
int vid_get_viewport_display_yoffset ()
 
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 ()
 
int vid_get_aspect_ratio ()
 
void update_ui (ximr_context *ximr)
 

Variablen

int zoom_status
 
int active_bitmap_buffer
 
char * bitmap_buffer []
 
void * opacity_buffer []
 
char * current_raw_addr
 
int displaytype
 
int display_needs_refresh = 0
 

Makro-Dokumentation

#define evf_out   (displaytype == 11)

Definiert in Zeile 137 der Datei lib.c.

#define hdmi_out   ((displaytype == 6) || (displaytype == 7))

Definiert in Zeile 138 der Datei lib.c.

#define LED_PR   0xd20b0994

Definiert in Zeile 64 der Datei lib.c.

Dokumentation der Funktionen

void* _GetActiveViewportBuffer ( )
void _Restart ( __attribute__((unused)) unsigned  option)

Definiert in Zeile 58 der Datei lib.c.

59 {
60  // Firmware _Restart() function does not work; but forcing camera to 'boot' our PS.FI2 seems to work, although it takes around 10 seconds to restart.
61  _reboot_fw_update("A/PS.FI2");
62 }
char* camera_jpeg_count_str ( )

Definiert in Zeile 45 der Datei lib.c.

46 {
47  extern char jpeg_count_str[];
48  return jpeg_count_str;
49 }
void camera_set_led ( int  led,
int  state,
__attribute__((unused)) int  bright 
)

Definiert in Zeile 73 der Datei lib.c.

73  {
74  static char led_table[2] = { 0, 4 };
75  _LEDDrive(led_table[led % sizeof(led_table)], state <= 1 ? !state : state);
76 }
void debug_led ( int  state)

Definiert in Zeile 66 der Datei lib.c.

66  {
67  volatile long *p = (void*) LED_PR;
68  *p = ((state) ? 0x4d0002 : 0x4c0003);
69 }
int get_flash_params_count ( void  )

Definiert in Zeile 85 der Datei lib.c.

86 {
87  return 241;
88 }
char* hook_raw_image_addr ( void  )

Definiert in Zeile 105 der Datei lib.c.

106 {
107  /*
108  43dbfca0 - RAW & RAW + JPEG
109  43e4a000 - JPEG only
110  */
111  return current_raw_addr;
112 }
void JogDial_CCW ( void  )

Definiert in Zeile 97 der Datei lib.c.

98 {
99  _PostLogicalEventToUI(0x873, 1); //RotateJogDialLeft
100 }
void JogDial_CW ( void  )

Definiert in Zeile 91 der Datei lib.c.

92 {
93  _PostLogicalEventToUI(0x872, 1); //RotateJogDialRight
94 }
void shutdown ( )

Definiert in Zeile 51 der Datei lib.c.

52 {
53  debug_led(1);
55  while(1) msleep(100);
56 }
void shutdown_soft ( )

Definiert in Zeile 79 der Datei lib.c.

80 {
82 }
void update_ui ( ximr_context ximr)

Definiert in Zeile 294 der Datei lib.c.

295 {
296  // Make sure we are updating the correct layer - skip redundant updates for HDMI out
297  extern unsigned char* hdmi_buffer_check_adr;
298  if ((ximr->layers[0].color_type == 0x0500) || (ximr->layers[0].bitmap == (unsigned int)&hdmi_buffer_check_adr))
299  {
300  // Update screen dimensions
302  {
303  camera_screen.width = ximr->width;
304  camera_screen.height = ximr->height;
307 
308  // Reset OSD offset and width
311 
312  // Update other values
316  }
317 
318  // Tell CHDK UI that display needs update
320  }
321 }
void vid_bitmap_refresh ( )

Definiert in Zeile 13 der Datei lib.c.

14 {
15  extern void _transfer_src_overlay(int);
16  extern void _VTMLock();
17  extern void _VTMUnlock();
18  _VTMLock();
19  int n = active_bitmap_buffer;
20  _transfer_src_overlay(n^1);
21  _transfer_src_overlay(n);
22  _VTMUnlock();
23 }
int vid_get_aspect_ratio ( )

Definiert in Zeile 240 der Datei lib.c.

241 {
242  if (hdmi_out) return LV_ASPECT_16_9;
243  if (evf_out) return LV_ASPECT_4_3;
244  return LV_ASPECT_3_2;
245 }
void* vid_get_bitmap_active_buffer ( )

Definiert in Zeile 31 der Datei lib.c.

32 {
33  // For live view send YUV instead of RGBA
35 }
void* vid_get_bitmap_fb ( )

Definiert in Zeile 25 der Datei lib.c.

26 {
27  // For live view send YUV instead of RGBA
28  return bitmap_buffer[0];
29 }
void* vid_get_opacity_active_buffer ( )

Definiert in Zeile 40 der Datei lib.c.

41 {
43 }
int vid_get_viewport_buffer_width_proper ( )

Definiert in Zeile 233 der Datei lib.c.

234 {
235  if (hdmi_out) return 1920;
236  if (evf_out) return 1024;
237  return 736;
238 }
int vid_get_viewport_byte_width ( )

Definiert in Zeile 164 der Datei lib.c.

165 {
167 }
int vid_get_viewport_display_xoffset ( )

Definiert in Zeile 169 der Datei lib.c.

170 {
171  // viewport width offset table for each image size
172  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1
173  static long vp_xo[5] = { 40, 0, 0, 120}; // should all be even values for edge overlay
174  static long vp_xo_hdmi[5] = { 240, 0, 150, 420}; // should all be even values for edge overlay
175 
177  {
178  return 0;
179  }
180  else if (camera_info.state.mode_video)
181  {
183  return 40;
184  return 0;
185  }
186  else
187  {
188  if (hdmi_out)
189  return vp_xo_hdmi[shooting_get_prop(PROPCASE_ASPECT_RATIO)];
191  }
192 }
int vid_get_viewport_display_xoffset_proper ( )

Definiert in Zeile 219 der Datei lib.c.

int vid_get_viewport_display_yoffset ( )

Definiert in Zeile 194 der Datei lib.c.

195 {
196  // viewport height offset table for each image size
197  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1
198  static long vp_yo[5] = { 0, 38, 0, 0 };
199 
201  {
202  return 0;
203  }
204  else if (camera_info.state.mode_video)
205  {
207  return 0;
208  return 38;
209  }
210  else
211  {
212  if (hdmi_out)
213  return 0;
215  }
216 }
int vid_get_viewport_display_yoffset_proper ( )

Definiert in Zeile 220 der Datei lib.c.

void* vid_get_viewport_fb ( )

Definiert in Zeile 126 der Datei lib.c.

127 {
128  return _GetActiveViewportBuffer();
129 }
void* vid_get_viewport_fb_d ( )

Definiert in Zeile 121 der Datei lib.c.

122 {
123  return _GetActiveViewportBuffer();
124 }
int vid_get_viewport_fullscreen_height ( )

Definiert in Zeile 227 der Datei lib.c.

228 {
229  if (hdmi_out) return 1080;
230  if (evf_out) return 768;
231  return 480;
232 }
int vid_get_viewport_fullscreen_width ( )

Definiert in Zeile 221 der Datei lib.c.

222 {
223  if (hdmi_out) return 1920;
224  if (evf_out) return 1024;
225  return 720;
226 }
long vid_get_viewport_height ( )

Definiert in Zeile 152 der Datei lib.c.

153 {
155  {
156  if (hdmi_out) return 1080;
157  if (evf_out) return 768;
158  return 480;
159  }
160  extern int _GetVRAMVPixelsSize();
161  return _GetVRAMVPixelsSize();
162 }
void* vid_get_viewport_live_fb ( )

Definiert in Zeile 131 der Datei lib.c.

132 {
133  return _GetActiveViewportBuffer();
134 }
int vid_get_viewport_type ( )

Definiert in Zeile 239 der Datei lib.c.

239 { return LV_FB_YUV8B; }
int vid_get_viewport_width ( )

Definiert in Zeile 140 der Datei lib.c.

141 {
143  {
144  if (hdmi_out) return 1920;
145  if (evf_out) return 1024;
146  return 720;
147  }
148  extern int _GetVRAMHPixelsSize();
149  return _GetVRAMHPixelsSize();
150 }

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.

int display_needs_refresh = 0

Definiert in Zeile 247 der Datei lib.c.

int displaytype
void* opacity_buffer[]

Definiert in Zeile 217 der Datei lib.c.

int zoom_status

Definiert in Zeile 8 der Datei lib.c.