00001 #include "music.h"
00002 #include <SDL/SDL_mixer.h>
00003 #include <iostream>
00004 #include <string>
00005
00006 using namespace std;
00007
00008
00009 Music::Music() : music(NULL), name(NULL), playing(false) {}
00010
00011
00012 Music::Music(string fileName) {
00013 music = Mix_LoadMUS(fileName.c_str());
00014 if (!music) {
00015 cerr << "Mix_LoadMUS Error: " << Mix_GetError() << endl;
00016
00017 }
00018 name = fileName;
00019 playing = false;
00020 }
00021
00022
00023 Music::~Music() {
00024 Mix_FreeMusic(music);
00025 music = NULL;
00026 playing = false;
00027 }
00028
00029
00030 bool Music::Play(int loops) {
00031 if (playing) return false;
00032 int success;
00033 success = Mix_PlayMusic(music, loops);
00034 if (success < 0) {
00035 cerr << "Mix_PlayMusic Error: " << Mix_GetError() << endl;
00036 return false;
00037 }
00038 playing = true;
00039 return true;
00040 }
00041
00042
00043
00044
00045
00046
00047
00048 bool Music::Stop() {
00049 if (!playing) return false;
00050 Mix_HaltMusic();
00051 playing = false;
00052 return true;
00053 }
00054
00055 bool Music::IsPlaying() {
00056 return playing;
00057 }