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