From 6c7c289c62ba27696c1fbf6515c13ec0ffdf0e62 Mon Sep 17 00:00:00 2001 From: Peter Veenstra Date: Sun, 26 Feb 2006 16:01:31 +0000 Subject: [PATCH] Hopefully fix gameblaster support. Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@2518 --- src/hardware/gameblaster.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/hardware/gameblaster.cpp b/src/hardware/gameblaster.cpp index af3be1b0..db647db6 100644 --- a/src/hardware/gameblaster.cpp +++ b/src/hardware/gameblaster.cpp @@ -364,7 +364,7 @@ static void saa1099_write_port_w( int chip, int offset, int data ) static void write_cms(Bitu port,Bitu val,Bitu iolen) { - if (last_command + 1000 < PIC_Ticks) cms_chan->Enable(true); + if (last_command + 1000 < PIC_Ticks) if(cms_chan) cms_chan->Enable(true); last_command = PIC_Ticks; switch (port) { case 0x0220: @@ -415,8 +415,8 @@ static void write_cms(Bitu port,Bitu val,Bitu iolen) { else *stream=(Bit16s)right; stream++; } - cms_chan->AddSamples_s16(len,(Bit16s *)MixTemp); - if (last_command + 10000 < PIC_Ticks) cms_chan->Enable(false); + if(cms_chan) cms_chan->AddSamples_s16(len,(Bit16s *)MixTemp); + if (last_command + 10000 < PIC_Ticks) if(cms_chan) cms_chan->Enable(false); } @@ -427,15 +427,16 @@ private: public: CMS(Section* configuration):Module_base(configuration) { - Section_prop * section=static_cast(configuration); - Bitu sample_rate = section->Get_int("oplrate"); + Section_prop * section = static_cast(configuration); + Bitu sample_rate_temp = section->Get_int("oplrate"); + sample_rate = static_cast(sample_rate_temp); Bitu base = section->Get_hex("base"); WriteHandler.Install(base,write_cms,IO_MB,4); - + /* Register the Mixer CallBack */ - cms_chan = MixerChan.Install(CMS_CallBack,sample_rate,"CMS"); + cms_chan = MixerChan.Install(CMS_CallBack,sample_rate_temp,"CMS"); - last_command=PIC_Ticks; + last_command = PIC_Ticks; for (int s=0;s<2;s++) { struct SAA1099 *saa = &saa1099[s]; @@ -443,7 +444,7 @@ public: } } ~CMS() { - cms_chan->Enable(false); + cms_chan = 0; } };