initial Caanoo port
[gpsp.git] / gp2x / gp2x.h
1 #ifndef GP2X_H
2 #define GP2X_H
3
4 enum
5 {
6   GP2X_UP       = 1 << 0,
7   GP2X_LEFT     = 1 << 2,
8   GP2X_DOWN     = 1 << 4,
9   GP2X_RIGHT    = 1 << 6,
10   GP2X_START    = 1 << 8,  // Wiz: Menu, Caanoo: I
11   GP2X_SELECT   = 1 << 9,  // Caanoo: II
12   GP2X_L        = 1 << 10,
13   GP2X_R        = 1 << 11,
14   GP2X_A        = 1 << 12,
15   GP2X_B        = 1 << 13,
16   GP2X_X        = 1 << 14,
17   GP2X_Y        = 1 << 15,
18 #ifdef WIZ_BUILD
19   GP2X_VOL_UP   = 1 << 16,
20   GP2X_VOL_DOWN = 1 << 17,
21   GP2X_PUSH     = 1 << 18,
22 #elif defined(POLLUX_BUILD)
23   GP2X_HOME     = 1 << 16,
24   GP2X_PUSH     = 1 << 17,
25   GP2X_VOL_UP   = 1 << 30, // dummy
26   GP2X_VOL_DOWN = 1 << 29,
27 #else
28   GP2X_VOL_DOWN = 1 << 22,
29   GP2X_VOL_UP   = 1 << 23,
30   GP2X_PUSH     = 1 << 27,
31 #endif
32   GP2X_VOL_MIDDLE = (1 << 24), // fake, menu enter
33 };
34
35 void gpsp_plat_init(void);
36 void gpsp_plat_quit(void);
37
38 u32 gpsp_plat_joystick_read(void);
39 u32 gpsp_plat_buttons_to_cursor(u32 buttons);
40
41 #define PLAT_BUTTON_COUNT 16
42 #define PLAT_MENU_BUTTON 15
43 extern u32 button_plat_mask_to_config[PLAT_BUTTON_COUNT];
44
45 void gp2x_sound_volume(u32 volume_up);
46 void gp2x_quit();
47
48 void set_FCLK(u32 MHZ);
49
50 void upscale_aspect(u16 *dst, u16 *src);
51
52 /* wiz only */
53 extern void *gpsp_gp2x_screen;
54 void fb_use_buffers(int count);
55 void pollux_video_flip();
56 void wiz_lcd_set_portrait(int y);
57 u32  wiz_load_gamepak(char *name);
58
59 void do_rotated_blit(void *dst, void *linesx4, u32 y);
60 void upscale_aspect_row(void *dst, void *linesx3, u32 row);
61
62 #endif