1 #ifndef VIEWPORT_H 2 #define VIEWPORT_H 3 4 // CHDK Viewport & screen buffer interface 5 6 // Note: used in modules and platform independent code. 7 // Do not add platform dependent stuff in here (#ifdef/#endif compile options or camera dependent values) 8 9 /******************************************************************/ 10 11 extern void *vid_get_bitmap_fb(); 12 13 extern void *vid_get_viewport_fb(); 14 extern void *vid_get_viewport_fb_d(); 15 extern void *vid_get_viewport_live_fb(); 16 17 extern void vid_bitmap_refresh(); 18 extern void vid_turn_off_updates(); 19 extern void vid_turn_on_updates(); 20 21 // These define the viewport dimensions both physically and in terms of the CHDK co-ordinate system 22 // CHDK works in a 360x240 screen dimension / co-ordinate system 23 extern long vid_get_viewport_height(); // Viewport height in CHDK screen pixels 24 extern int vid_get_viewport_width(); // Viewport width in CHDK screen pixels 25 extern int vid_get_viewport_xoffset(); // X offset of viewport edge relative to the viewport buffer (in CHDK screen pixels) 26 extern int vid_get_viewport_yoffset(); // Y offset of viewport top relative to the viewport buffer (in CHDK screen pixels) 27 extern int vid_get_viewport_display_xoffset(); // X offset of viewport edge relative to LCD screen (in CHDK screen pixels) 28 extern int vid_get_viewport_display_yoffset(); // Y offset of viewport top relative to LCD screen (in CHDK screen pixels) 29 extern int vid_get_viewport_byte_width(); // Physical width of viewport buffer row in bytes 30 extern int vid_get_viewport_yscale(); // Y multiplier for cameras with 480 pixel high viewports (CHDK code assumes 240) 31 extern int vid_get_viewport_image_offset(); // Byte offset from start of viewport memory to first displayed pixel 32 extern int vid_get_viewport_row_offset(); // Difference between physical width of viewport and displayed width (in bytes) 33 34 35 // PTP Live View functions 36 // These functions return actual size/offset in pixels of the viewport and bitmap buffers 37 extern int vid_get_viewport_display_xoffset_proper(); // X Offset (for variable image size) 38 extern int vid_get_viewport_display_yoffset_proper(); // Y Offset (for variable image size) 39 extern int vid_get_viewport_width_proper(); // Visible viewport width (for variable image size) 40 extern int vid_get_viewport_height_proper(); // Visible viewport height (for variable image size) 41 extern int vid_get_viewport_fullscreen_width(); // Width of screen in buffer pixels 42 extern int vid_get_viewport_fullscreen_height(); // Height of screen in buffer pixels 43 extern int vid_get_viewport_buffer_width_proper(); // Physical viewport buffer width in pixels 44 extern int vid_get_palette_type(); // Palette type (0 - 3) 45 extern int vid_get_palette_size(); // Palette size (in bytes) 46 extern int vid_get_aspect_ratio(); // LCD aspect ratio (0 = 4:3 or 1 = 16:9, 2 = 3:2) 47 extern int vid_get_viewport_type(); // Viewport format (uses live_view.h defines) 48 49 extern void *vid_get_viewport_active_buffer(); // Return active live viewport memory address 50 extern void *vid_get_bitmap_active_buffer(); // Return current active bitmap memory address 51 extern void *vid_get_bitmap_active_palette(); // Return current palette memory address 52 extern void *vid_get_opacity_active_buffer(); // Return current active bitmap opacity memory address 53 54 /******************************************************************/ 55 56 #endif