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