aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/ds/arm9/source/cdaudio.cpp
diff options
context:
space:
mode:
authorNeil Millstone2010-02-26 17:29:18 +0000
committerNeil Millstone2010-02-26 17:29:18 +0000
commit4a8ab4b075a186ce70c441ee0ceb3f6d5019d948 (patch)
treefb81e929f451c6ea2f787c5df458c25b8ce96b1a /backends/platform/ds/arm9/source/cdaudio.cpp
parentbcb721cccd46fccba164044cf8afea92872a3c0f (diff)
downloadscummvm-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.cpp41
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");