gxmusic.cpp 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include "std.h"
  2. #include "gxmusic.h"
  3. gxMusic::gxMusic( gxAudio *a,FMUSIC_MODULE *m,FSOUND_STREAM *s ):
  4. audio(a),module(m),stream(s),stream_channel(-1){
  5. }
  6. gxMusic::~gxMusic(){
  7. if( module ) FMUSIC_FreeSong( module );
  8. else FSOUND_Stream_Close( stream );
  9. }
  10. void gxMusic::play(){
  11. if( module ){
  12. FMUSIC_PlaySong( module );
  13. }else{
  14. stream_channel=FSOUND_Stream_Play( FSOUND_FREE,stream );
  15. }
  16. }
  17. void gxMusic::stop(){
  18. if( module ){
  19. FMUSIC_StopSong( module );
  20. }else{
  21. FSOUND_Stream_Stop( stream );
  22. stream_channel=-1;
  23. }
  24. }
  25. void gxMusic::setVolume( float volume ){
  26. if( module ){
  27. FMUSIC_SetMasterVolume( module,volume*255.0f );
  28. }else{
  29. FSOUND_SetVolume( stream_channel,volume*255.0f );
  30. }
  31. }
  32. void gxMusic::setPaused( bool paused){
  33. if( module ){
  34. FMUSIC_SetPaused( module,paused );
  35. }else{
  36. FSOUND_SetPaused( stream_channel,paused );
  37. }
  38. }
  39. bool gxMusic::isPlaying()const{
  40. if( module ){
  41. return FMUSIC_IsPlaying( module ) ? true : false;
  42. }else{
  43. return FSOUND_IsPlaying( stream_channel ) ? true : false;
  44. }
  45. return false;
  46. }