/src/Mixer/Samples.xs

http://github.com/PerlGameDev/SDL · Unknown · 137 lines · 110 code · 27 blank · 0 comment · 0 complexity · b68d125f37294c1ed12c44a744a34889 MD5 · raw file

  1. #include "EXTERN.h"
  2. #include "perl.h"
  3. #include "XSUB.h"
  4. #include "ppport.h"
  5. #ifndef aTHX_
  6. #define aTHX_
  7. #endif
  8. #include <SDL.h>
  9. #ifdef HAVE_SDL_MIXER
  10. #include <SDL_mixer.h>
  11. #endif
  12. #ifdef HAVE_SMPEG
  13. #include <smpeg/smpeg.h>
  14. #ifdef HAVE_SDL_MIXER
  15. static int sdl_perl_use_smpeg_audio = 0;
  16. #endif
  17. #endif
  18. MODULE = SDL::Mixer::Samples PACKAGE = SDL::Mixer::Samples PREFIX = mixsam_
  19. =for documentation
  20. SDL_mixer bindings
  21. See: http:/*www.libsdl.org/projects/SDL_mixer/docs/SDL_mixer.html */
  22. =cut
  23. #ifdef HAVE_SDL_MIXER
  24. #if (SDL_MIXER_MAJOR_VERSION >= 1 && SDL_MIXER_MINOR_VERSION >= 2 && SDL_MIXER_PATCHLEVEL >= 10)
  25. int
  26. mixsam_get_num_chunk_decoders()
  27. CODE:
  28. RETVAL = Mix_GetNumChunkDecoders();
  29. OUTPUT:
  30. RETVAL
  31. char *
  32. mixsam_get_chunk_decoder( index )
  33. int index
  34. CODE:
  35. RETVAL = (char *)Mix_GetChunkDecoder(index);
  36. OUTPUT:
  37. RETVAL
  38. #else
  39. int
  40. mixsam_get_num_chunk_decoders( )
  41. CODE:
  42. warn("SDL_mixer >= 1.2.10 needed for SDL::Mixer::Samples::get_num_chunk_decoders()");
  43. XSRETURN_UNDEF;
  44. OUTPUT:
  45. RETVAL
  46. char *
  47. mixsam_get_chunk_decoder( index )
  48. int index
  49. CODE:
  50. warn("SDL_mixer >= 1.2.10 needed for SDL::Mixer::Samples::get_chunk_decoder( index )");
  51. XSRETURN_UNDEF;
  52. OUTPUT:
  53. RETVAL
  54. #endif
  55. Mix_Chunk *
  56. mixsam_load_WAV ( filename )
  57. char *filename
  58. PREINIT:
  59. char * CLASS = "SDL::Mixer::MixChunk";
  60. CODE:
  61. Mix_Chunk * mixchunk;
  62. mixchunk = Mix_LoadWAV(filename);
  63. RETVAL = mixchunk;
  64. OUTPUT:
  65. RETVAL
  66. Mix_Chunk *
  67. mixsam_load_WAV_RW ( src, freesrc)
  68. SDL_RWops * src
  69. int freesrc
  70. PREINIT:
  71. char * CLASS = "SDL::Mixer::MixChunk";
  72. CODE:
  73. Mix_Chunk * mixchunk;
  74. mixchunk = Mix_LoadWAV_RW(src, freesrc);
  75. RETVAL = mixchunk;
  76. OUTPUT:
  77. RETVAL
  78. Mix_Chunk *
  79. mixsam_quick_load_WAV ( buf )
  80. Uint8 *buf
  81. PREINIT:
  82. char * CLASS = "SDL::Mixer::MixChunk";
  83. CODE:
  84. RETVAL = Mix_QuickLoad_WAV(buf);
  85. OUTPUT:
  86. RETVAL
  87. Mix_Chunk *
  88. mixsam_quick_load_RAW ( buf , len)
  89. Uint8 *buf
  90. int len
  91. PREINIT:
  92. char * CLASS = "SDL::Mixer::MixChunk";
  93. CODE:
  94. RETVAL = Mix_QuickLoad_RAW( buf, len );
  95. OUTPUT:
  96. RETVAL
  97. int
  98. mixsam_volume_chunk ( chunk, volume )
  99. Mix_Chunk *chunk
  100. int volume
  101. CODE:
  102. RETVAL = Mix_VolumeChunk(chunk,volume);
  103. OUTPUT:
  104. RETVAL
  105. void
  106. mixsam_free_chunk( chunk )
  107. Mix_Chunk *chunk
  108. CODE:
  109. Mix_FreeChunk(chunk);
  110. #endif