- check for bx_options.sb16.Opresent added in init() and the destructor

(SB16 was always enabled before)
- call finishmidifile() and finishvocfile() in the destructor only if the
  files are vaild
This commit is contained in:
Volker Ruppert 2002-08-23 18:12:02 +00:00
parent b42c7228f0
commit eb0e95f54d

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: sb16.cc,v 1.20 2002-06-16 15:02:28 vruppert Exp $
// $Id: sb16.cc,v 1.21 2002-08-23 18:12:02 vruppert Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2002 MandrakeSoft S.A.
@ -58,33 +58,38 @@ bx_sb16_c::bx_sb16_c(void)
bx_sb16_c::~bx_sb16_c(void)
{
if (!bx_options.sb16.Opresent->get ())
return;
switch (bx_options.sb16.Omidimode->get ())
{
case 2:
finishmidifile();
if (MIDIDATA != NULL)
finishmidifile();
break;
case 1:
if (MPU.outputinit != 0)
BX_SB16_OUTPUT->closemidioutput();
BX_SB16_OUTPUT->closemidioutput();
break;
case 3:
if (MIDIDATA != NULL)
fclose(MIDIDATA);
fclose(MIDIDATA);
break;
}
switch (bx_options.sb16.Owavemode->get ())
{
case 2:
finishvocfile();
if (WAVEDATA != NULL)
finishvocfile();
break;
case 1:
if (DSP.outputinit != 0)
BX_SB16_OUTPUT->closewaveoutput();
BX_SB16_OUTPUT->closewaveoutput();
break;
case 3:
if (WAVEDATA != NULL)
fclose(WAVEDATA);
fclose(WAVEDATA);
break;
}
@ -101,6 +106,9 @@ void bx_sb16_c::init(bx_devices_c *d)
BX_SB16_THIS devices = d;
unsigned addr;
if (!bx_options.sb16.Opresent->get ())
return;
if ( (strlen(bx_options.sb16.Ologfile->getptr ()) < 1) )
bx_options.sb16.Ologlevel->set (0);