asyn-only dev support + in_gp2x driver
[libpicofe.git] / common / common.h
1 // platform specific things for common menu code
2
3 #ifdef __GP2X__
4 #include "../gp2x/gp2x.h"
5
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
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
36
37 /* menu nav */
38 #define PBTN_MOK   GP2X_B
39 #define PBTN_MBACK GP2X_X
40 #define PBTN_MENU  GP2X_SELECT
41 #endif
42 #define GP2X_Y 0 /* FIXME */
43
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
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
65 #include "../gizmondo/giz.h"
66
67 #define PBTN_NORTH PBTN_STOP
68 #define PBTN_SOUTH PBTN_PLAY
69 #define PBTN_WEST  PBTN_REW
70 #define PBTN_EAST  PBTN_FWD
71
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
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)
88
89 // ------------------------------------
90
91 #elif defined(PSP)
92
93 #include "../psp/psp.h"
94
95 #define PBTN_NORTH PBTN_TRIANGLE
96 #define PBTN_SOUTH PBTN_X
97 #define PBTN_WEST  PBTN_SQUARE
98 #define PBTN_EAST  PBTN_CIRCLE
99
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
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
113 // ------------------------------------
114
115 #elif defined(PANDORA)
116
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)
128
129 /* menu nav */
130 #define PBTN_MOK   PBTN_EAST
131 #define PBTN_MBACK PBTN_SOUTH
132 #define PBTN_MENU  (1 << 10)
133
134 void gp2x_pd_clone_buffer2(void);
135 void menu_darken_bg(void *dst, int pixels, int darker);
136 void menu_flip(void);
137
138 extern void *gp2x_screen;
139
140 #define SCREEN_WIDTH  800
141 #define SCREEN_HEIGHT 480
142 #define SCREEN_BUFFER gp2x_screen
143
144 #define menu_draw_begin() \
145         gp2x_pd_clone_buffer2()
146 #define clear_screen() \
147         memset(gp2x_screen, 0, 800*480*2)
148 #define darken_screen() \
149         menu_darken_bg(gp2x_screen, 800*480, 0)
150 #define menu_draw_end() \
151         menu_flip()
152
153 #endif