diff options
author | Neil Millstone | 2010-02-26 17:29:18 +0000 |
---|---|---|
committer | Neil Millstone | 2010-02-26 17:29:18 +0000 |
commit | 4a8ab4b075a186ce70c441ee0ceb3f6d5019d948 (patch) | |
tree | fb81e929f451c6ea2f787c5df458c25b8ce96b1a /backends/platform/ds/arm9/source/cdaudio.cpp | |
parent | bcb721cccd46fccba164044cf8afea92872a3c0f (diff) | |
download | scummvm-rg350-4a8ab4b075a186ce70c441ee0ceb3f6d5019d948.tar.gz scummvm-rg350-4a8ab4b075a186ce70c441ee0ceb3f6d5019d948.tar.bz2 scummvm-rg350-4a8ab4b075a186ce70c441ee0ceb3f6d5019d948.zip |
DS: Merging accross changes from branch1-0-0 into trunk.
svn-id: r48136
Diffstat (limited to 'backends/platform/ds/arm9/source/cdaudio.cpp')
-rw-r--r-- | backends/platform/ds/arm9/source/cdaudio.cpp | 41 |
1 files changed, 33 insertions, 8 deletions
diff --git a/backends/platform/ds/arm9/source/cdaudio.cpp b/backends/platform/ds/arm9/source/cdaudio.cpp index 140c709a8c..7756286117 100644 --- a/backends/platform/ds/arm9/source/cdaudio.cpp +++ b/backends/platform/ds/arm9/source/cdaudio.cpp @@ -137,18 +137,21 @@ void playTrack(int track, int numLoops, int startFrame, int duration) { char str[100]; - if (path[strlen(path.c_str()) - 1] == '/') { - sprintf(str, "track%d.wav", track); - path = path + str; - } else { - sprintf(str, "/track%d.wav", track); - path = path + str; + if (path[strlen(path.c_str()) - 1] != '/') { + path = path + "/"; } + Common::String fname; - //1820160 + sprintf(str, "track%d.wav", track); + fname = path + str; + file = DS::std_fopen(fname.c_str(), "rb"); - file = DS::std_fopen(path.c_str(), "rb"); + if (!file) { + sprintf(str, "track%02d.wav", track); + fname = path + str; + file = DS::std_fopen(fname.c_str(), "rb"); + } if (!file) { consolePrintf("Failed to open %s!\n", path.c_str()); @@ -158,6 +161,8 @@ void playTrack(int track, int numLoops, int startFrame, int duration) { DS::std_fread((const void *) &waveHeader, sizeof(waveHeader), 1, file); + consolePrintf("File: %s\n", fname.c_str()); + consolePrintf("Playing track %d\n", track); consolePrintf("Format: %d\n", waveHeader.fmtFormatTag); consolePrintf("Rate : %d\n", waveHeader.fmtSamPerSec); @@ -496,6 +501,26 @@ bool trackExists(int num) { setActive(true); DS::std_fclose(file); return true; + } + + sprintf(fname, "track%02d.wav", num); + + path = ConfMan.get("path"); + + if (path[strlen(path.c_str()) - 1] == '/') { + path = path + fname; + } else { + path = path + "/" + fname; + } + + consolePrintf("Looking for %s...", path.c_str()); + + + if ((file = DS::std_fopen(path.c_str(), "r"))) { + consolePrintf("Success!\n"); + setActive(true); + DS::std_fclose(file); + return true; } else { setActive(false); consolePrintf("Failed!\n"); |