This source file includes following definitions.
- debug_led
- shutdown
- camera_set_led
- vid_get_viewport_fb
- camera_jpeg_count_str
- get_flash_params_count
- vid_get_bitmap_fb
- vid_get_bitmap_active_buffer
- vid_get_bitmap_active_palette
- vid_get_viewport_width
- vid_get_viewport_height
- vid_get_viewport_fb_d
- vid_get_viewport_live_fb
- hook_raw_image_addr
- vid_bitmap_refresh
- vid_get_palette_type
- vid_get_palette_size
- load_chdk_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
9 void debug_led(int state)
10 {
11 *(int*)LED_PR=state ? 0x93d800 : 0x83dc00;
12 }
13
14
15 void shutdown()
16 {
17 extern void _TurnOffE1(void);
18 _TurnOffE1();
19 while(1);
20 }
21
22
23
24
25 void camera_set_led(int led, int state, __attribute__ ((unused))int bright) {
26 static char led_table[2]={0,4};
27 _LEDDrive(led_table[led%sizeof(led_table)], state<=1 ? !state : state);
28 }
29
30 void *vid_get_viewport_fb() { return (void*)0x40866b80; }
31 char *camera_jpeg_count_str() { return (char*)0x000d7868; }
32 int get_flash_params_count(void) { return 0xd4; }
33
34 extern int active_bitmap_buffer;
35 extern char* bitmap_buffer[];
36
37 void *vid_get_bitmap_fb() {
38 return bitmap_buffer[0];
39 }
40
41
42 void *vid_get_bitmap_active_buffer() {
43 return bitmap_buffer[active_bitmap_buffer];
44 }
45
46
47 void *vid_get_bitmap_active_palette()
48 {
49 extern int active_palette_buffer;
50 extern int** palette_buffer_ptr;
51 int *p = palette_buffer_ptr[active_palette_buffer];
52 if(!p) {
53 p = palette_buffer_ptr[0];
54 }
55 return (p+1);
56 }
57
58 extern int _GetVRAMHPixelsSize();
59 extern int _GetVRAMVPixelsSize();
60
61
62 int vid_get_viewport_width()
63 {
64 if ((mode_get() & MODE_MASK) == MODE_PLAY)
65 {
66 return 360;
67 }
68 return _GetVRAMHPixelsSize() >> 1;
69 }
70
71 long vid_get_viewport_height()
72 {
73 if ((mode_get() & MODE_MASK) == MODE_PLAY)
74 {
75 return 240;
76 }
77 return _GetVRAMVPixelsSize();
78 }
79
80 void *vid_get_viewport_fb_d()
81 {
82 extern char *viewport_fb_d;
83 return viewport_fb_d;
84 }
85
86 void *vid_get_viewport_live_fb()
87 {
88 return 0;
89 }
90
91 char *hook_raw_image_addr()
92 {
93
94 return (char*) 0x43737E20;
95 }
96
97 void vid_bitmap_refresh()
98 {
99 extern int full_screen_refresh;
100 extern void _ScreenLock();
101 extern void _ScreenUnlock();
102
103 full_screen_refresh |= 3;
104 _ScreenLock();
105 _ScreenUnlock();
106 }
107
108 int vid_get_palette_type() { return 5; }
109 int vid_get_palette_size() { return 256 * 4 ; }
110
111
112 void load_chdk_palette()
113 {
114 extern int active_palette_buffer;
115
116 if ((active_palette_buffer == 0) || (active_palette_buffer == 5))
117 {
118 int *pal = (int*)vid_get_bitmap_active_palette();
119
120
121 if (pal[CHDK_COLOR_BASE+0] != 0x3F3ADF62)
122 {
123 pal[CHDK_COLOR_BASE+0] = 0x3F3ADF62;
124 pal[CHDK_COLOR_BASE+1] = 0x3F26EA40;
125 pal[CHDK_COLOR_BASE+2] = 0x3F4CD57F;
126 pal[CHDK_COLOR_BASE+3] = 0x3F73BFAE;
127 pal[CHDK_COLOR_BASE+4] = 0x3F4BD6CA;
128 pal[CHDK_COLOR_BASE+5] = 0x3F95AB95;
129 pal[CHDK_COLOR_BASE+6] = 0x3F4766F0;
130 pal[CHDK_COLOR_BASE+7] = 0x3F1250F3;
131 pal[CHDK_COLOR_BASE+8] = 0x3F7F408F;
132 pal[CHDK_COLOR_BASE+9] = 0x3F512D5B;
133 pal[CHDK_COLOR_BASE+10] = 0x3FA9A917;
134 pal[CHDK_COLOR_BASE+11] = 0x3F819137;
135 pal[CHDK_COLOR_BASE+12] = 0x3FDED115;
136 pal[CHDK_COLOR_BASE+13] = 0x00090000;
137
138 extern char palette_control;
139 palette_control = 1;
140 vid_bitmap_refresh();
141 }
142 }
143 }
144