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