diff --git a/src/apps/cdplayer/CDAudioDevice.h b/src/apps/cdplayer/CDAudioDevice.h index 3887815ee1..2d210ce40c 100644 --- a/src/apps/cdplayer/CDAudioDevice.h +++ b/src/apps/cdplayer/CDAudioDevice.h @@ -10,7 +10,8 @@ enum CDState { kStopped, kPaused, kPlaying, - kSkipping + kSkipping, + kError }; typedef struct diff --git a/src/apps/cdplayer/CDEngine.cpp b/src/apps/cdplayer/CDEngine.cpp index b953fdbde1..f8519ceb4e 100644 --- a/src/apps/cdplayer/CDEngine.cpp +++ b/src/apps/cdplayer/CDEngine.cpp @@ -189,7 +189,7 @@ CDContentWatcher::GetContent(BString *title, vector *tracks) bool CDContentWatcher::UpdateState() { - bool newDiscID = -1; + int32 newDiscID = -1; // Check the table of contents to see if the new one is different // from the old one whenever there is a CD in the drive diff --git a/src/apps/cdplayer/CDPlayer.cpp b/src/apps/cdplayer/CDPlayer.cpp index 2e3d12449f..07b0b7ca87 100644 --- a/src/apps/cdplayer/CDPlayer.cpp +++ b/src/apps/cdplayer/CDPlayer.cpp @@ -528,20 +528,29 @@ CDPlayer::UpdateCDInfo(void) vector trackNames; int32 currentTrack = engine->TrackStateWatcher()->GetTrack(); - engine->ContentWatcher()->GetContent(&CDName,&trackNames); + if(currentTrack < 1) + return; - fCDTitle->SetText(CDName.String()); + bool trackresult =engine->ContentWatcher()->GetContent(&CDName,&trackNames); + + if(trackresult) + fCDTitle->SetText(CDName.String()); + else + fCDTitle->SetText("Audio CD"); if(currentTrack > 0) { - currentTrackName << "Track " << currentTrack << ": " << trackNames[ currentTrack - 1]; + if(trackresult) + { + currentTrackName << "Track " << currentTrack << ": " << trackNames[ currentTrack - 1]; + fCurrentTrack->SetText(currentTrackName.String()); + + return; + } + + currentTrackName << "Track " << currentTrack; fCurrentTrack->SetText(currentTrackName.String()); } - else - { - fCurrentTrack->SetText("Track:"); - } - } void