line endings!

This commit is contained in:
James Turk 2003-11-20 02:23:14 +00:00
parent d699d3e99f
commit 615591cce9

View File

@ -1,37 +1,177 @@
/******************************************************************************* This file is Part of the ZEngine Library for 2D game development. Copyright (C) 2002, 2003 James Turk /*******************************************************************************
Licensed under a BSD-style license. The maintainer of this library is James Turk (james@conceptofzero.net) and the home of this Library is http://www.zengine.sourceforge.net *******************************************************************************/ This file is Part of the ZEngine Library for 2D game development.
/** \file ZE_ZSound.cpp \brief Source file for ZSound. Copyright (C) 2002, 2003 James Turk
Implementation of ZSound, the basic Sound class for ZEngine. <br>$Id: ZE_ZSound.cpp,v 1.12 2003/11/20 00:56:53 cozman Exp $<br> \author James Turk **/
#include "ZE_ZSound.h" #ifdef USE_SDL_MIXER namespace ZE Licensed under a BSD-style license.
{
//ZSound is almost exactly like ZMusic, when making changes check if that change should //be applied to ZMusic as well, roughly 90% of the time it should be. The maintainer of this library is James Turk (james@conceptofzero.net)
const int ZSound::LoopInfinite = -1; and the home of this Library is http://www.zengine.sourceforge.net
ZSound::ZSound() : rEngine(ZEngine::GetInstance()), rSound(NULL), rChannelID(-1) //request channel ID { } *******************************************************************************/
ZSound::ZSound(std::string filename) : rEngine(ZEngine::GetInstance()), rSound(NULL), rChannelID(-1) //request channel ID { Open(filename); }
ZSound::~ZSound() { Release(); } void ZSound::Open(std::string filename) { Release(); /**
\file ZE_ZSound.cpp
\brief Source file for ZSound.
Implementation of ZSound, the basic Sound class for ZEngine.
<br>$Id: ZE_ZSound.cpp,v 1.13 2003/11/20 02:23:14 cozman Exp $<br>
\author James Turk
**/
#include "ZE_ZSound.h"
#ifdef USE_SDL_MIXER
namespace ZE
{
//ZSound is almost exactly like ZMusic, when making changes check if that change should
//be applied to ZMusic as well, roughly 90% of the time it should be.
const int ZSound::LoopInfinite = -1;
ZSound::ZSound() :
rEngine(ZEngine::GetInstance()),
rSound(NULL),
rChannelID(-1) //request channel ID
{
}
ZSound::ZSound(std::string filename) :
rEngine(ZEngine::GetInstance()),
rSound(NULL),
rChannelID(-1) //request channel ID
{
Open(filename);
}
ZSound::~ZSound()
{
Release();
}
void ZSound::Open(std::string filename)
{
Release();
rSound = Mix_LoadWAV(filename.c_str()); rSound = Mix_LoadWAV(filename.c_str());
if(!rSound) if(!rSound)
rEngine->ReportError(ZERR_LOAD_SOUND,filename); } rEngine->ReportError(ZERR_LOAD_SOUND,filename);
void ZSound::OpenFromZip(std::string zipname, std::string filename) { SDL_RWops *rw = RWFromZip(zipname,filename); if(rw) }
void ZSound::OpenFromZip(std::string zipname, std::string filename)
{
SDL_RWops *rw = RWFromZip(zipname,filename);
if(rw)
{ {
rSound = Mix_LoadWAV_RW(rw,0); rSound = Mix_LoadWAV_RW(rw,0);
delete []rw->hidden.mem.base; //must free buffer delete []rw->hidden.mem.base; //must free buffer
SDL_FreeRW(rw); SDL_FreeRW(rw);
} }
if(!rSound) if(!rSound)
rEngine->ReportError(ZERR_LOAD_SOUND,FormatStr("%s in %s archive",filename.c_str(),zipname.c_str())); } rEngine->ReportError(ZERR_LOAD_SOUND,FormatStr("%s in %s archive",filename.c_str(),zipname.c_str()));
void ZSound::Release() { if(rChannelID >= 0) Mix_HaltChannel(rChannelID); FreeSound(rSound); } }
void ZSound::Play(int loopNum, int fadeTime) { if(rChannelID >= 0 && Mix_Playing(rChannelID)) //stop currently playing sound Mix_HaltChannel(rChannelID);
if(rSound) { if(fadeTime) rChannelID = Mix_FadeInChannel(rChannelID, rSound, loopNum, fadeTime); else rChannelID = Mix_PlayChannel(rChannelID, rSound, loopNum); } else if(!rSound) rEngine->ReportError(ZERR_NOSOUND, "Play"); } void ZSound::Release()
void ZSound::Pause() const { if(rSound && rChannelID >= 0) Mix_Pause(rChannelID); else if(!rSound) rEngine->ReportError(ZERR_NOSOUND, "Pause"); } {
void ZSound::Unpause() const { if(rSound && rChannelID >= 0) Mix_Resume(rChannelID); else if(!rSound) rEngine->ReportError(ZERR_NOSOUND, "Unpause"); if(rChannelID >= 0)
} Mix_HaltChannel(rChannelID);
void ZSound::Stop(int fadeTime) const { if(rSound && rChannelID >= 0) { if(fadeTime) Mix_FadeOutChannel(rChannelID,fadeTime); else Mix_HaltChannel(rChannelID); } else if(!rSound) rEngine->ReportError(ZERR_NOSOUND, "Stop"); } FreeSound(rSound);
void ZSound::SetVolume(int volume) { if(rSound) Mix_VolumeChunk(rSound,volume); else rEngine->ReportError(ZERR_NOSOUND, "SetVolume"); } }
bool ZSound::IsLoaded() const { return rSound != NULL; }
bool ZSound::IsPlaying() const { if(rSound && rChannelID >= 0) return Mix_Playing(rChannelID) > 0; else { if(rChannelID >= 0) rEngine->ReportError(ZERR_NOSOUND, "IsPlaying"); return false; } } void ZSound::Play(int loopNum, int fadeTime)
bool ZSound::IsPaused() const { if(rSound && rChannelID >= 0) return Mix_Paused(rChannelID) > 0; else { rEngine->ReportError(ZERR_NOSOUND, "IsPaused"); return false; } } {
int ZSound::Volume() const { if(rSound) return Mix_VolumeChunk(rSound,-1); else { rEngine->ReportError(ZERR_NOSOUND, "GetVolume"); return -1; } } if(rChannelID >= 0 && Mix_Playing(rChannelID)) //stop currently playing sound
} Mix_HaltChannel(rChannelID);
#endif
if(rSound)
{
if(fadeTime)
rChannelID = Mix_FadeInChannel(rChannelID, rSound, loopNum, fadeTime);
else
rChannelID = Mix_PlayChannel(rChannelID, rSound, loopNum);
}
else if(!rSound)
rEngine->ReportError(ZERR_NOSOUND, "Play");
}
void ZSound::Pause() const
{
if(rSound && rChannelID >= 0)
Mix_Pause(rChannelID);
else if(!rSound)
rEngine->ReportError(ZERR_NOSOUND, "Pause");
}
void ZSound::Unpause() const
{
if(rSound && rChannelID >= 0)
Mix_Resume(rChannelID);
else if(!rSound)
rEngine->ReportError(ZERR_NOSOUND, "Unpause");
}
void ZSound::Stop(int fadeTime) const
{
if(rSound && rChannelID >= 0)
{
if(fadeTime)
Mix_FadeOutChannel(rChannelID,fadeTime);
else
Mix_HaltChannel(rChannelID);
}
else if(!rSound)
rEngine->ReportError(ZERR_NOSOUND, "Stop");
}
void ZSound::SetVolume(int volume)
{
if(rSound)
Mix_VolumeChunk(rSound,volume);
else
rEngine->ReportError(ZERR_NOSOUND, "SetVolume");
}
bool ZSound::IsLoaded() const
{
return rSound != NULL;
}
bool ZSound::IsPlaying() const
{
if(rSound && rChannelID >= 0)
return Mix_Playing(rChannelID) > 0;
else
{
if(rChannelID >= 0)
rEngine->ReportError(ZERR_NOSOUND, "IsPlaying");
return false;
}
}
bool ZSound::IsPaused() const
{
if(rSound && rChannelID >= 0)
return Mix_Paused(rChannelID) > 0;
else
{
rEngine->ReportError(ZERR_NOSOUND, "IsPaused");
return false;
}
}
int ZSound::Volume() const
{
if(rSound)
return Mix_VolumeChunk(rSound,-1);
else
{
rEngine->ReportError(ZERR_NOSOUND, "GetVolume");
return -1;
}
}
}
#endif