common.h 3.5 KB

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