Diff for /xmil/sound/sound.c between versions 1.2 and 1.5

version 1.2, 2004/08/05 11:46:26 version 1.5, 2005/02/04 06:42:12
Line 1 Line 1
 #include        "compiler.h"  #include        "compiler.h"
 // #include     "wavefile.h"  
   #if !defined(DISABLE_SOUND)
   
   #include        "wavefile.h"
 #include        "dosio.h"  #include        "dosio.h"
 #include        "soundmng.h"  #include        "soundmng.h"
 // #include     "cpucore.h"  #include        "z80core.h"
 // #include     "pccore.h"  #include        "pccore.h"
 // #include     "iocore.h"  
 #include        "sound.h"  #include        "sound.h"
 #include        "sndcsec.h"  #include        "sndcsec.h"
 // #include     "getsnd.h"  // #include     "getsnd.h"
Line 67  static void streamprepare(UINT samples)  Line 69  static void streamprepare(UINT samples) 
 #if defined(SUPPORT_WAVEREC)  #if defined(SUPPORT_WAVEREC)
 // ---- wave rec  // ---- wave rec
   
 BOOL sound_recstart(const char *filename) {  BRESULT sound_recstart(const OEMCHAR *filename) {
   
         WAVEWR  rec;          WAVEWR  rec;
   
Line 166  static void filltailsample(UINT count) { Line 168  static void filltailsample(UINT count) {
   
 // ----  // ----
   
 BOOL sound_create(UINT rate, UINT ms) {  BRESULT sound_create(UINT rate, UINT ms) {
   
         UINT    samples;          UINT    samples;
         UINT    reserve;          UINT    reserve;
Line 179  BOOL sound_create(UINT rate, UINT ms) { Line 181  BOOL sound_create(UINT rate, UINT ms) {
         soundmng_reset();          soundmng_reset();
   
         soundcfg.rate = rate;          soundcfg.rate = rate;
         sound_changeclock();  
   
 #if defined(SOUNDRESERVE)  #if defined(SOUNDRESERVE)
         reserve = rate * SOUNDRESERVE / 1000;          reserve = rate * SOUNDRESERVE / 1000;
Line 225  void sound_reset(void) { Line 226  void sound_reset(void) {
         if (sndstream.buffer) {          if (sndstream.buffer) {
                 soundmng_reset();                  soundmng_reset();
                 streamreset();                  streamreset();
                 soundcfg.length = 0;                  soundcfg.lastclock = CPU_CLOCK;
 //              soundcfg.lastclock = CPU_CLOCK;  
         }          }
 }  }
   
 void sound_changeclock(void) {  void sound_changeclock(void) {
   
 #if 0  
         UINT32  clock;          UINT32  clock;
         UINT    hz;          UINT    hz;
         UINT    hzmax;          UINT    hzmax;
Line 256  void sound_changeclock(void) { Line 255  void sound_changeclock(void) {
         soundcfg.clockbase = clock;          soundcfg.clockbase = clock;
         soundcfg.minclock = 2 * clock / hz;          soundcfg.minclock = 2 * clock / hz;
         soundcfg.lastclock = CPU_CLOCK;          soundcfg.lastclock = CPU_CLOCK;
 #endif  
 }  }
   
 void sound_streamregist(void *hdl, SOUNDCB cbfn) {  void sound_streamregist(void *hdl, SOUNDCB cbfn) {
Line 274  void sound_streamregist(void *hdl, SOUND Line 272  void sound_streamregist(void *hdl, SOUND
   
 // ----  // ----
   
 #if 0  
 void sound_sync(void) {  void sound_sync(void) {
   
         UINT32  length;          UINT32  length;
Line 282  void sound_sync(void) { Line 279  void sound_sync(void) {
         if (sndstream.buffer == NULL) {          if (sndstream.buffer == NULL) {
                 return;                  return;
         }          }
   
         length = CPU_CLOCK + CPU_BASECLOCK - CPU_REMCLOCK - soundcfg.lastclock;          length = CPU_CLOCK + CPU_BASECLOCK - CPU_REMCLOCK - soundcfg.lastclock;
         if (length < soundcfg.minclock) {          if (length < soundcfg.minclock) {
                 return;                  return;
Line 300  void sound_sync(void) { Line 296  void sound_sync(void) {
 #endif  #endif
         streamprepare(length);          streamprepare(length);
         soundcfg.lastclock += length * soundcfg.clockbase / soundcfg.hzbase;          soundcfg.lastclock += length * soundcfg.clockbase / soundcfg.hzbase;
         beep_eventreset();  
         SNDCSEC_LEAVE;  
   
         soundcfg.writecount += length;  
         if (soundcfg.writecount >= 100) {  
                 soundcfg.writecount = 0;  
                 soundmng_sync();  
         }  
 }  
 #endif  
   
 void sound_makesample(UINT length) {  
   
         soundcfg.length += length;  
 }  
   
 void sound_sync(void) {  
   
         UINT    length;  
   
         length = soundcfg.length;  
         if (length == 0) {  
                 return;  
         }  
         if (sndstream.buffer == NULL) {  
                 return;  
         }  
         SNDCSEC_ENTER;  
 #if defined(SUPPORT_WAVEREC)  
         if (sndstream.rec) {  
                 streamfilewrite(length);  
         }  
         else  
 #endif  
         streamprepare(length);  
 //      soundcfg.lastclock += length * soundcfg.clockbase / soundcfg.hzbase;  
         soundcfg.length = 0;  
         SNDCSEC_LEAVE;          SNDCSEC_LEAVE;
   
         soundcfg.writecount += length;          soundcfg.writecount += length;
Line 370  const SINT32 *ret; Line 329  const SINT32 *ret;
 #endif  #endif
                 {                  {
                         streamprepare(sndstream.remain - sndstream.reserve);                          streamprepare(sndstream.remain - sndstream.reserve);
                         soundcfg.length = 0;                          soundcfg.lastclock = CPU_CLOCK + CPU_BASECLOCK - CPU_REMCLOCK;
 //                      soundcfg.lastclock = CPU_CLOCK + CPU_BASECLOCK - CPU_REMCLOCK;  
                 }                  }
         }          }
         else {          else {
Line 399  void sound_pcmunlock(const SINT32 *hdl)  Line 357  void sound_pcmunlock(const SINT32 *hdl) 
         }          }
 }  }
   
   #endif
   

Removed from v.1.2  
changed lines
  Added in v.1.5


RetroPC.NET-CVS <cvs@retropc.net>