This source file includes following definitions.
- vid_bitmap_refresh
- shutdown
- debug_led
- camera_set_led
- get_flash_params_count
- JogDial_CW
- JogDial_CCW
- vid_get_viewport_fb
- vid_get_viewport_live_fb
- vid_get_bitmap_fb
- vid_get_viewport_byte_width
- vid_get_viewport_yscale
- vid_get_viewport_width
- vid_get_viewport_display_xoffset
- vid_get_viewport_height
- vid_get_viewport_height_proper
- vid_get_viewport_buffer_width_proper
- vid_get_viewport_fullscreen_height
- vid_get_palette_type
- vid_get_palette_size
- vid_get_aspect_ratio
- vid_get_bitmap_active_buffer
- vid_get_bitmap_active_palette
- load_chdk_palette
1 #include "platform.h"
2 #include "platform_palette.h"
3 #include "lolevel.h"
4
5 void vid_bitmap_refresh()
6 {
7 extern int full_screen_refresh;
8 extern void _LockAndRefresh();
9 extern void _UnlockAndRefresh();
10
11 full_screen_refresh |= 3;
12 _LockAndRefresh();
13 _UnlockAndRefresh();
14 }
15
16
17 void shutdown()
18 {
19 volatile long *p = (void*)0xC022001C;
20
21 asm(
22 "MRS R1, CPSR\n"
23 "AND R0, R1, #0x80\n"
24 "ORR R1, R1, #0x80\n"
25 "MSR CPSR_cf, R1\n"
26 :::"r1","r0");
27
28 *p = 0x44;
29
30 while(1);
31 }
32
33 #define LED_PR 0xC0220130
34
35
36 void debug_led(int state)
37 {
38 *(int*)LED_PR=state ? 0x46 : 0x44;
39 }
40
41 void camera_set_led(int led, int state, __attribute__ ((unused))int bright) {
42 static char led_table[2]={0,9};
43 _LEDDrive(led_table[led%sizeof(led_table)], state<=1 ? !state : state);
44 }
45
46 int get_flash_params_count(void){
47 return 0xA0;
48 }
49
50 void JogDial_CW(void){
51 _PostLogicalEventForNotPowerType(0x86E, 1);
52 }
53
54 void JogDial_CCW(void){
55 _PostLogicalEventForNotPowerType(0x86F, 1);
56 }
57
58
59
60
61
62 extern char active_viewport_buffer;
63 extern void* viewport_buffers[];
64
65 void *vid_get_viewport_fb()
66 {
67
68
69 return viewport_buffers[0];
70 }
71
72 void *vid_get_viewport_live_fb()
73 {
74 if (MODE_IS_VIDEO(mode_get()) || (get_movie_status()==VIDEO_RECORD_IN_PROGRESS))
75 return viewport_buffers[0];
76
77
78
79 return viewport_buffers[(active_viewport_buffer-1)&3];
80 }
81
82
83 extern int active_bitmap_buffer;
84 extern char* bitmap_buffer[];
85
86 void *vid_get_bitmap_fb()
87 {
88
89 return bitmap_buffer[0];
90 }
91
92
93 int vid_get_viewport_byte_width() {
94 return 960 * 6 / 4;
95 }
96
97
98 int vid_get_viewport_yscale() {
99 return 2;
100 }
101
102
103 int vid_get_viewport_width()
104 {
105
106
107 static long vp_w[4] = { 360, 480, 408, 272 };
108 if((mode_get()&MODE_MASK) == MODE_PLAY) {
109 return 480;
110 }
111 return vp_w[shooting_get_prop(PROPCASE_ASPECT_RATIO)];
112 }
113
114 int vid_get_viewport_display_xoffset()
115 {
116
117
118 static long vp_w[4] = { 60, 0, 36, 104 };
119 if((mode_get()&MODE_MASK) == MODE_PLAY) {
120 return 0;
121 }
122 return vp_w[shooting_get_prop(PROPCASE_ASPECT_RATIO)];
123 }
124
125 long vid_get_viewport_height(){ return 240; }
126
127
128
129 int vid_get_viewport_height_proper() { return 480; }
130 int vid_get_viewport_buffer_width_proper() { return 960; }
131 int vid_get_viewport_fullscreen_height() { return 480; }
132 int vid_get_palette_type() { return 3; }
133 int vid_get_palette_size() { return 256 * 4; }
134 int vid_get_aspect_ratio() { return 1; }
135
136 void *vid_get_bitmap_active_buffer()
137 {
138 return bitmap_buffer[active_bitmap_buffer];
139 }
140
141 void *vid_get_bitmap_active_palette()
142 {
143 extern int active_palette_buffer;
144 extern char* palette_buffer[];
145 void* p = palette_buffer[active_palette_buffer];
146
147 if (p) p += 8;
148 return p;
149 }
150
151
152 void load_chdk_palette()
153 {
154 extern int active_palette_buffer;
155
156 if ((active_palette_buffer == 0) || (active_palette_buffer == 4))
157 {
158 int *pal = (int*)vid_get_bitmap_active_palette();
159 if (pal && pal[CHDK_COLOR_BASE+0] != 0x33ADF62)
160 {
161 pal[CHDK_COLOR_BASE+0] = 0x33ADF62;
162 pal[CHDK_COLOR_BASE+1] = 0x326EA40;
163 pal[CHDK_COLOR_BASE+2] = 0x34CD57F;
164 pal[CHDK_COLOR_BASE+3] = 0x373BFAE;
165 pal[CHDK_COLOR_BASE+4] = 0x34BD6CA;
166 pal[CHDK_COLOR_BASE+5] = 0x395AB95;
167 pal[CHDK_COLOR_BASE+6] = 0x34766F0;
168 pal[CHDK_COLOR_BASE+7] = 0x31250F3;
169 pal[CHDK_COLOR_BASE+8] = 0x37F408F;
170 pal[CHDK_COLOR_BASE+9] = 0x3512D5B;
171 pal[CHDK_COLOR_BASE+10] = 0x3A9A917;
172 pal[CHDK_COLOR_BASE+11] = 0x3819137;
173 pal[CHDK_COLOR_BASE+12] = 0x3DED115;
174 pal[CHDK_COLOR_BASE+13] = 0x0090000;
175
176 extern char palette_control;
177 palette_control = 1;
178 vid_bitmap_refresh();
179 }
180 }
181 }