source: trunk/platform/ixus200_sd980/sub/101d/lib.c @ 1257

Revision 1257, 1.9 KB checked in by philmoz, 22 months ago (diff)

IXUS200-SD980 port for firmware 1.01D by gbit.
Implements CAM_DETECT_SCREEN_ERASE for both versions.
http://chdk.setepontos.com/index.php?topic=650.msg71115#msg71115

Line 
1#include "platform.h"
2
3char *hook_raw_image_addr()
4{
5        return (char*)0x421E1120;
6}
7
8long hook_raw_size()
9{
10        return 0x11CA240;
11}
12
13
14void *vid_get_viewport_live_fb()//found in sub_FF8E0788
15{
16    void **fb=(void **)0x5014;
17    unsigned char buff = *((unsigned char*)0x4E5C);
18    if (buff == 0) buff = 2;  else buff--;
19//    return fb[buff];
20        if ((mode_get()&MODE_MASK) == MODE_REC)
21                return (void*)(fb[buff]-vid_get_viewport_xoffset()*3);
22        return (void*)fb[buff];
23}
24
25void *vid_get_bitmap_fb()
26{
27        return (void*)0x40431000;
28}
29
30void *vid_get_viewport_fb()
31{
32//      return (void*)0x408CB700;
33        if ((mode_get()&MODE_MASK) == MODE_REC)
34                return (void*)(0x408CB700-vid_get_viewport_xoffset()*3);
35        return (void*)0x408CB700;
36}
37
38void *vid_get_viewport_fb_d()
39{
40        return (void*)(*(int*)(0x28F0+0x58));
41}
42
43
44long vid_get_bitmap_screen_width()   { return 480; }
45long vid_get_bitmap_screen_height()  { return 240; }
46long vid_get_bitmap_buffer_width()   { return 960; }
47long vid_get_bitmap_buffer_height()  { return 270; }
48
49
50long vid_get_viewport_height()       { return 240; }
51
52int vid_get_viewport_buffer_width()  { return 480; }
53
54int vid_get_viewport_width()
55{
56    if (shooting_get_prop(PROPCASE_RESOLUTION) == 8)    // widescreen (16:9) image size
57                return 480;
58    else
59        return 360;
60}
61
62int vid_get_viewport_xoffset()
63{
64        if (shooting_get_prop(PROPCASE_RESOLUTION) == 8)        // widescreen (16:9) image size
65           return 0;
66        else
67       return 60;
68}
69
70int vid_get_viewport_image_offset() {
71        return (vid_get_viewport_yoffset() * vid_get_viewport_buffer_width() + vid_get_viewport_xoffset()) * 3;
72}
73
74int vid_get_viewport_row_offset() {
75        return (vid_get_viewport_buffer_width() - vid_get_viewport_width()) * 3;
76}
77
78
79char *camera_jpeg_count_str()
80{
81        return (char*)0x4C138;
82}
83
84
85//only for cameras with a touchscreen
86short get_touch_click_x()
87{
88        return *(short*)(0x258C+6);
89}
90
91short get_touch_click_y()
92{
93        return *(short*)(0x258C+8);
94}
Note: See TracBrowser for help on using the repository browser.