1 [CCode (cprefix="SDL_", cheader_filename="SDL.h")]
6 [Flags, CCode (cname="int", cprefix="SDL_INIT_")]
8 TIMER, AUDIO, VIDEO, CDROM, JOYSTICK,
9 NOPARACHUTE, EVENTTHREAD, EVERYTHING
12 [CCode (cname="SDL_Init")]
13 public static int init(uint32 flags = SDL.InitFlag.EVERYTHING);
15 [CCode (cname="SDL_InitSubSystem")]
16 public static int init_subsystem(uint32 flags);
18 [CCode (cname="SDL_WasInit")]
19 public static uint32 get_initialized(uint32 flags);
21 [CCode (cname="SDL_Quit")]
22 public static void quit();
24 [CCode (cname="SDL_QuitSubSystem")]
25 public static void quit_subsystem(uint32 flags);
27 [CCode (type_id="SDL_version", cheader_filename="SDL_version.h", cname="SDL_version")]
28 public class Version {
33 [CCode (cheader_filename="SDL_version.h", cname="SDL_Linked_Version")]
34 public static unowned Version linked();
41 [CCode (cname="int", cprefix="SDL_")]
43 ENOMEM, EFREAD, EFWRITE, EFSEEK,
44 UNSUPPORTED, LASTERROR
47 [CCode (cname="SDL_SetError")]
48 public static void set_error(string format, ...);
50 [CCode (cname="SDL_GetError")]
51 public static unowned string get_error();
53 [CCode (cname="SDL_ClearError")]
54 public static void clear_error();
56 [CCode (cname="SDL_Error")]
57 public static void error(Error code);
63 [CCode (cname="int", cprefix="SDL_ALPHA_")]
70 [CCode (cname="SDL_VideoDriverName")]
71 public static unowned string? driver_name(string namebuf, int maxlen);
73 [CCode (cname="SDL_SetGamma")]
74 public static int set_gamma(float red, float green, float blue);
76 [CCode (cname="SDL_SetGammaRamp")]
77 public static int set_gamma_ramp(uint16* red, uint16* green, uint16* blue);
79 [CCode (cname="SDL_GetGammaRamp")]
80 public static int get_gamma_ramp(uint16* red, uint16* green, uint16* blue);
82 [CCode (cname="SDL_ListModes")]
83 public static void* _list_modes(PixelFormat? format, uint32 flags);
85 [CCode (array_length = false, array_null_terminated = true)]
86 public static unowned SDL.Rect*[]? list_modes(SDL.PixelFormat? format, uint32 flags, out bool any) {
87 var p = SDL.Video._list_modes (format, flags);
88 any = ((int) p == -1);
89 return any ? null : (SDL.Rect*[]?) p;
93 [Flags, CCode (cname="int", cprefix="SDL_")]
94 public enum SurfaceFlag {
95 SWSURFACE, HWSURFACE, ASYNCBLIT, ANYFORMAT, HWPALETTE, DOUBLEBUF,
96 FULLSCREEN, OPENGL, OPENGLBLIT, RESIZABLE, NOFRAME, HWACCEL,
97 SRCCOLORKEY, RLEACCEL, SRCALPHA
100 [CCode (cname="SDL_Surface", free_function="SDL_FreeSurface", copy_function="SDL_DisplayFormat")]
102 public class Surface {
104 public PixelFormat format;
109 public int ref_count;
111 [CCode (cname="SDL_CreateRGBSurface")]
112 public Surface.RGB(uint32 flags, int width, int height, int depth,
113 uint32 rmask, uint32 gmask, uint32 bmask, uint32 amask);
115 [CCode (cname="SDL_CreateRGBSurfaceFrom")]
116 public Surface.from_RGB(void* pixels, int width, int height, int depth,
117 int pitch, uint32 rmask, uint32 gmask, uint32 bmask, uint32 amask);
119 [CCode (cname="SDL_LoadBMP_RW")]
120 public static Surface.load(RWops src, int freesrc=0);
123 [CCode (cname="SDL_UpdateRects")]
124 public void update_rects(int numrects, Rect* rects);
126 [CCode (cname="SDL_UpdateRect")]
127 public void update_rect(int32 x, int32 y, uint32 w, uint32 h);
129 [CCode (cname="SDL_Flip")]
132 [CCode (cname="SDL_SetColors")]
133 public int set_colors(Color* colors, int firstcolor, int ncolors);
135 [CCode (cname="SDL_SetPalette")]
136 public int set_palette(int flags, Color* colors, int firstcolor, int ncolors);
138 [CCode (cname="SDL_LockSurface")]
139 public int do_lock();
141 [CCode (cname="SDL_UnlockSurface")]
142 public void unlock();
144 [CCode (cname="SDL_SaveBMP_RW")]
145 public int save(RWops dst, int freedst=0);
147 [CCode (cname="SDL_SetColorKey")]
148 public int set_colorkey(uint32 flag, uint32 key);
150 [CCode (cname="SDL_SetAlpha")]
151 public int set_alpha(uint32 flag, uchar alpha);
153 [CCode (cname="SDL_SetClipRect")]
154 public bool set_cliprect(Rect? rect);
156 [CCode (cname="SDL_GetClipRect")]
157 public void get_cliprect(Rect rect);
159 [CCode (cname="SDL_ConvertSurface")]
160 public Surface? convert(PixelFormat? fmt, uint32 flags);
162 [CCode (cname="SDL_UpperBlit")]
163 public int blit(Rect? srcrect, Surface dst, Rect? dstrect);
165 [CCode (cname="SDL_FillRect")]
166 public int fill(Rect? dst, uint32 color);
169 [CCode (cname="SDL_Surface")]
171 public class Screen : Surface {
172 [CCode (cname="SDL_GetVideoSurface")]
173 public static unowned Screen instance();
175 [CCode (cname="SDL_SetVideoMode")]
176 public static unowned Screen? set_video_mode(int width, int height, int bpp, uint32 flags);
178 [CCode (cname="SDL_VideoModeOK")]
179 public static int check_video_mode(int width, int height, int bpp, uint32 flags);
182 [CCode (cname="SDL_PixelFormat")]
184 public class PixelFormat {
185 public Palette palette;
186 public uchar BitsPerPixel;
187 public uchar BytesPerPixel;
201 public uint32 colorkey;
204 [CCode (cname="SDL_MapRGB")]
205 public uint32 map_rgb(uchar r, uchar g, uchar b);
207 [CCode (cname="SDL_MapRGBA")]
208 public uint32 map_rgba(uchar r, uchar g, uchar b, uchar a);
210 [CCode (cname="SDL_GetRGB")]
211 public static void get_rgb(uint32 pixel, PixelFormat fmt, ref uchar r, ref uchar g, ref uchar b);
213 [CCode (cname="SDL_GetRGBA")]
214 public static void get_rgba(uint32 pixel, PixelFormat fmt, ref uchar r, ref uchar g, ref uchar b, ref uchar a);
217 [CCode (cname="SDL_Rect", has_type_id=false)]
225 [CCode (cname="SDL_Color", has_type_id=false)]
227 public struct Color {
234 [CCode (cname="int", cprefix="SDL_")]
235 public enum PaletteFlags {
239 [CCode (cname="SDL_Palette")]
240 public class Palette {
243 public Color* colors;
246 [CCode (cname="SDL_VideoInfo")]
248 public class VideoInfo {
249 public uint32 hw_available ;
250 public uint32 wm_available ;
251 public uint32 UnusedBits1 ;
252 public uint32 UnusedBits2 ;
253 public uint32 blit_hw ;
254 public uint32 bliw_hw_CC ;
255 public uint32 blit_hw_A ;
256 public uint32 blit_sw ;
257 public uint32 blit_sw_CC ;
258 public uint32 blit_sw_A ;
259 public uint32 blit_fill ;
260 public uint32 UnusedBits3 ;
262 public uint32 video_mem;
263 public PixelFormat vfmt;
264 public int current_w;
265 public int current_h;
267 [CCode (cname="SDL_GetVideoInfo")]
268 public static unowned VideoInfo get();
271 [CCode (cname="int", cprefix="SDL_")]
272 public enum OverlayFormat {
273 YV12_OVERLAY, IYUV_OVERLAY, YUY2_OVERLAY,
274 UYVY_OVERLAY, YVYU_OVERLAY
277 [CCode (cname="SDL_Overlay", free_function="SDL_FreeYUVOverlay")]
279 public class Overlay {
280 public uint32 format;
290 [CCode (cname="SDL_CreateYUVOverlay")]
291 public Overlay(int width, int height, OverlayFormat format, Surface display);
293 [CCode (cname="SDL_LockYUVOverlay")]
294 public int do_lock();
296 [CCode (cname="SDL_UnlockYUVOverlay")]
297 public void unlock();
299 [CCode (cname="SDL_DisplayYUVOverlay")]
300 public void display(Rect dst);
307 [CCode (cname="SDL_RWops", free_function="SDL_FreeRW")]
310 [CCode (cname="SDL_RWFromFile")]
311 public RWops.from_file(string file, string mode);
313 [CCode (cname="SDL_RWFromMem")]
314 public RWops.from_mem(void* mem, int size);
321 [CCode (cname="int", cprefix="SDL_GL_")]
323 RED_SIZE, GREEN_SIZE, BLUE_SIZE, ALPHA_SIZE,
324 BUFFER_SIZE, DOUBLEBUFFER, DEPTH_SIZE, STENCIL_SIZE,
325 ACCUM_RED_SIZE, ACCUM_GREEN_SIZE, ACCUM_BLUE_SIZE,
326 ACCUM_ALPHA_SIZE, STEREO, MULTISAMPLEBUFFERS,
327 MULTISAMPLESAMPLES, ACCELERATED_VISUAL, SWAP_CONTROL
330 [CCode (cprefix="SDL_GL_", cheader_filename="SDL.h")]
333 [CCode (cname="SDL_GL_LoadLibrary")]
334 public static int load_library(string path);
336 [CCode (cname="SDL_GL_GetProcAddress")]
337 public static void* get_proc_address(string proc);
339 [CCode (cname="SDL_GL_SetAttribute")]
340 public static int set_attribute(GLattr attr, int val);
342 [CCode (cname="SDL_GL_GetAttribute")]
343 public static int get_attribute(GLattr attr, ref int val);
345 [CCode (cname="SDL_GL_SwapBuffers")]
346 public static void swap_buffers();
353 [CCode (cname="int", cprefix="SDL_GRAB_")]
354 public enum GrabMode {
358 [CCode (cprefix="SDL_WM_", cheader_filename="SDL.h")]
360 public class WindowManager {
361 [CCode (cname="SDL_WM_SetCaption")]
362 public static void set_caption(string title, string icon);
364 [CCode (cname="SDL_WM_GetCaption")]
365 public static void get_caption(out string title, out string icon);
367 [CCode (cname="SDL_WM_SetIcon")]
368 public static void set_icon(Surface icon, uchar* mask);
370 [CCode (cname="SDL_WM_IconifyWindow")]
371 public static int iconify();
373 [CCode (cname="SDL_WM_ToggleFullScreen")]
374 public static int toggle_fullscreen(Surface surface);
376 [CCode (cname="SDL_WM_GrabInput")]
377 public static GrabMode grab_input(GrabMode mode);
384 [CCode (cname="int", cprefix="SDL_")]
385 public enum EventType {
386 NOEVENT, ACTIVEEVENT, KEYDOWN, KEYUP, MOUSEMOTION,
387 MOUSEBUTTONDOWN, MOUSEBUTTONUP, JOYAXISMOTION,
388 JOYBALLMOTION, JOYHATMOTION, JOYBUTTONDOWN, JOYBUTTONUP,
389 QUIT, SYSWMEVENT, VIDEORESIZE, VIDEOEXPOSE, USEREVENT,
393 [CCode (cname="int", cprefix="SDL_")]
394 public enum EventMask {
395 ACTIVEEVENTMASK, KEYDOWNMASK, KEYUPMASK, KEYEVENTMASK,
396 MOUSEMOTIONMASK, MOUSEBUTTONDOWNMASK, MOUSEBUTTONUPMASK,
397 MOUSEEVENTMASK, JOYAXISMOTIONMASK, JOYBALLMOTIONMASK,
398 JOYHATMOTIONMASK, JOYBUTTONDOWNMASK, JOYBUTTONUPMASK,
399 JOYEVENTMASK, VIDEORESIZEMASK, VIDEOEXPOSEMASK, QUITMASK,
403 [CCode (cname="SDL_MouseButtonEvent", has_type_id=false)]
404 public struct MouseButtonEvent {
413 [CCode (cheader_filename="SDL_active.h", cname="int", cprefix="SDL_APP")]
414 public enum ActiveState {
420 [CCode (cname="SDL_ActiveEvent", has_type_id=false)]
421 public struct ActiveEvent {
427 [CCode (cname="SDL_KeyboardEvent", has_type_id=false)]
428 public struct KeyboardEvent {
435 [CCode (cname="SDL_MouseMotionEvent", has_type_id=false)]
436 public struct MouseMotionEvent {
446 [CCode (cname="SDL_JoyAxisEvent", has_type_id=false)]
447 public struct JoyAxisEvent {
451 public uint16 @value;
454 [CCode (cname="SDL_JoyBallEvent", has_type_id=false)]
455 public struct JoyBallEvent {
463 [CCode (cname="SDL_JoyHatEvent", has_type_id=false)]
464 public struct JoyHatEvent {
471 [CCode (cname="SDL_JoyButtonEvent", has_type_id=false)]
472 public struct JoyButtonEvent {
479 [CCode (cname="SDL_ResizeEvent", has_type_id=false)]
480 public struct ResizeEvent {
486 [CCode (cname="SDL_ExposeEvent", has_type_id=false)]
487 public struct ExposeEvent {
491 [CCode (cname="SDL_QuitEvent", has_type_id=false)]
492 public struct QuitEvent {
496 [CCode (cname="SDL_UserEvent", has_type_id=false)]
497 public struct UserEvent {
504 [CCode (cname="SDL_SysWMEvent", has_type_id=false)]
505 public struct SysWMEvent {
507 public weak SysWMmsg msg;
510 [CCode (cname="SDL_SysWMmsg", cheader="SDL_syswm.h")]
511 public class SysWMmsg {
514 [CCode (cname="SDL_Event", has_type_id=false)]
515 public struct Event {
517 public ActiveEvent active;
518 public KeyboardEvent key;
519 public MouseMotionEvent motion;
520 public MouseButtonEvent button;
521 public JoyAxisEvent jaxis;
522 public JoyBallEvent jball;
523 public JoyHatEvent jhat;
524 public JoyButtonEvent jbutton;
525 public ResizeEvent resize;
526 public ExposeEvent expose;
527 public QuitEvent quit;
528 public UserEvent user;
529 public SysWMEvent syswm;
531 [CCode (cname="SDL_PumpEvents")]
532 public static void pump();
534 [CCode (cname="SDL_PeepEvents")]
535 public static void peep(Event* events, int numevents,
536 EventAction action, EventMask mask);
538 [CCode (cname="SDL_PollEvent")]
539 public static int poll(Event ev);
541 [CCode (cname="SDL_WaitEvent")]
542 public static int wait(Event ev);
544 [CCode (cname="SDL_PushEvent")]
545 public static int push(Event ev);
547 [CCode (cname="SDL_EventState")]
548 public static uchar state(uchar type, EventState state);
551 [CCode (cname="int", cprefix="SDL_")]
552 public enum EventAction {
553 ADDEVENT, PEEKEVENT, GETEVENT
556 [CCode (cname="int", cprefix="SDL_")]
557 public enum EventState {
558 QUERY, IGNORE, DISABLE, ENABLE
565 [CCode (cname="int", cprefix="SDL_")]
566 public enum ButtonState {
570 [CCode (cname="SDL_keysym", has_type_id=false)]
572 public uchar scancode;
573 public KeySymbol sym;
574 public KeyModifier mod;
575 public uint16 unicode;
577 [CCode (cname="SDL_EnableUNICODE")]
578 public static int enable_unicode(int enable);
580 [CCode (cname="SDL_EnableKeyRepeat")]
581 public static int set_repeat(int delay, int interval);
583 [CCode (cname="SDL_GetKeyRepeat")]
584 public static void get_repeat(ref int delay, ref int interval);
586 [CCode (cname="SDL_GetKeyState")]
587 public static unowned uchar[] get_keys();
589 [CCode (cname="SDL_GetModState")]
590 public static KeyModifier get_modifiers();
592 [CCode (cname="SDL_SetModState")]
593 public static void set_modifiers(KeyModifier modstate);
595 [CCode (cname="SDL_GetKeyName")]
596 public static unowned string get_name(KeySymbol key);
599 [CCode (cname="int", cprefix="SDLK_", cheader_filename="SDL_keysym.h")]
600 public enum KeySymbol {
642 Skip uppercase letters
677 /* End of ASCII mapped keysyms */
679 /* International keyboard syms */
796 /* Arrows + Home/End pad */
824 /* Key state modifier keys */
836 LSUPER, /* Left "Windows" key */
837 RSUPER, /* Right "Windows" key */
838 MODE, /* "Alt Gr" key */
839 COMPOSE, /* Multi-key compose key */
841 /* Miscellaneous function keys */
847 POWER, /* Power Macintosh power key */
848 EURO, /* Some european keyboards */
849 UNDO, /* Atari keyboard has Undo */
851 /* Add any other keys here */
856 [CCode (cname="int", cprefix="KMOD_", cheader_filename="SDL_keysym.h")]
857 public enum KeyModifier {
877 [CCode (cname="int", cprefix="SDL_BUTTON_")]
878 public enum MouseButton {
879 LEFT, MIDDLE, RIGHT, WHEELUP, WHEELDOWN
882 [CCode (cname="SDL_Cursor", free_function="SDL_FreeCursor")]
884 public class Cursor {
892 [CCode (cname="SDL_GetMouseState")]
893 public static uchar get_state(ref int x, ref int y);
895 [CCode (cname="SDL_GetRelativeMouseState")]
896 public static uchar get_relative_state(ref int x, ref int y);
898 [CCode (cname="SDL_WarpMouse")]
899 public static void warp(uint16 x, uint16 y);
901 [CCode (cname="SDL_CreateCursor")]
902 public Cursor(uchar* data, uchar* mask, int w, int h,
903 int hot_x, int hot_y);
905 [CCode (cname="SDL_GetCursor")]
906 public static Cursor get();
908 [CCode (cname="SDL_SetCursor")]
909 public static void set(Cursor cursor);
911 [CCode (cname="SDL_ShowCursor")]
912 public static int show(int toggle);
915 [CCode (cname="int", cprefix="SDL_HAT_")]
916 public enum HatValue {
917 CENTERED, UP, RIGHT, DOWN, LEFT,
918 RIGHTUP, RIGHTDOWN, LEFTUP, LEFTDOWN
921 [CCode (cname="SDL_Joystick", free_function="SDL_JoystickClose")]
923 public class Joystick {
924 [CCode (cname="SDL_JoystickName")]
925 public static unowned string get_name(int device_index);
927 [CCode (cname="SDL_JoystickOpened")]
928 public static int is_open(int device_index);
930 [CCode (cname="SDL_JoystickUpdate")]
931 public static void update_all();
933 [CCode (cname="SDL_JoystickEventState")]
934 public static int event_state(EventState state);
936 [CCode (cname="SDL_NumJoysticks")]
937 public static int count();
939 [CCode (cname="SDL_JoystickOpen")]
940 public Joystick(int device_index);
942 [CCode (cname="SDL_JoystickIndex")]
945 [CCode (cname="SDL_JoystickNumAxes")]
946 public int num_axes();
948 [CCode (cname="SDL_JoystickNumBalls")]
949 public int num_balls();
951 [CCode (cname="SDL_JoystickNumHats")]
952 public int num_hats();
954 [CCode (cname="SDL_JoystickNumButtons")]
955 public int num_buttons();
957 [CCode (cname="SDL_JoystickGetAxis")]
958 public int16 get_axis(int axis);
960 [CCode (cname="SDL_JoystickGetHat")]
961 public HatValue get_hat(int hat);
963 [CCode (cname="SDL_JoystickGetBall")]
964 public HatValue get_ball(int ball, ref int dx, ref int dy);
966 [CCode (cname="SDL_JoystickGetButton")]
967 public ButtonState get_button(int button);
974 [CCode (cname="int", cprefix="AUDIO_")]
975 public enum AudioFormat {
976 U8, S8, U16LSB, S16LSB, U16MSB, S16MSB, U16, S16,
980 [CCode (cname="int", cprefix="SDL_AUDIO_")]
981 public enum AudioStatus {
982 STOPPED, PLAYING, PAUSED
985 [CCode (cname="SDL_AudioSpec")]
987 public class AudioSpec {
989 public AudioFormat format;
990 public uchar channels;
991 public uchar silence;
992 public uint16 samples;
993 public uint16 padding;
996 public void* userdata;
999 [CCode (cname="SDL_AudioCVT")]
1001 public class AudioConverter {
1003 public AudioFormat src_format;
1004 public AudioFormat dst_format;
1005 public double rate_incr;
1010 public int len_mult;
1011 public double len_ratio;
1012 public int filter_index;
1014 [CCode (cname="SDL_BuildAudioCVT")]
1015 public static int build(AudioConverter cvt, AudioFormat src_format,
1016 uchar src_channels, int src_rate, AudioFormat dst_format,
1017 uchar dst_channels, int dst_rate);
1019 [CCode (cname="SDL_ConvertAudio")]
1020 public int convert();
1024 public class Audio {
1025 [CCode (cname="SDL_AudioDriverName")]
1026 public static unowned string driver_name(string namebuf, int maxlen);
1028 [CCode (cname="SDL_OpenAudio")]
1029 public static int open(AudioSpec desired, AudioSpec obtained);
1031 [CCode (cname="SDL_GetAudioStatus")]
1032 public static AudioStatus status();
1034 [CCode (cname="SDL_PauseAudio")]
1035 public static void pause(int pause_on);
1037 [CCode (cname="SDL_LoadWAV_RW")]
1038 public static AudioSpec load(RWops src, int freesrc=0, AudioSpec spec, uchar** audio_buf, ref uint32 audio_len);
1040 [CCode (cname="SDL_FreeWAV")]
1041 public static void free(uchar* audio_buf);
1043 [CCode (cname="SDL_MixAudio")]
1044 public static void mix(uchar[] dst, uchar[] src, uint32 len, int volume);
1046 [CCode (cname="SDL_LockAudio")]
1047 public static void do_lock();
1049 [CCode (cname="SDL_UnlockAudio")]
1050 public static void unlock();
1052 [CCode (cname="SDL_CloseAudio")]
1053 public static void close();
1060 public delegate int ThreadFunc(void* data);
1062 [CCode (cname="SDL_Thread", free_function="SDL_WaitThread")]
1064 public class Thread {
1065 [CCode (cname="SDL_ThreadID")]
1066 public static uint32 id();
1068 [CCode (cname="SDL_CreateThread")]
1069 public Thread(ThreadFunc f, void* data);
1072 [CCode (cname="SDL_mutex", free_function="SDL_DestroyMutex")]
1074 public class Mutex {
1075 [CCode (cname="SDL_CreateMutex")]
1078 [CCode (cname="SDL_mutexP")]
1079 public int do_lock();
1081 [CCode (cname="SDL_mutexV")]
1082 public int unlock();
1085 [CCode (cname="SDL_sem", free_function="SDL_DestroySemaphore")]
1087 public class Semaphore {
1088 [CCode (cname="SDL_CreateSemaphore")]
1089 public Semaphore(uint32 initial_value);
1091 [CCode (cname="SDL_SemWait")]
1094 [CCode (cname="SDL_SemTryWait")]
1095 public int try_wait();
1097 [CCode (cname="SDL_SemWaitTimeout")]
1098 public int wait_timeout(uint32 ms);
1100 [CCode (cname="SDL_SemPost")]
1103 [CCode (cname="SDL_SemValue")]
1104 public uint32 count();
1107 [CCode (cname="SDL_cond", free_function="SDL_DestroyCond")]
1109 public class Condition {
1110 [CCode (cname="SDL_CreateCond")]
1113 [CCode (cname="SDL_CondSignal")]
1114 public int @signal();
1116 [CCode (cname="SDL_CondBroadcast")]
1117 public int broadcast();
1119 [CCode (cname="SDL_CondWait")]
1120 public int wait(Mutex mut);
1122 [CCode (cname="SDL_CondWaitTimeout")]
1123 public int wait_timeout(Mutex mut, uint32 ms);
1130 public delegate uint32 TimerCallback(uint32 interval, void* param);
1132 [CCode (cname="struct _SDL_TimerID", free_function="SDL_RemoveTimer")]
1134 public class Timer {
1135 [CCode (cname="SDL_GetTicks")]
1136 public static uint32 get_ticks();
1138 [CCode (cname="SDL_Delay")]
1139 public static void delay(uint32 ms);
1141 [CCode (cname="SDL_AddTimer")]
1142 public Timer(uint32 interval, TimerCallback callback, void* param);