1 2 #ifndef HATARI_SDL_H 3 #define HATARI_SDL_H 4 5 //RETRO HACK 6 //#warning This is just an SDL wrapper for the retro core. 7 8 extern int Reset_Cold(void); 9 extern int Reset_Warm(void); 10 11 #ifdef _WIN32 12 #include <direct.h> 13 #else 14 #include <unistd.h> 15 #endif 16 #include <time.h> 17 18 #include "SDL_types.h" 19 #include "SDL_keyboard.h" 20 #include "SDL_video.h" 21 22 #define SDL_GetTicks GetTicks 23 #include <SDL_endian.h> 24 #include <SDL_types.h> 25 26 #define SDL_SRCCOLORKEY 0x1 27 #define RGB565(r, g, b) (((r) << (5+6)) | ((g) << 6) | (b)) 28 extern int Retro_SetPalette(SDL_Surface * surface, int flags, const SDL_Color * colors,int firstcolor, int ncolors); 29 extern unsigned int Retro_MapRGB(SDL_PixelFormat *a, int r, int g, int b); 30 extern long GetTicks(void); 31 extern SDL_Surface *Retro_CreateRGBSurface( int w,int h, int d, int rm,int rg,int rb,int ra); 32 extern SDL_Surface *Retro_SetVideoMode(int w,int h,int b); 33 extern void Retro_FreeSurface(SDL_Surface *surf ); 34 extern void Retro_BlitSurface(SDL_Surface *ss,SDL_Rect* sr,SDL_Surface *ds,SDL_Rect* dr); 35 extern void Retro_Fillrect(SDL_Surface * surf,SDL_Rect *rect,unsigned int col); 36 extern void Retro_GetRGB(int coul,SDL_PixelFormat *format, int *r,int *g,int *b); 37 extern int Retro_SetColorKey(SDL_Surface *surface, Uint32 flag, Uint32 key); 38 extern int Retro_SetColors(SDL_Surface *surface, SDL_Color *colors, int firstcolor, int ncolors); 39 40 #define SDL_MapRGB(a, r, g, b) Retro_MapRGB(a, r, g, b) 41 42 typedef struct SDL_Event{ 43 Uint8 type; 44 } SDL_Event; 45 46 //SOME SDL_FUNC WRAPPER 47 //GLOBALS 48 #define SDL_ShowCursor(a) 0 49 #define SDL_GRAB_OFF 0 50 #define SDL_GRAB_ON 1 51 #define SDL_WM_GrabInput(a) 52 #define SDL_WM_IconifyWindow() 53 #define SDL_WM_SetCaption(...) 54 #define SDL_HWSURFACE 0 55 #define SDL_FULLSCREEN 1 56 #define SDL_SWSURFACE 2 57 #define SDL_HWPALETTE 4 58 #define SDL_INIT_NOPARACHUTE 1 59 #define SDL_DISABLE 0 60 #define SDL_Quit(...) 61 #define SDL_InitSubSystem(...) 0 62 #define SDL_Init(...) 0 63 #define SDL_INIT_JOYSTICK 0 64 #define SDL_PHYSPAL 0 65 #define SDL_DOUBLEBUF 0 66 #define SDL_RESIZABLE 0 67 #define SDL_BUTTON(a) 1 68 #define SDL_JoystickUpdate() 69 #define SDL_WM_SetIcon(a,b) 70 71 #define SDL_KEYDOWN 0x300 72 #define SDL_KEYUP 0x301 73 //TIME 74 #define SDL_Delay(a) usleep((a)*1000) 75 //SURFACE 76 #define SDL_SetColors(a, b, c, d) Retro_SetColors(a, b, c, d) 77 #define SDL_MUSTLOCK(a) 0 78 #define SDL_LockSurface(a) 0 79 #define SDL_UnlockSurface(a) 0 80 #define SDL_FillRect(s,r,c) Retro_Fillrect((s),(r),(c)) 81 #define SDL_UpdateRects(a, b,c) 82 #define SDL_UpdateRect(...) 83 #define SDL_SetVideoMode(w, h, b, f) Retro_SetVideoMode((w),(h),(b)) 84 #define SDL_FreeSurface(a) Retro_FreeSurface((a)) 85 #define SDL_CreateRGBSurface(a,w,h,d,rm,gm,bm,am) Retro_CreateRGBSurface((w),(h),(d),(rm),(gm),(bm),(am)) 86 #define SDL_BlitSurface(ss,sr,ds,dr) Retro_BlitSurface((ss),(sr),(ds),(dr)) 87 #define SDL_GetRGB(clr, format, r, g, b) Retro_GetRGB((clr), (format), (r),(g),(b)) 88 #define SDL_SetColorKey(a, b,c) Retro_SetColorKey((a),(b),(c)) 89 #define SDL_SetPalette(s, f,c,d,n) Retro_SetPalette((s),(f),(c),(d),(n)) 90 91 //KEY 92 #define SDL_GetError() "RetroWrapper" 93 #define SDL_GetModState() 0 94 #define SDL_GetKeyName(...) "RetroWrapper" 95 //EVENT 96 #define SDL_PollEvent(a) Retro_PollEvent() 97 //SOUND 98 #define SDL_CloseAudio(); 99 #define SDL_LockAudio(); 100 #define SDL_UnlockAudio(); 101 #define SDL_PauseAudio(a); 102 //JOY 103 #define SDL_Joystick int 104 #define SDL_NumJoysticks() 0 105 #define SDL_JoystickOpen(i) NULL 106 #define SDL_JoystickName(i) "RetroWrapper" 107 #define SDL_JoystickClose 108 #define SDL_JoystickGetAxis(...) 0 109 #define SDL_JoystickGetButton(...) 0 110 #define SDL_JoystickNumAxes(...) 0 111 #define SDL_JoystickNumButtons(a) 16 112 //MOUSE 113 #define SDL_GetMouseState(X,Y) GuiGetMouseState((X),(Y)) 114 #define SDL_WarpMouse(x, y) do {gmx=x;gmy=y;} while (0) 115 116 //PS3 HACK 117 #if defined(__CELLOS_LV2__) 118 #include <unistd.h> //stat() is defined here 119 #define S_ISDIR(x) (x & CELL_FS_S_IFDIR) 120 #define F_OK 0 121 122 #include "sys/sys_time.h" 123 #include "sys/timer.h" 124 #define usleep sys_timer_usleep 125 #endif 126 127 128 #endif 129