This source file includes following definitions.
- debug_led
- hook_raw_image_addr
- hook_alt_raw_image_addr
- camera_jpeg_count_str
- vid_bitmap_refresh
- shutdown
- get_flash_params_count
- camera_set_led
- vid_get_bitmap_fb
- vid_get_viewport_fb
- vid_get_viewport_fb_d
- vid_get_viewport_live_fb
- vid_get_viewport_yscale
- vid_get_viewport_width
- vid_get_viewport_height
- vid_get_viewport_display_xoffset
- vid_get_viewport_yoffset
- vid_get_viewport_display_yoffset
- vid_get_viewport_display_xoffset_proper
- vid_get_viewport_display_yoffset_proper
- vid_get_viewport_height_proper
- vid_get_viewport_fullscreen_height
- vid_get_palette_type
- vid_get_palette_size
- vid_get_bitmap_active_buffer
- vid_get_bitmap_active_palette
1 #include "platform.h"
2 #include "platform_palette.h"
3 #include "lolevel.h"
4
5 #define LED_PR 0xc022d1fc
6 #define LED_AF 0xc022d200
7
8 void debug_led(int state)
9 {
10 *(int*)LED_PR=state ? 0x93d800 : 0x83dc00;
11 }
12
13
14 extern int active_raw_buffer;
15 extern char* raw_buffers[];
16
17 char *hook_raw_image_addr()
18 {
19 return raw_buffers[active_raw_buffer & 1];
20 }
21
22 char *hook_alt_raw_image_addr()
23 {
24 return raw_buffers[((active_raw_buffer & 1)^1)];
25 }
26
27
28
29 char *camera_jpeg_count_str()
30 {
31 extern char jpeg_count_str[];
32 return jpeg_count_str;
33 }
34
35 void vid_bitmap_refresh()
36 {
37 extern int full_screen_refresh;
38 extern void _ScreenLock();
39 extern void _ScreenUnlock();
40
41 full_screen_refresh |= 3;
42 _ScreenLock();
43 _ScreenUnlock();
44 }
45
46
47 void shutdown()
48 {
49 extern void _TurnOffE1(void);
50 _TurnOffE1();
51 while(1);
52 }
53
54
55 int get_flash_params_count(void) { return 0xf1; }
56
57
58
59 void camera_set_led(int led, int state, __attribute__ ((unused))int bright) {
60 static char led_table[]={0,4};
61 _LEDDrive(led_table[led%sizeof(led_table)], state<=1 ? !state : state);
62 }
63
64
65 void *vid_get_bitmap_fb() { return (void*)0x40711000; }
66 void *vid_get_viewport_fb() { return (void*)0x40866b80; }
67
68 void *vid_get_viewport_fb_d()
69 {
70 extern char *viewport_fb_d;
71 return viewport_fb_d;
72 }
73
74 extern char active_viewport_buffer;
75 extern void* viewport_buffers[];
76
77 void *vid_get_viewport_live_fb()
78 {
79
80
81 return viewport_buffers[(active_viewport_buffer-1)&7];
82 }
83
84
85
86 int vid_get_viewport_yscale() {
87 if (camera_info.state.mode_play) {
88 return 2;
89 }
90 if (is_video_recording()) {
91
92 if(shooting_get_prop(PROPCASE_VIDEO_RESOLUTION) == 5) {
93 return 1;
94 }
95 return 2;
96 }
97 if (camera_info.state.mode_shooting == MODE_FISHEYE) {
98 return 1;
99 }
100 return 2;
101 }
102
103 int vid_get_viewport_width()
104 {
105 if (camera_info.state.mode_play)
106 {
107 return 360;
108 }
109 extern int _GetVRAMHPixelsSize();
110 return _GetVRAMHPixelsSize() >> 1;
111 }
112
113 long vid_get_viewport_height()
114 {
115 if(camera_info.state.mode_play) {
116 return 240;
117 }
118 extern int _GetVRAMVPixelsSize();
119
120 int h = _GetVRAMVPixelsSize();
121 if (vid_get_viewport_yscale() == 1) {
122 return h;
123 }
124
125 return h>>1;
126 }
127
128
129
130 static long vp_xo[4] = { 0, 0, 0, 44 };
131
132 int vid_get_viewport_display_xoffset()
133 {
134 if(camera_info.state.mode_play) {
135 return 0;
136 }
137 int aspect_ratio=shooting_get_prop(PROPCASE_ASPECT_RATIO);
138
139 return (vp_xo[aspect_ratio]);
140 }
141
142
143
144 static long vp_yo[5] = { 0, 30, 13, 0 };
145
146 int vid_get_viewport_yoffset()
147 {
148 if (camera_info.state.mode_play)
149 {
150 return 0;
151 }
152 if (is_video_recording())
153 {
154 if(shooting_get_prop(PROPCASE_VIDEO_RESOLUTION) == 2) {
155 return 0;
156 } else {
157 return 30;
158 }
159 }
160 return vp_yo[shooting_get_prop(PROPCASE_ASPECT_RATIO)];
161 }
162
163 int vid_get_viewport_display_yoffset()
164 {
165 if (camera_info.state.mode_play)
166 {
167 return 0;
168 }
169 if (is_video_recording())
170 {
171 if(shooting_get_prop(PROPCASE_VIDEO_RESOLUTION) == 2) {
172 return 0;
173 } else {
174 return 30;
175 }
176 }
177 return vp_yo[shooting_get_prop(PROPCASE_ASPECT_RATIO)];
178 }
179
180 int vid_get_viewport_display_xoffset_proper() { return vid_get_viewport_display_xoffset()<<1; }
181 int vid_get_viewport_display_yoffset_proper() { return vid_get_viewport_display_yoffset() * vid_get_viewport_yscale(); }
182 int vid_get_viewport_height_proper() { return vid_get_viewport_height() * vid_get_viewport_yscale(); }
183
184 int vid_get_viewport_fullscreen_height()
185 {
186 return 240 * vid_get_viewport_yscale();
187 }
188
189
190 int vid_get_palette_type() { return 3; }
191 int vid_get_palette_size() { return 256 * 4; }
192
193
194 extern int active_bitmap_buffer;
195 extern char* bitmap_buffer[];
196 void *vid_get_bitmap_active_buffer()
197 {
198 return bitmap_buffer[active_bitmap_buffer&1];
199 }
200
201
202 void *vid_get_bitmap_active_palette()
203 {
204 extern void *palette_buffer_ptr;
205 return palette_buffer_ptr;
206 }
207
208