extracted OSS code to sndout_oss_*, BTN->PBTN, refactoring
[libpicofe.git] / common / common.h
index 9653db1..0b7a20f 100644 (file)
@@ -3,17 +3,17 @@
 #ifdef __GP2X__
 #include "../gp2x/gp2x.h"
 
-#define BTN_UP    GP2X_UP
-#define BTN_DOWN  GP2X_DOWN
-#define BTN_LEFT  GP2X_LEFT
-#define BTN_RIGHT GP2X_RIGHT
-
-#define BTN_NORTH GP2X_Y
-#define BTN_SOUTH GP2X_X
-#define BTN_WEST  GP2X_A
-#define BTN_EAST  GP2X_B
-#define BTN_L     GP2X_L
-#define BTN_R     GP2X_R
+#define PBTN_UP    GP2X_UP
+#define PBTN_DOWN  GP2X_DOWN
+#define PBTN_LEFT  GP2X_LEFT
+#define PBTN_RIGHT GP2X_RIGHT
+
+#define PBTN_NORTH GP2X_Y
+#define PBTN_SOUTH GP2X_X
+#define PBTN_WEST  GP2X_A
+#define PBTN_EAST  GP2X_B
+#define PBTN_L     GP2X_L
+#define PBTN_R     GP2X_R
 
 unsigned long wait_for_input(unsigned long interesting);
 void gp2x_pd_clone_buffer2(void);
@@ -26,6 +26,8 @@ void menu_flip(void);
 
 #define read_buttons(which) \
        wait_for_input(which)
+#define read_buttons_async(which) \
+       (gp2x_joystick_read(0) & (which))
 #define menu_draw_begin() \
        gp2x_pd_clone_buffer2()
 #define clear_screen() \
@@ -39,11 +41,33 @@ void menu_flip(void);
 
 #elif defined(__GIZ__)
 
-// TODO
-//#include "../gizmondo/giz.h"
-#define SCREEN_WIDTH 321
-#define SCREEN_BUFFER menu_screen
-extern unsigned char *menu_screen;
+#include "../gizmondo/giz.h"
+
+#define PBTN_NORTH PBTN_STOP
+#define PBTN_SOUTH PBTN_PLAY
+#define PBTN_WEST  PBTN_REW
+#define PBTN_EAST  PBTN_FWD
+
+unsigned long wait_for_input(unsigned int interesting);
+void menu_draw_begin(int use_bgbuff);
+void menu_darken_bg(void *dst, const void *src, int pixels, int darker);
+void menu_draw_end(void);
+
+#define SCREEN_WIDTH  321
+#define SCREEN_HEIGHT 240
+#define SCREEN_BUFFER ((giz_screen != NULL) ? giz_screen : menu_screen)
+extern void *menu_screen;
+extern void *giz_screen;
+
+#define read_buttons(which) \
+       wait_for_input(which)
+#define read_buttons_async(which) 0
+#define menu_draw_begin() \
+       menu_draw_begin(1)
+#define clear_screen() \
+       memset(SCREEN_BUFFER, 0, SCREEN_WIDTH*SCREEN_HEIGHT*2)
+#define darken_screen() \
+       menu_darken_bg(menu_screen, menu_screen, SCREEN_WIDTH*SCREEN_HEIGHT, 0)
 
 // ------------------------------------
 
@@ -51,10 +75,10 @@ extern unsigned char *menu_screen;
 
 #include "../psp/psp.h"
 
-#define BTN_NORTH BTN_TRIANGLE
-#define BTN_SOUTH BTN_X
-#define BTN_WEST  BTN_SQUARE
-#define BTN_EAST  BTN_CIRCLE
+#define PBTN_NORTH PBTN_TRIANGLE
+#define PBTN_SOUTH PBTN_X
+#define PBTN_WEST  PBTN_SQUARE
+#define PBTN_EAST  PBTN_CIRCLE
 
 unsigned long wait_for_input(unsigned int interesting, int is_key_config);
 void menu_draw_begin(void);
@@ -67,9 +91,53 @@ void menu_draw_end(void);
 
 #define read_buttons(which) \
        wait_for_input(which, 0)
+#define read_buttons_async(which) \
+       (psp_pad_read(0) & (which))
 #define clear_screen() \
        memset(SCREEN_BUFFER, 0, SCREEN_WIDTH*SCREEN_HEIGHT*2)
 #define darken_screen() \
        menu_darken_bg(psp_screen, psp_screen, SCREEN_WIDTH*SCREEN_HEIGHT, 0)
 
+// ------------------------------------
+
+#elif defined(PANDORA)
+
+// TODO
+
+#include "../gp2x/gp2x.h"
+
+#define PBTN_UP    0
+#define PBTN_DOWN  0
+#define PBTN_LEFT  0
+#define PBTN_RIGHT 0
+
+#define PBTN_NORTH 0
+#define PBTN_SOUTH 0
+#define PBTN_WEST  0
+#define PBTN_EAST  0
+#define PBTN_L     0
+#define PBTN_R     0
+
+unsigned long wait_for_input(unsigned long interesting);
+void gp2x_pd_clone_buffer2(void);
+void menu_darken_bg(void *dst, int pixels, int darker);
+void menu_flip(void);
+
+#define SCREEN_WIDTH  800
+#define SCREEN_HEIGHT 480
+#define SCREEN_BUFFER gp2x_screen
+
+#define read_buttons(which) \
+       wait_for_input(which)
+#define read_buttons_async(which) \
+       (gp2x_joystick_read(0) & (which))
+#define menu_draw_begin() \
+       gp2x_pd_clone_buffer2()
+#define clear_screen() \
+       memset(gp2x_screen, 0, 800*480*2)
+#define darken_screen() \
+       menu_darken_bg(gp2x_screen, 800*480, 0)
+#define menu_draw_end() \
+       menu_flip()
+
 #endif