I fixed all bugs I could find

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1292 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
beveloper 2002-09-29 16:37:11 +00:00
parent 716d20e1e9
commit 7d3c9b37ac

View File

@ -22,7 +22,9 @@ FileSoundWindow::FileSoundWindow(BRect windowBounds)
loop = false; loop = false;
preload = false; preload = false;
playing = false; playing = false;
paused = false;
rampTime = 0; rampTime = 0;
fileSound = 0;
//make openPanel and let it send its messages to this window //make openPanel and let it send its messages to this window
openPanel = new BFilePanel(); openPanel = new BFilePanel();
openPanel -> SetTarget(this); openPanel -> SetTarget(this);
@ -57,10 +59,10 @@ FileSoundWindow::FileSoundWindow(BRect windowBounds)
pauseButton = new BButton(pauseBounds,"pausebutton","Pause",pauseMessage); pauseButton = new BButton(pauseBounds,"pausebutton","Pause",pauseMessage);
box -> AddChild(pauseButton); box -> AddChild(pauseButton);
//make textcontrol to enter delay for pausing/resuming //make textcontrol to enter delay for pausing/resuming
BRect delayBounds(pauseBounds.right + 10, pauseBounds.top,pauseBounds.right + 50, pauseBounds.bottom); BRect delayBounds(pauseBounds.right + 10, pauseBounds.top,pauseBounds.right + 150, pauseBounds.bottom);
BMessage *delayMessage = new BMessage(DELAY_MSG); delayControl = new BTextControl(delayBounds,"delay","Ramp time (ms)","0", new BMessage(DELAY_MSG));
delayControl = new BTextControl(delayBounds,"delay","","",delayMessage); delayControl -> SetDivider(90);
delayControl -> SetDivider(0); delayControl -> SetModificationMessage(new BMessage(DELAY_MSG));
box -> AddChild(delayControl); box -> AddChild(delayControl);
//make loop checkbox //make loop checkbox
BRect loopBounds(playBounds.left,playBounds.bottom + 20, playBounds.left + 150, playBounds.bottom + 30); BRect loopBounds(playBounds.left,playBounds.bottom + 20, playBounds.left + 150, playBounds.bottom + 30);
@ -78,8 +80,6 @@ FileSoundWindow::FileSoundWindow(BRect windowBounds)
FileSoundWindow::~FileSoundWindow() FileSoundWindow::~FileSoundWindow()
{ {
//delete openPanel;
//delete fileSound;
} }
void FileSoundWindow::MessageReceived(BMessage *message) void FileSoundWindow::MessageReceived(BMessage *message)
@ -106,6 +106,8 @@ void FileSoundWindow::MessageReceived(BMessage *message)
status_t error = fileSound -> InitCheck(); status_t error = fileSound -> InitCheck();
if (error != B_OK) if (error != B_OK)
{ {
delete fileSound;
fileSound = 0;
if (error == B_NO_MEMORY) if (error == B_NO_MEMORY)
{ {
BAlert *alert = new BAlert("alert","Not enough memory.","Ok"); BAlert *alert = new BAlert("alert","Not enough memory.","Ok");
@ -122,6 +124,8 @@ void FileSoundWindow::MessageReceived(BMessage *message)
alert -> Go(); alert -> Go();
} }
} }
paused = false;
pauseButton -> SetLabel("Pause");
//preload sound file? //preload sound file?
if (preload) if (preload)
{ {
@ -175,12 +179,17 @@ void FileSoundWindow::MessageReceived(BMessage *message)
playButton -> SetLabel("Play"); playButton -> SetLabel("Play");
playing = false; playing = false;
} }
delete fileSound;
fileSound = 0;
} }
} }
break; break;
case PAUSE_MSG: case PAUSE_MSG:
{ {
if (!fileSound)
break;
int32 pausedValue = fileSound -> IsPaused(); int32 pausedValue = fileSound -> IsPaused();
if (pausedValue != BFileGameSound::B_PAUSE_IN_PROGRESS) if (pausedValue != BFileGameSound::B_PAUSE_IN_PROGRESS)
{ {
@ -241,7 +250,7 @@ void FileSoundWindow::MessageReceived(BMessage *message)
case DELAY_MSG: case DELAY_MSG:
{ {
//set delay time for resuming/pausing //set delay time for resuming/pausing
rampTime = atol(delayControl -> Text()); rampTime = atol(delayControl -> Text()) * 1000;
} }
break; break;
} }
@ -250,8 +259,11 @@ void FileSoundWindow::MessageReceived(BMessage *message)
bool FileSoundWindow::QuitRequested() bool FileSoundWindow::QuitRequested()
{ {
/*if (fileSound != 0 && fileSound -> IsPlaying())
fileSound -> StopPlaying();*/ delete openPanel;
if (fileSound != 0 && fileSound -> IsPlaying())
fileSound -> StopPlaying();
delete fileSound;
be_app->PostMessage(B_QUIT_REQUESTED); be_app->PostMessage(B_QUIT_REQUESTED);
return(true); return(true);
} }