|
@@ -416,7 +416,7 @@ void CMusicHandler::playMusic(const std::string & musicURI, bool loop, bool from
|
|
|
if (current && current->isTrack(musicURI))
|
|
|
return;
|
|
|
|
|
|
- queueNext(this, "", musicURI, loop, fromStart);
|
|
|
+ queueNext(this, "", musicURI, loop, fromStart);
|
|
|
}
|
|
|
|
|
|
void CMusicHandler::playMusicFromSet(const std::string & whichSet, bool loop, bool fromStart)
|
|
@@ -432,7 +432,7 @@ void CMusicHandler::playMusicFromSet(const std::string & whichSet, bool loop, bo
|
|
|
return;
|
|
|
|
|
|
// in this mode - play random track from set
|
|
|
- queueNext(this, whichSet, "", loop, fromStart);
|
|
|
+ queueNext(this, whichSet, "", loop, fromStart);
|
|
|
}
|
|
|
|
|
|
void CMusicHandler::playMusicFromSet(const std::string & whichSet, const std::string & entryID, bool loop, bool fromStart)
|
|
@@ -455,7 +455,7 @@ void CMusicHandler::playMusicFromSet(const std::string & whichSet, const std::st
|
|
|
return;
|
|
|
|
|
|
// in this mode - play specific track from set
|
|
|
- queueNext(this, "", selectedEntry->second, loop, fromStart);
|
|
|
+ queueNext(this, "", selectedEntry->second, loop, fromStart);
|
|
|
}
|
|
|
|
|
|
void CMusicHandler::queueNext(std::unique_ptr<MusicEntry> queued)
|
|
@@ -478,7 +478,7 @@ void CMusicHandler::queueNext(CMusicHandler *owner, const std::string & setName,
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- queueNext(make_unique<MusicEntry>(owner, setName, musicURI, looped, fromStart));
|
|
|
+ queueNext(make_unique<MusicEntry>(owner, setName, musicURI, looped, fromStart));
|
|
|
}
|
|
|
catch(std::exception &e)
|
|
|
{
|
|
@@ -530,10 +530,10 @@ void CMusicHandler::musicFinishedCallback()
|
|
|
MusicEntry::MusicEntry(CMusicHandler *owner, std::string setName, std::string musicURI, bool looped, bool fromStart):
|
|
|
owner(owner),
|
|
|
music(nullptr),
|
|
|
- startTime(uint64_t(-1)),
|
|
|
- startPosition(0),
|
|
|
+ startTime(uint64_t(-1)),
|
|
|
+ startPosition(0),
|
|
|
loop(looped ? -1 : 1),
|
|
|
- fromStart(fromStart),
|
|
|
+ fromStart(fromStart),
|
|
|
setName(std::move(setName))
|
|
|
{
|
|
|
if (!musicURI.empty())
|
|
@@ -583,25 +583,25 @@ bool MusicEntry::play()
|
|
|
|
|
|
logGlobal->trace("Playing music file %s", currentName);
|
|
|
|
|
|
- if ( !fromStart && owner->trackPositions.count(currentName) > 0 && owner->trackPositions[currentName] > 0)
|
|
|
- {
|
|
|
- float timeToStart = owner->trackPositions[currentName];
|
|
|
- startPosition = std::round(timeToStart * 1000);
|
|
|
+ if ( !fromStart && owner->trackPositions.count(currentName) > 0 && owner->trackPositions[currentName] > 0)
|
|
|
+ {
|
|
|
+ float timeToStart = owner->trackPositions[currentName];
|
|
|
+ startPosition = std::round(timeToStart * 1000);
|
|
|
|
|
|
- if (Mix_FadeInMusicPos(music, 1, 1000, timeToStart) == -1)
|
|
|
- {
|
|
|
- logGlobal->error("Unable to play music (%s)", Mix_GetError());
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
- else if(Mix_PlayMusic(music, 1) == -1)
|
|
|
- {
|
|
|
- logGlobal->error("Unable to play music (%s)", Mix_GetError());
|
|
|
- return false;
|
|
|
- }
|
|
|
+ if (Mix_FadeInMusicPos(music, 1, 1000, timeToStart) == -1)
|
|
|
+ {
|
|
|
+ logGlobal->error("Unable to play music (%s)", Mix_GetError());
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if(Mix_PlayMusic(music, 1) == -1)
|
|
|
+ {
|
|
|
+ logGlobal->error("Unable to play music (%s)", Mix_GetError());
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
- startTime = SDL_GetTicks64();
|
|
|
- return true;
|
|
|
+ startTime = SDL_GetTicks64();
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
bool MusicEntry::stop(int fade_ms)
|
|
@@ -609,11 +609,11 @@ bool MusicEntry::stop(int fade_ms)
|
|
|
if (Mix_PlayingMusic())
|
|
|
{
|
|
|
loop = 0;
|
|
|
- uint64_t endTime = SDL_GetTicks64();
|
|
|
- assert(startTime != uint64_t(-1));
|
|
|
- float playDuration = (endTime - startTime + startPosition) / 1000.f;
|
|
|
- owner->trackPositions[currentName] = playDuration;
|
|
|
- logGlobal->info("Stopping music file %s at %f", currentName, playDuration);
|
|
|
+ uint64_t endTime = SDL_GetTicks64();
|
|
|
+ assert(startTime != uint64_t(-1));
|
|
|
+ float playDuration = (endTime - startTime + startPosition) / 1000.f;
|
|
|
+ owner->trackPositions[currentName] = playDuration;
|
|
|
+ logGlobal->info("Stopping music file %s at %f", currentName, playDuration);
|
|
|
|
|
|
Mix_FadeOutMusic(fade_ms);
|
|
|
return true;
|