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.211 by root, Sat Jul 28 00:45:28 2007 UTC vs.
Revision 1.212 by root, Sun Jul 29 03:58:26 2007 UTC

25#include <math.h> 25#include <math.h>
26#include <string.h> 26#include <string.h>
27#include <stdio.h> 27#include <stdio.h>
28#include <stdlib.h> 28#include <stdlib.h>
29 29
30#define USE_RWOPS 1 // for SDL_mixer:LoadMUS_RW
31
30#include <SDL.h> 32#include <SDL.h>
31#include <SDL_thread.h> 33#include <SDL_thread.h>
32#include <SDL_endian.h> 34#include <SDL_endian.h>
33#include <SDL_image.h> 35#include <SDL_image.h>
34#include <SDL_mixer.h> 36#include <SDL_mixer.h>
112 114
113#include "pango-font.c" 115#include "pango-font.c"
114#include "pango-fontmap.c" 116#include "pango-fontmap.c"
115#include "pango-render.c" 117#include "pango-render.c"
116 118
119typedef IV CFPlus__Channel;
120typedef SDL_RWops *CFPlus__RW;
117typedef Mix_Chunk *CFPlus__MixChunk; 121typedef Mix_Chunk *CFPlus__MixChunk;
118typedef Mix_Music *CFPlus__MixMusic; 122typedef Mix_Music *CFPlus__MixMusic;
119 123
120typedef PangoFontDescription *CFPlus__Font; 124typedef PangoFontDescription *CFPlus__Font;
121 125
861 STRLEN image_len; 865 STRLEN image_len;
862 char *image = (char *)SvPVbyte (image_, image_len); 866 char *image = (char *)SvPVbyte (image_, image_len);
863 SDL_Surface *surface, *surface2; 867 SDL_Surface *surface, *surface2;
864 SDL_PixelFormat fmt; 868 SDL_PixelFormat fmt;
865 SDL_RWops *rw = ix 869 SDL_RWops *rw = ix
866 ? SDL_RWFromFile (image, "r") 870 ? SDL_RWFromFile (image, "rb")
867 : SDL_RWFromConstMem (image, image_len); 871 : SDL_RWFromConstMem (image, image_len);
868 872
869 if (!rw) 873 if (!rw)
870 croak ("load_image: %s", SDL_GetError ()); 874 croak ("load_image: %s", SDL_GetError ());
871 875
2232 } 2236 }
2233 } 2237 }
2234 } 2238 }
2235} 2239}
2236 2240
2237MODULE = CFPlus PACKAGE = CFPlus::MixChunk 2241MODULE = CFPlus PACKAGE = CFPlus::RW
2238 2242
2239PROTOTYPES: DISABLE 2243CFPlus::RW
2240
2241CFPlus::MixChunk
2242new (SV *class, SV *data_sv) 2244new (SV *class, SV *data_sv)
2243 CODE: 2245 CODE:
2244{ 2246{
2245 STRLEN datalen; 2247 STRLEN datalen;
2246 char *data = SvPVbyte (data_sv, datalen); 2248 char *data = SvPVbyte (data_sv, datalen);
2247 2249
2248 RETVAL = Mix_LoadWAV_RW (SDL_RWFromConstMem (data, datalen), 1); 2250 RETVAL = SDL_RWFromConstMem (data, datalen);
2249} 2251}
2250 OUTPUT: 2252 OUTPUT:
2251 RETVAL 2253 RETVAL
2254
2255CFPlus::RW
2256new_from_file (SV *class, const char *path, const char *mode = "rb")
2257 CODE:
2258 RETVAL = SDL_RWFromFile (path, mode);
2259 OUTPUT:
2260 RETVAL
2261
2262void
2263close (CFPlus::RW self)
2264 CODE:
2265 SDL_RWclose (self);
2266
2267MODULE = CFPlus PACKAGE = CFPlus::Channel
2268
2269PROTOTYPES: DISABLE
2270
2271int
2272volume (CFPlus::Channel self, int volume)
2273 CODE:
2274 RETVAL = Mix_Volume (self, volume);
2275 OUTPUT:
2276 RETVAL
2277
2278int
2279unregister_all_effects (CFPlus::Channel self)
2280 CODE:
2281 RETVAL = Mix_UnregisterAllEffects (self);
2282 OUTPUT:
2283 RETVAL
2284
2285int
2286set_panning (CFPlus::Channel self, int left, int right)
2287 CODE:
2288 RETVAL = Mix_SetPanning (self, left, right);
2289 OUTPUT:
2290 RETVAL
2291
2292int
2293set_distance (CFPlus::Channel self, int distance)
2294 CODE:
2295 RETVAL = Mix_SetDistance (self, distance);
2296 OUTPUT:
2297 RETVAL
2298
2299int
2300set_position (CFPlus::Channel self, int angle, int distance)
2301 CODE:
2302 RETVAL = Mix_SetPosition (self, angle, distance);
2303 OUTPUT:
2304 RETVAL
2305
2306int
2307set_reverse_stereo (CFPlus::Channel self, int flip)
2308 CODE:
2309 RETVAL = Mix_SetReverseStereo (self, flip);
2310 OUTPUT:
2311 RETVAL
2312
2313MODULE = CFPlus PACKAGE = CFPlus::MixChunk
2314
2315PROTOTYPES: DISABLE
2252 2316
2253CFPlus::MixChunk 2317CFPlus::MixChunk
2254new_from_file (SV *class, char *path) 2318new (SV *class, CFPlus::RW rwops)
2255 CODE: 2319 CODE:
2256 RETVAL = Mix_LoadWAV (path); 2320 RETVAL = Mix_LoadWAV_RW (rwops, 1);
2257 OUTPUT: 2321 OUTPUT:
2258 RETVAL 2322 RETVAL
2259 2323
2260void 2324void
2261DESTROY (CFPlus::MixChunk self) 2325DESTROY (CFPlus::MixChunk self)
2267 CODE: 2331 CODE:
2268 RETVAL = Mix_VolumeChunk (self, volume); 2332 RETVAL = Mix_VolumeChunk (self, volume);
2269 OUTPUT: 2333 OUTPUT:
2270 RETVAL 2334 RETVAL
2271 2335
2272int 2336CFPlus::Channel
2273play (CFPlus::MixChunk self, int channel = -1, int loops = 0, int ticks = -1) 2337play (CFPlus::MixChunk self, int channel = -1, int loops = 0, int ticks = -1)
2274 CODE: 2338 CODE:
2275 RETVAL = Mix_PlayChannelTimed (channel, self, loops, ticks); 2339 RETVAL = Mix_PlayChannelTimed (channel, self, loops, ticks);
2340 Mix_UnregisterAllEffects (RETVAL);
2276 OUTPUT: 2341 OUTPUT:
2277 RETVAL 2342 RETVAL
2278 2343
2279MODULE = CFPlus PACKAGE = CFPlus::MixMusic 2344MODULE = CFPlus PACKAGE = CFPlus::MixMusic
2280 2345
2291 CODE: 2356 CODE:
2292 RETVAL = Mix_FadeOutMusic (ms); 2357 RETVAL = Mix_FadeOutMusic (ms);
2293 OUTPUT: 2358 OUTPUT:
2294 RETVAL 2359 RETVAL
2295 2360
2361void
2362halt ()
2363 CODE:
2364 Mix_HaltMusic ();
2365
2296CFPlus::MixMusic 2366CFPlus::MixMusic
2297new_from_file (SV *class, char *path) 2367new (SV *class, CFPlus::RW rwops)
2298 CODE: 2368 CODE:
2299 RETVAL = Mix_LoadMUS (path); 2369 RETVAL = Mix_LoadMUS_RW (rwops);
2300 OUTPUT: 2370 OUTPUT:
2301 RETVAL 2371 RETVAL
2302 2372
2303void 2373void
2304DESTROY (CFPlus::MixMusic self) 2374DESTROY (CFPlus::MixMusic self)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines