b8464531 |
1 | // platform specific things for common menu code |
2 | |
3 | #ifdef __GP2X__ |
4 | #include "../gp2x/gp2x.h" |
5 | |
13b692eb |
6 | // TODO merge |
7 | #define PBTN_UP (1 << 0) |
8 | #define PBTN_DOWN (1 << 1) |
9 | #define PBTN_LEFT (1 << 2) |
10 | #define PBTN_RIGHT (1 << 3) |
11 | |
12 | #define PBTN_NORTH (1 << 4) |
13 | #define PBTN_SOUTH (1 << 5) |
14 | #define PBTN_WEST (1 << 6) |
15 | #define PBTN_EAST (1 << 7) |
16 | #define PBTN_L (1 << 8) |
17 | #define PBTN_R (1 << 9) |
18 | |
19 | /* menu nav */ |
20 | #define PBTN_MOK PBTN_EAST |
21 | #define PBTN_MBACK PBTN_SOUTH |
22 | #define PBTN_MENU (1 << 10) |
23 | |
24 | #if 0 |
b3972d82 |
25 | #define PBTN_UP GP2X_UP |
26 | #define PBTN_DOWN GP2X_DOWN |
27 | #define PBTN_LEFT GP2X_LEFT |
28 | #define PBTN_RIGHT GP2X_RIGHT |
29 | |
30 | #define PBTN_NORTH GP2X_Y |
31 | #define PBTN_SOUTH GP2X_X |
32 | #define PBTN_WEST GP2X_A |
33 | #define PBTN_EAST GP2X_B |
34 | #define PBTN_L GP2X_L |
35 | #define PBTN_R GP2X_R |
b8464531 |
36 | |
fce20e73 |
37 | /* menu nav */ |
38 | #define PBTN_MOK GP2X_B |
39 | #define PBTN_MBACK GP2X_X |
40 | #define PBTN_MENU GP2X_SELECT |
13b692eb |
41 | #endif |
42 | #define GP2X_Y 0 /* FIXME */ |
fce20e73 |
43 | |
b8464531 |
44 | void gp2x_pd_clone_buffer2(void); |
45 | void menu_darken_bg(void *dst, int pixels, int darker); |
46 | void menu_flip(void); |
47 | |
48 | #define SCREEN_WIDTH 320 |
49 | #define SCREEN_HEIGHT 240 |
50 | #define SCREEN_BUFFER gp2x_screen |
51 | |
b8464531 |
52 | #define menu_draw_begin() \ |
53 | gp2x_pd_clone_buffer2() |
54 | #define clear_screen() \ |
55 | memset(gp2x_screen, 0, 320*240*2) |
56 | #define darken_screen() \ |
57 | menu_darken_bg(gp2x_screen, 320*240, 0) |
58 | #define menu_draw_end() \ |
59 | menu_flip() |
60 | |
61 | // ------------------------------------ |
62 | |
63 | #elif defined(__GIZ__) |
64 | |
5d239ae7 |
65 | #include "../gizmondo/giz.h" |
66 | |
b3972d82 |
67 | #define PBTN_NORTH PBTN_STOP |
68 | #define PBTN_SOUTH PBTN_PLAY |
69 | #define PBTN_WEST PBTN_REW |
70 | #define PBTN_EAST PBTN_FWD |
5d239ae7 |
71 | |
5d239ae7 |
72 | void menu_draw_begin(int use_bgbuff); |
73 | void menu_darken_bg(void *dst, const void *src, int pixels, int darker); |
74 | void menu_draw_end(void); |
75 | |
76 | #define SCREEN_WIDTH 321 |
77 | #define SCREEN_HEIGHT 240 |
78 | #define SCREEN_BUFFER ((giz_screen != NULL) ? giz_screen : menu_screen) |
79 | extern void *menu_screen; |
80 | extern void *giz_screen; |
81 | |
5d239ae7 |
82 | #define menu_draw_begin() \ |
83 | menu_draw_begin(1) |
84 | #define clear_screen() \ |
85 | memset(SCREEN_BUFFER, 0, SCREEN_WIDTH*SCREEN_HEIGHT*2) |
86 | #define darken_screen() \ |
87 | menu_darken_bg(menu_screen, menu_screen, SCREEN_WIDTH*SCREEN_HEIGHT, 0) |
b8464531 |
88 | |
89 | // ------------------------------------ |
90 | |
91 | #elif defined(PSP) |
92 | |
93 | #include "../psp/psp.h" |
94 | |
b3972d82 |
95 | #define PBTN_NORTH PBTN_TRIANGLE |
96 | #define PBTN_SOUTH PBTN_X |
97 | #define PBTN_WEST PBTN_SQUARE |
98 | #define PBTN_EAST PBTN_CIRCLE |
b8464531 |
99 | |
b8464531 |
100 | void menu_draw_begin(void); |
101 | void menu_darken_bg(void *dst, const void *src, int pixels, int darker); |
102 | void menu_draw_end(void); |
103 | |
104 | #define SCREEN_WIDTH 512 |
105 | #define SCREEN_HEIGHT 272 |
106 | #define SCREEN_BUFFER psp_screen |
107 | |
b8464531 |
108 | #define clear_screen() \ |
109 | memset(SCREEN_BUFFER, 0, SCREEN_WIDTH*SCREEN_HEIGHT*2) |
110 | #define darken_screen() \ |
111 | menu_darken_bg(psp_screen, psp_screen, SCREEN_WIDTH*SCREEN_HEIGHT, 0) |
112 | |
fe017393 |
113 | // ------------------------------------ |
114 | |
115 | #elif defined(PANDORA) |
116 | |
34581c95 |
117 | #define PBTN_UP (1 << 0) |
118 | #define PBTN_DOWN (1 << 1) |
119 | #define PBTN_LEFT (1 << 2) |
120 | #define PBTN_RIGHT (1 << 3) |
121 | |
122 | #define PBTN_NORTH (1 << 4) |
123 | #define PBTN_SOUTH (1 << 5) |
124 | #define PBTN_WEST (1 << 6) |
125 | #define PBTN_EAST (1 << 7) |
126 | #define PBTN_L (1 << 8) |
127 | #define PBTN_R (1 << 9) |
fe017393 |
128 | |
fce20e73 |
129 | /* menu nav */ |
130 | #define PBTN_MOK PBTN_EAST |
131 | #define PBTN_MBACK PBTN_SOUTH |
132 | #define PBTN_MENU (1 << 10) |
133 | |
fe017393 |
134 | void gp2x_pd_clone_buffer2(void); |
135 | void menu_darken_bg(void *dst, int pixels, int darker); |
136 | void menu_flip(void); |
137 | |
fce20e73 |
138 | extern void *gp2x_screen; |
139 | |
492d353a |
140 | #define SCREEN_WIDTH 800 |
141 | #define SCREEN_HEIGHT 480 |
fe017393 |
142 | #define SCREEN_BUFFER gp2x_screen |
143 | |
fe017393 |
144 | #define menu_draw_begin() \ |
145 | gp2x_pd_clone_buffer2() |
146 | #define clear_screen() \ |
492d353a |
147 | memset(gp2x_screen, 0, 800*480*2) |
fe017393 |
148 | #define darken_screen() \ |
492d353a |
149 | menu_darken_bg(gp2x_screen, 800*480, 0) |
fe017393 |
150 | #define menu_draw_end() \ |
151 | menu_flip() |
152 | |
b8464531 |
153 | #endif |