Add RageMusic. This will reduce dependencies on RageSoundManager.
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
/* This is just a simple wrapper to handle a single music track conveniently. */
|
||||
#include "global.h"
|
||||
#include "RageMusic.h"
|
||||
#include "RageSound.h"
|
||||
|
||||
RageMusic::RageMusic()
|
||||
{
|
||||
music = new RageSound;
|
||||
}
|
||||
|
||||
RageMusic::~RageMusic()
|
||||
{
|
||||
delete music;
|
||||
}
|
||||
|
||||
|
||||
CString RageMusic::GetPath() const
|
||||
{
|
||||
return music->GetLoadedFilePath();
|
||||
}
|
||||
|
||||
void RageMusic::Play(CString file, bool force_loop, float start_sec, float length_sec, float fade_len)
|
||||
{
|
||||
// LOG->Trace("play '%s' (current '%s')", file.c_str(), music->GetLoadedFilePath().c_str());
|
||||
if(music->IsPlaying())
|
||||
{
|
||||
if( music->GetLoadedFilePath() == file )
|
||||
return; // do nothing
|
||||
|
||||
music->StopPlaying();
|
||||
}
|
||||
|
||||
/* If file is blank, just stop. */
|
||||
if(file.empty())
|
||||
{
|
||||
music->Unload();
|
||||
return;
|
||||
}
|
||||
|
||||
music->Load( file, false );
|
||||
if( force_loop )
|
||||
music->SetStopMode( RageSound::M_LOOP );
|
||||
|
||||
if(start_sec == -1)
|
||||
music->SetStartSeconds();
|
||||
else
|
||||
music->SetStartSeconds(start_sec);
|
||||
|
||||
if(length_sec == -1)
|
||||
music->SetLengthSeconds();
|
||||
else
|
||||
music->SetLengthSeconds(length_sec);
|
||||
|
||||
music->SetFadeLength(fade_len);
|
||||
music->SetPositionSeconds();
|
||||
music->StartPlaying();
|
||||
}
|
||||
|
||||
/*
|
||||
-----------------------------------------------------------------------------
|
||||
Copyright (c) 2002-2003 by the person(s) listed below. All rights reserved.
|
||||
Glenn Maynard
|
||||
-----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
#ifndef RAGE_MUSIC_H
|
||||
|
||||
class RageSound;
|
||||
class RageMusic
|
||||
{
|
||||
RageSound *music;
|
||||
|
||||
public:
|
||||
RageMusic();
|
||||
~RageMusic();
|
||||
|
||||
void Play(CString file, bool force_loop = false, float start_sec = -1, float length_sec = -1, float fade_len = 0);
|
||||
void Stop() { Play(""); }
|
||||
CString GetPath() const;
|
||||
};
|
||||
|
||||
extern RageMusic *MUSIC;
|
||||
#endif
|
||||
Reference in New Issue
Block a user