From 66c912db47de487d30680de4d9e609340b612175 Mon Sep 17 00:00:00 2001 From: DarkWyrm Date: Fri, 8 Jul 2005 01:37:37 +0000 Subject: [PATCH] CDPlayer doesn't crash anymore when the CDDB lookup fails git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13551 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/cdplayer/CDAudioDevice.h | 3 ++- src/apps/cdplayer/CDEngine.cpp | 2 +- src/apps/cdplayer/CDPlayer.cpp | 25 +++++++++++++++++-------- 3 files changed, 20 insertions(+), 10 deletions(-) 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