Versió 1.1
This commit is contained in:
52
MusicManager.cpp
Normal file
52
MusicManager.cpp
Normal file
@@ -0,0 +1,52 @@
|
||||
#include "MusicManager.h"
|
||||
#include "const.h"
|
||||
#include "fileManager.h"
|
||||
|
||||
MusicManager::MusicManager(void) {
|
||||
music = NULL;
|
||||
}
|
||||
|
||||
MusicManager::~MusicManager(void) {
|
||||
Mix_FreeMusic(music);
|
||||
Mix_CloseAudio();
|
||||
}
|
||||
|
||||
bool MusicManager::Init() {
|
||||
return Mix_OpenAudio(MIX_DEFAULT_FREQUENCY, MIX_DEFAULT_FORMAT, 2, 1024);
|
||||
}
|
||||
|
||||
void MusicManager::Load(char *musicfilename)
|
||||
{
|
||||
if (music != NULL) {
|
||||
Mix_HaltMusic();
|
||||
Mix_FreeMusic(music);
|
||||
}
|
||||
Mix_VolumeMusic(MIX_MAX_VOLUME);
|
||||
//Get the bitmap's buffer and size from the resource file
|
||||
int filesize = 0;
|
||||
char *buffer = GetBufferFromResource(musicfilename, &filesize);
|
||||
|
||||
//Load the buffer into a surface using RWops
|
||||
SDL_RWops *rw = SDL_RWFromMem(buffer, filesize);
|
||||
//SDL_Surface *temp = SDL_LoadBMP_RW(rw, 1);
|
||||
music = Mix_LoadMUS_RW(rw);
|
||||
|
||||
//Release the bitmap buffer memory
|
||||
//free(buffer);
|
||||
}
|
||||
|
||||
void MusicManager::Play(int loops) {
|
||||
Mix_PlayMusic(music, loops);
|
||||
}
|
||||
|
||||
void MusicManager::Pause() {
|
||||
Mix_PauseMusic();
|
||||
}
|
||||
|
||||
void MusicManager::FadeOut() {
|
||||
Mix_FadeOutMusic(500);
|
||||
}
|
||||
|
||||
bool MusicManager::Sonant() {
|
||||
return (Mix_PlayingMusic() == 1) && (Mix_FadingMusic() != MIX_FADING_OUT);
|
||||
}
|
||||
Reference in New Issue
Block a user