ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/Client.xs
(Generate patch)

Comparing deliantra/Deliantra-Client/Client.xs (file contents):
Revision 1.70 by root, Sun Apr 30 09:21:47 2006 UTC vs.
Revision 1.75 by root, Mon May 8 18:28:40 2006 UTC

1#ifdef _WIN32 1#ifdef _WIN32
2# include <malloc.h> 2# include <malloc.h>
3# pragma warning(disable:4244)
3#endif 4#endif
4 5
5#include "EXTERN.h" 6#include "EXTERN.h"
6#include "perl.h" 7#include "perl.h"
7#include "XSUB.h" 8#include "XSUB.h"
258 } 259 }
259 } 260 }
260} 261}
261 262
262static void 263static void
263music_finished () 264music_finished (void)
264{ 265{
265 SDL_UserEvent ev; 266 SDL_UserEvent ev;
266 267
267 ev.type = SDL_USEREVENT; 268 ev.type = SDL_USEREVENT;
268 ev.code = 0; 269 ev.code = 0;
269 ev.data1 = 0; 270 ev.data1 = 0;
271 ev.data2 = 0;
272
273 SDL_PushEvent ((SDL_Event *)&ev);
274}
275
276static void
277channel_finished (int channel)
278{
279 SDL_UserEvent ev;
280
281 ev.type = SDL_USEREVENT;
282 ev.code = 1;
283 ev.data1 = (void *)(long)channel;
270 ev.data2 = 0; 284 ev.data2 = 0;
271 285
272 SDL_PushEvent ((SDL_Event *)&ev); 286 SDL_PushEvent ((SDL_Event *)&ev);
273} 287}
274 288
488 hv_store (hv, "button", 6, newSViv (ev.button.button), 0); 502 hv_store (hv, "button", 6, newSViv (ev.button.button), 0);
489 hv_store (hv, "state", 5, newSViv (ev.button.state), 0); 503 hv_store (hv, "state", 5, newSViv (ev.button.state), 0);
490 hv_store (hv, "x", 1, newSViv (ev.button.x), 0); 504 hv_store (hv, "x", 1, newSViv (ev.button.x), 0);
491 hv_store (hv, "y", 1, newSViv (ev.button.y), 0); 505 hv_store (hv, "y", 1, newSViv (ev.button.y), 0);
492 break; 506 break;
507
508 case SDL_USEREVENT:
509 hv_store (hv, "code", 4, newSViv (ev.user.code), 0);
510 hv_store (hv, "data1", 5, newSViv ((IV)ev.user.data1), 0);
511 hv_store (hv, "data2", 5, newSViv ((IV)ev.user.data2), 0);
512 break;
493 } 513 }
494 514
495 XPUSHs (sv_2mortal (newRV_noinc ((SV *)hv))); 515 XPUSHs (sv_2mortal (newRV_noinc ((SV *)hv)));
496 } 516 }
497} 517}
498 518
499int 519int
500Mix_OpenAudio (int frequency = 22050, int format = MIX_DEFAULT_FORMAT, int channels = 1, int chunksize = 512) 520Mix_OpenAudio (int frequency = 48000, int format = MIX_DEFAULT_FORMAT, int channels = 1, int chunksize = 2048)
501 POSTCALL: 521 POSTCALL:
502 Mix_HookMusicFinished (music_finished); 522 Mix_HookMusicFinished (music_finished);
523 Mix_ChannelFinished (channel_finished);
503 524
504void 525void
505Mix_CloseAudio () 526Mix_CloseAudio ()
506 527
507int 528int

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines