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   0xD20801E4
 
#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 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 ()
 
char * hook_alt_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 [2] = { (void*)0x7FC40000, (void*)0x7FB80000 }
 
int displaytype
 
int display_needs_refresh = 0
 

Makro-Dokumentation

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

Definiert in Zeile 125 der Datei lib.c.

#define LED_PR   0xD20801E4

Definiert in Zeile 59 der Datei lib.c.

Dokumentation der Funktionen

void* _GetActiveViewportBuffer ( )
char* camera_jpeg_count_str ( )

Definiert in Zeile 46 der Datei lib.c.

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

Definiert in Zeile 69 der Datei lib.c.

69  {
70  static char led_table[2] = { 0, 4 };
71  _LEDDrive(led_table[led % sizeof(led_table)], state <= 1 ? !state : state);
72 }
void debug_led ( int  state)

Definiert in Zeile 61 der Datei lib.c.

62 {
63  volatile long *p = (void*) LED_PR;
64  *p = ((state) ? 0x24D0002 : 0x24C0003);
65 }
int get_flash_params_count ( void  )

Definiert in Zeile 79 der Datei lib.c.

80 {
81  return 241;
82 }
char* hook_alt_raw_image_addr ( )

Definiert in Zeile 101 der Datei lib.c.

102 {
103  extern char* current_raw_alt_addr;
104  return current_raw_alt_addr;
105 }
char* hook_raw_image_addr ( void  )

Definiert in Zeile 95 der Datei lib.c.

96 {
97  extern char* current_raw_addr;
98  return current_raw_addr;
99 }
void JogDial_CCW ( void  )

Definiert in Zeile 89 der Datei lib.c.

90 {
91  _PostLogicalEventToUI(0x873, 1); //RotateJogDialLeft
92 }
void JogDial_CW ( void  )

Definiert in Zeile 84 der Datei lib.c.

85 {
86  _PostLogicalEventToUI(0x872, 1); //RotateJogDialRight
87 }
void shutdown ( )

Definiert in Zeile 52 der Datei lib.c.

53 {
54  debug_led(1);
56  while(1) msleep(100);
57 }
void shutdown_soft ( )

Definiert in Zeile 74 der Datei lib.c.

75 {
77 }
void update_ui ( ximr_context ximr)

Definiert in Zeile 259 der Datei lib.c.

260 {
261  // Make sure we are updating the correct layer - skip redundant updates for HDMI out
262  extern unsigned char* hdmi_buffer_check_adr;
263  if ((ximr->layers[0].color_type == 0x0500) || (ximr->layers[0].bitmap == (unsigned int)&hdmi_buffer_check_adr))
264  {
265  // Update screen dimensions
267  {
268  camera_screen.width = ximr->width;
269  camera_screen.height = ximr->height;
272 
273  // Reset OSD offset and width
276 
277  // Update other values
281  }
282 
283  // Tell CHDK UI that display needs update
285  }
286 }
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 211 der Datei lib.c.

211 { if (hdmi_out) return LV_ASPECT_16_9; else return LV_ASPECT_3_2; }
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 41 der Datei lib.c.

42 {
44 }
int vid_get_viewport_buffer_width_proper ( )

Definiert in Zeile 209 der Datei lib.c.

209 { if (hdmi_out) return 1920; else return 736; }
int vid_get_viewport_byte_width ( )

Definiert in Zeile 147 der Datei lib.c.

148 {
150 }
int vid_get_viewport_display_xoffset ( )

Definiert in Zeile 152 der Datei lib.c.

153 {
154  // viewport width offset table for each image size
155  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1
156  static long vp_xo[5] = { 40, 0, 0, 120}; // should all be even values for edge overlay
157  static long vp_xo_hdmi[5] = { 240, 0, 150, 420}; // should all be even values for edge overlay
158 
160  {
161  return 0;
162  }
163  else if (camera_info.state.mode_video)
164  {
166  {
167  if (hdmi_out) return 240;
168  return 40;
169  }
170  return 0;
171  }
172  else
173  {
174  if (hdmi_out)
175  return vp_xo_hdmi[shooting_get_prop(PROPCASE_ASPECT_RATIO)];
177  }
178 }
int vid_get_viewport_display_xoffset_proper ( )

Definiert in Zeile 205 der Datei lib.c.

int vid_get_viewport_display_yoffset ( )

Definiert in Zeile 180 der Datei lib.c.

181 {
182  // viewport height offset table for each image size
183  // 0 = 4:3, 1 = 16:9, 2 = 3:2, 3 = 1:1
184  static long vp_yo[5] = { 0, 38, 0, 0 };
185 
187  {
188  return 0;
189  }
190  else if (camera_info.state.mode_video)
191  {
193  return 0;
194  return 38;
195  }
196  else
197  {
198  if (hdmi_out)
199  return 0;
201  }
202 }
int vid_get_viewport_display_yoffset_proper ( )

Definiert in Zeile 206 der Datei lib.c.

void* vid_get_viewport_fb ( )

Definiert in Zeile 114 der Datei lib.c.

115 {
116  return _GetActiveViewportBuffer();
117 }
void* vid_get_viewport_fb_d ( )

Definiert in Zeile 109 der Datei lib.c.

110 {
111  return _GetActiveViewportBuffer();
112 }
int vid_get_viewport_fullscreen_height ( )

Definiert in Zeile 208 der Datei lib.c.

208 { if (hdmi_out) return 1080; else return 480; }
int vid_get_viewport_fullscreen_width ( )

Definiert in Zeile 207 der Datei lib.c.

207 { if (hdmi_out) return 1920; else return 720; }
long vid_get_viewport_height ( )

Definiert in Zeile 137 der Datei lib.c.

137  {
139  {
140  if (hdmi_out) return 1080;
141  return 480;
142  }
143  extern int _GetVRAMVPixelsSize();
144  return _GetVRAMVPixelsSize();
145 }
void* vid_get_viewport_live_fb ( )

Definiert in Zeile 119 der Datei lib.c.

120 {
121  return _GetActiveViewportBuffer();
122 }
int vid_get_viewport_type ( )

Definiert in Zeile 210 der Datei lib.c.

210 { return LV_FB_YUV8B; }
int vid_get_viewport_width ( )

Definiert in Zeile 127 der Datei lib.c.

127  {
129  {
130  if (hdmi_out) return 1920;
131  return 720;
132  }
133  extern int _GetVRAMHPixelsSize();
134  return _GetVRAMHPixelsSize();
135 }

Variablen-Dokumentation

int active_bitmap_buffer
char* bitmap_buffer[]

Definiert in Zeile 84 der Datei lib.c.

int display_needs_refresh = 0

Definiert in Zeile 213 der Datei lib.c.

int displaytype
void* opacity_buffer[2] = { (void*)0x7FC40000, (void*)0x7FB80000 }

Definiert in Zeile 39 der Datei lib.c.

int zoom_status

Definiert in Zeile 8 der Datei lib.c.