This source file includes following definitions.
- vid_bitmap_refresh
- shutdown
- debug_led
- camera_set_led
- shutdown_soft
- get_flash_params_count
- JogDial_CW
- JogDial_CCW
- hook_raw_image_addr
- vid_get_viewport_fb
- vid_get_viewport_fb_d
- vid_get_viewport_live_fb
- vid_get_viewport_width
- vid_get_viewport_height
- vid_get_viewport_yoffset
- vid_get_viewport_display_xoffset
- vid_get_viewport_display_yoffset
- vid_get_viewport_type
- vid_get_bitmap_fb
- vid_get_viewport_display_xoffset_proper
- vid_get_viewport_display_yoffset_proper
- vid_get_viewport_buffer_width_proper
- vid_get_viewport_fullscreen_width
- vid_get_viewport_byte_width
- vid_get_viewport_fullscreen_height
- vid_get_aspect_ratio
- vid_get_bitmap_active_buffer
- vid_get_opacity_active_buffer
- vid_get_bitmap_active_palette
- update_screen_dimensions
1 #include "platform.h"
2 #include "lolevel.h"
3 #include "live_view.h"
4
5 void vid_bitmap_refresh() {
6
7
8
9
10
11
12
13
14
15
16
17
18 extern void _transfer_src_overlay(int);
19
20
21 _transfer_src_overlay(0);
22 _transfer_src_overlay(1);
23 }
24
25 void shutdown() {
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 while(1) _SleepTask(500);
41 }
42
43 #define LED_PR 0xd20b0994
44
45 void debug_led(int state) {
46 volatile long *p = (void*)LED_PR;
47 *p = ((state) ? 0x4d0002 : 0x4c0003);
48 }
49
50
51
52 void camera_set_led(int led, int state, __attribute__ ((unused))int bright) {
53 static char led_table[2]={0,4};
54 _LEDDrive(led_table[led%sizeof(led_table)], state<=1 ? !state : state);
55 }
56
57 void shutdown_soft() {
58
59
60 _PostLogicalEventForNotPowerType(0x1005,0);
61 }
62
63 int get_flash_params_count(void) {
64 return 0x91;
65 }
66
67 void JogDial_CW(void) {
68 _PostLogicalEventToUI(0x872, 1);
69 }
70
71 void JogDial_CCW(void) {
72 _PostLogicalEventToUI(0x873, 1);
73 }
74
75 extern int active_raw_buffer;
76 extern char* raw_buffers[];
77 extern char* raw_buffers_canon_raw[];
78 extern char* raw_buffers_jpeg[];
79
80 char *hook_raw_image_addr()
81 {
82
83
84 int i=active_raw_buffer&3;
85 if(i>2) i=0;
86 return raw_buffers[i];
87
88 }
89
90
91
92
93
94
95 extern char active_viewport_buffer;
96 extern void* viewport_buffers[];
97
98 void *vid_get_viewport_fb() {
99
100
101 return (void*)0x4367AF00;
102 }
103
104 void *vid_get_viewport_fb_d() {
105
106 extern void *current_fb_d;
107 return current_fb_d;
108 }
109
110 extern void* viewport_buffers[];
111 extern void *current_viewport_buffer;
112
113 void *vid_get_viewport_live_fb()
114 {
115
116 int i;
117 for(i=0;i<4;i++) {
118 if(current_viewport_buffer == viewport_buffers[i]) {
119 return viewport_buffers[(i+1)&3];
120 }
121 }
122 return 0;
123
124 }
125
126 int vid_get_viewport_width() {
127 extern int _GetVRAMHPixelsSize();
128 if (camera_info.state.mode_play)
129 {
130 return 720;
131 }
132
133
134 return _GetVRAMHPixelsSize();
135 }
136
137 long vid_get_viewport_height() {
138 extern int _GetVRAMVPixelsSize();
139 if (camera_info.state.mode_play)
140 {
141 return 480;
142 }
143 return _GetVRAMVPixelsSize();
144 }
145
146 int vid_get_viewport_yoffset() {
147
148 return 0;
149 }
150
151
152 static long vp_xo[5] = { 40, 0, 0, 120, 168 };
153
154 int vid_get_viewport_display_xoffset() {
155 if (camera_info.state.mode_play)
156 {
157 return 0;
158 }
159
160 if(camera_info.state.mode_video || is_video_recording()) {
161 if(shooting_get_prop(PROPCASE_VIDEO_RESOLUTION) == 2) {
162 return 40;
163 } else {
164 return 0;
165 }
166 }
167 return vp_xo[shooting_get_prop(PROPCASE_ASPECT_RATIO)];
168 }
169
170 int vid_get_viewport_display_yoffset() {
171 if (camera_info.state.mode_play)
172 {
173 return 0;
174 }
175
176 if(camera_info.state.mode_video || is_video_recording()) {
177 if(shooting_get_prop(PROPCASE_VIDEO_RESOLUTION) == 2) {
178 return 0;
179 } else {
180 return 36;
181 }
182 }
183 if (shooting_get_prop(PROPCASE_ASPECT_RATIO) == 1)
184 {
185 return 36;
186 }
187 return 0;
188 }
189
190 extern int active_bitmap_buffer;
191 extern char* bitmap_buffer[];
192
193 int vid_get_viewport_type() {
194
195 return LV_FB_YUV8B;
196
197 }
198
199
200 void *vid_get_bitmap_fb() {
201
202 return bitmap_buffer[0];
203 }
204
205
206 int vid_get_viewport_display_xoffset_proper() { return vid_get_viewport_display_xoffset() ; }
207 int vid_get_viewport_display_yoffset_proper() { return vid_get_viewport_display_yoffset() ; }
208 int vid_get_viewport_buffer_width_proper() { return camera_screen.buffer_width ; }
209 int vid_get_viewport_fullscreen_width() { return camera_screen.width; }
210 int vid_get_viewport_byte_width() { return (camera_screen.buffer_width * 2); }
211
212 int vid_get_viewport_fullscreen_height() { return 480; }
213 int vid_get_aspect_ratio() { return LV_ASPECT_3_2; }
214
215
216
217
218
219 volatile char *opacity_buffer[2] = {(char*)0x41741000, (void*)0x41801000};
220
221 void *vid_get_bitmap_active_buffer() {
222 return bitmap_buffer[active_bitmap_buffer&1];
223 }
224
225 void *vid_get_opacity_active_buffer() {
226 return (void *)opacity_buffer[active_bitmap_buffer&1];
227 }
228
229
230 void *vid_get_bitmap_active_palette() {
231 return (void*)0x8000;
232 }
233
234 #ifdef CAM_SUPPORT_BITMAP_RES_CHANGE
235
236
237
238
239 void update_screen_dimensions() {
240
241 extern int displaytype;
242 static int old_displaytype = -1;
243
244 if (old_displaytype == displaytype) {
245 return;
246 }
247 old_displaytype = displaytype;
248
249 switch(displaytype) {
250 case 0:
251 case 3:
252 case 4:
253 case 5:
254
255 camera_screen.width = camera_screen.physical_width = camera_screen.buffer_width = 640;
256 camera_screen.height = camera_screen.buffer_height = 480;
257 camera_screen.size = camera_screen.buffer_size = 640*480;
258 break;
259 case 1:
260 case 2:
261 case 8:
262 case 9:
263
264 camera_screen.physical_width = camera_screen.width = 720;
265 camera_screen.buffer_width = 736;
266 camera_screen.height = camera_screen.buffer_height = 480;
267 camera_screen.size = 720*480;
268 camera_screen.buffer_size = 736*480;
269 break;
270 case 6:
271 case 7:
272
273 camera_screen.width = camera_screen.physical_width = camera_screen.buffer_width = 960;
274 camera_screen.height = camera_screen.buffer_height = 540;
275 camera_screen.size = camera_screen.buffer_size = 960*540;
276 break;
277 case 10:
278
279 camera_screen.physical_width = camera_screen.width = 720;
280 camera_screen.buffer_width = 736;
281 camera_screen.height = camera_screen.buffer_height = 480;
282 camera_screen.size = 720*480;
283 camera_screen.buffer_size = 736*480;
284 break;
285 case 11:
286
287 camera_screen.width = camera_screen.physical_width = camera_screen.buffer_width = 1024;
288 camera_screen.height = camera_screen.buffer_height = 768;
289 camera_screen.size = camera_screen.buffer_size = 1024*768;
290 break;
291 }
292 }
293 #endif
294