Skip to content

Commit

Permalink
Allow mono atrac3 for "game menu backgrund audio". Fix possible data …
Browse files Browse the repository at this point in the history
…race.
  • Loading branch information
hrydgard committed Oct 3, 2015
1 parent 8ab0a3c commit 682472c
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 3 deletions.
8 changes: 7 additions & 1 deletion UI/BackgroundAudio.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ class AT3PlusReader {

raw_data_ = (uint8_t *)malloc(numBytes);
raw_data_size_ = numBytes;
if (/*raw_bytes_per_frame_ == 280 && */ num_channels == 2) {
if (/*raw_bytes_per_frame_ == 280 && */ num_channels == 1 || num_channels == 2) {
file_.readData(raw_data_, numBytes);
} else {
ELOG("Error - bad blockalign or channels");
Expand Down Expand Up @@ -174,6 +174,7 @@ static void ClearBackgroundAudio() {
at3Reader = 0;
}
playbackOffset = 0;
gameLastChanged = 0;
}

void SetBackgroundAudioGame(const std::string &path) {
Expand Down Expand Up @@ -210,6 +211,11 @@ int PlayBackgroundAudio() {
if (!gameInfo)
return 0;

if (gameInfo->pending) {
// Should try again shortly..
return 0;
}

if (gameInfo->sndFileData.size()) {
const std::string &data = gameInfo->sndFileData;
at3Reader = new AT3PlusReader(data);
Expand Down
2 changes: 1 addition & 1 deletion UI/GameInfoCache.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -563,7 +563,7 @@ class GameInfoWorkItem : public PrioritizedWorkQueueItem {
info_->saveDataSize = info_->GetSaveDataSizeInBytes();
info_->installDataSize = info_->GetInstallDataSizeInBytes();
}

info_->pending = false;
info_->DisposeFileLoader();
}

Expand Down
3 changes: 2 additions & 1 deletion UI/GameInfoCache.h
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ class GameInfo {
: disc_total(0), disc_number(0), region(-1), fileType(FILETYPE_UNKNOWN), paramSFOLoaded(false),
hasConfig(false), iconTexture(nullptr), pic0Texture(nullptr), pic1Texture(nullptr), wantFlags(0),
lastAccessedTime(0.0), timeIconWasLoaded(0.0), timePic0WasLoaded(0.0), timePic1WasLoaded(0.0),
gameSize(0), saveDataSize(0), installDataSize(0), fileLoader(nullptr) {}
gameSize(0), saveDataSize(0), installDataSize(0), pending(true), fileLoader(nullptr) {}
~GameInfo();

bool Delete(); // Better be sure what you're doing when calling this.
Expand Down Expand Up @@ -163,6 +163,7 @@ class GameInfo {
u64 gameSize;
u64 saveDataSize;
u64 installDataSize;
bool pending;

protected:
FileLoader *fileLoader;
Expand Down

0 comments on commit 682472c

Please sign in to comment.