Diff for /np2/wince/soundmng.cpp between versions 1.1 and 1.6

version 1.1, 2003/10/21 14:57:41 version 1.6, 2003/11/28 21:06:03
Line 5 Line 5
 #include        "soundmng.h"  #include        "soundmng.h"
 #include        "sound.h"  #include        "sound.h"
 #if defined(VERMOUTH_LIB)  #if defined(VERMOUTH_LIB)
 #include        "vermouth.h"  #include        "commng.h"
   #include        "cmver.h"
 #endif  #endif
   
   
Line 29  static DWORD  lasttick = 0; Line 30  static DWORD  lasttick = 0;
 static  DWORD           retry = 0;  static  DWORD           retry = 0;
 static  UINT            currate = 22050;  static  UINT            currate = 22050;
 static  UINT            curms = 500;  static  UINT            curms = 500;
 static  BYTE            playing;  static  UINT            mute;
   
 #if defined(VERMOUTH_LIB)  
                 MIDIMOD         vermouth_module = NULL;  
 #endif  
   
 static const DWORD capsfmt[] = {  static const DWORD capsfmt[] = {
                         WAVE_FORMAT_1S16, WAVE_FORMAT_2S16, WAVE_FORMAT_4S16};                          WAVE_FORMAT_1S16, WAVE_FORMAT_2S16, WAVE_FORMAT_4S16};
Line 46  static const DWORD capsfmt[] = { Line 43  static const DWORD capsfmt[] = {
   
 extern HWND hWndMain;  extern HWND hWndMain;
   
 void wavemng_cb(UINT msg, HWAVEOUT hwo, WAVEHDR *whd) {  void soundmng_cb(UINT msg, HWAVEOUT hwo, WAVEHDR *whd) {
   
         short           *dst;          short           *dst;
 const SINT32    *pcm;  const SINT32    *pcm;
Line 56  const SINT32 *pcm; Line 53  const SINT32 *pcm;
                 if (whd->lpData) {                  if (whd->lpData) {
                         dst = (short *)whd->lpData;                          dst = (short *)whd->lpData;
                         pcm = NULL;                          pcm = NULL;
                         if (playing) {                          if (!mute) {
                                 pcm = sound_pcmlock();                                  pcm = sound_pcmlock();
                         }                          }
                         if (pcm) {                          if (pcm) {
Line 84  const SINT32 *pcm; Line 81  const SINT32 *pcm;
                 if (((WAVEHDR *)dwParam1)->lpData) {                  if (((WAVEHDR *)dwParam1)->lpData) {
                         dst = (short *)((WAVEHDR *)dwParam1)->lpData;                          dst = (short *)((WAVEHDR *)dwParam1)->lpData;
                         pcm = NULL;                          pcm = NULL;
                         if (playing) {                          if (!mute) {
                                 pcm = sound_pcmlock();                                  pcm = sound_pcmlock();
                         }                          }
                         if (pcm) {                          if (pcm) {
Line 114  UINT soundmng_create(UINT rate, UINT ms) Line 111  UINT soundmng_create(UINT rate, UINT ms)
         if (waveopened) {          if (waveopened) {
                 return(0);                  return(0);
         }          }
   
           mute = 1 << SNDPROC_NP2;
   
         switch(rate) {          switch(rate) {
                 case 11025:                  case 11025:
                         type = 0;                          type = 0;
Line 180  UINT soundmng_create(UINT rate, UINT ms) Line 180  UINT soundmng_create(UINT rate, UINT ms)
                                 waveOutWrite(w_ctrl.hwave, w_ctrl.wh + i, sizeof(WAVEHDR));                                  waveOutWrite(w_ctrl.hwave, w_ctrl.wh + i, sizeof(WAVEHDR));
                         }                          }
 #if defined(VERMOUTH_LIB)  #if defined(VERMOUTH_LIB)
                         vermouth_module = midimod_create(rate);                          cmvermouth_load(rate);
                         for (num=0; num<128; num++) {  
                                 midimod_loadprogram(vermouth_module, num);  
                                 midimod_loadrhythm(vermouth_module, num);  
                         }  
 #endif  #endif
                         currate = rate;                          currate = rate;
                         curms = ms;                          curms = ms;
                         waveopened = TRUE;                          waveopened = TRUE;
                           TRACEOUT(("soundmng success."));
                         return(w_ctrl.samples);                          return(w_ctrl.samples);
                 }                  }
                 _MFREE(w_ctrl.buffer);                  _MFREE(w_ctrl.buffer);
                   TRACEOUT(("soundmng failure."));
         }          }
         return(0);          return(0);
 }  }
   
 void soundmng_destroy(void) {  void soundmng_destroy(void) {
   
         int             i;  #if defined(_WIN32_WCE)
         int             retry = 10;          OSVERSIONINFO   osvi;
   #endif
           BOOL                    hpc4;
           int                             i;
           int                             retry = 10;
   
         if (waveopened) {          if (waveopened) {
 #if (defined(WIN32_PLATFORM_PSPC)) || (!defined(ARM))  #if defined(_WIN32_WCE)
                 for (i=0; i<2; i++) {                  ZeroMemory(&osvi, sizeof(osvi));
                         waveOutUnprepareHeader(w_ctrl.hwave, w_ctrl.wh + i,                  osvi.dwOSVersionInfoSize = sizeof(osvi);
                   GetVersionEx(&osvi);
                   hpc4 = (osvi.dwMajorVersion >= 4);
   #else
                   hpc4 = FALSE;
   #endif
                   if (!hpc4) {
                           for (i=0; i<2; i++) {
                                   waveOutUnprepareHeader(w_ctrl.hwave, w_ctrl.wh + i,
                                                                                                                         sizeof(WAVEHDR));                                                                                                                          sizeof(WAVEHDR));
                         w_ctrl.wh[i].lpData = NULL;                                  w_ctrl.wh[i].lpData = NULL;
                           }
                           waveOutPause(w_ctrl.hwave);
                           waveOutReset(w_ctrl.hwave);
                 }                  }
                 waveOutPause(w_ctrl.hwave);                  else {
                 waveOutReset(w_ctrl.hwave);                          waveOutReset(w_ctrl.hwave);
 #else                          for (i=0; i<2; i++) {
                 waveOutReset(w_ctrl.hwave);                                  waveOutUnprepareHeader(w_ctrl.hwave, w_ctrl.wh + i,
                 for (i=0; i<2; i++) {  
                         waveOutUnprepareHeader(w_ctrl.hwave, w_ctrl.wh + i,  
                                                                                                                         sizeof(WAVEHDR));                                                                                                                          sizeof(WAVEHDR));
                         w_ctrl.wh[i].lpData = NULL;                                  w_ctrl.wh[i].lpData = NULL;
                           }
                 }                  }
 #endif  
                 do {                  do {
                         if (waveOutClose(w_ctrl.hwave) == MMSYSERR_NOERROR) {                          if (waveOutClose(w_ctrl.hwave) == MMSYSERR_NOERROR) {
                                 _HANDLE_REM(w_ctrl.hwave);                                  _HANDLE_REM(w_ctrl.hwave);
Line 227  void soundmng_destroy(void) { Line 238  void soundmng_destroy(void) {
                 } while(--retry);                  } while(--retry);
                 _MFREE(w_ctrl.buffer);                  _MFREE(w_ctrl.buffer);
 #if defined(VERMOUTH_LIB)  #if defined(VERMOUTH_LIB)
                 midimod_destroy(vermouth_module);  //              cmvermouth_unload();                    // 終了時に unload
                 vermouth_module = NULL;  
 #endif  #endif
                 waveopened = FALSE;                  waveopened = FALSE;
         }          }
 }  }
   
 void soundmng_play(void) {  
   
         playing = TRUE;  
 }  
   
 void soundmng_stop(void) {  // ----
   
         playing = FALSE;  // WinCE版 … vermouthのロードに時間掛かるので
   void soundmng_initialize(void) {
 }  }
   
   void soundmng_deinitialize(void) {
   
 // ----  #if defined(VERMOUTH_LIB)
           cmvermouth_unload();
   #endif
   }
   
 void soundmng_awake(void) {  void soundmng_awake(void) {
   
Line 265  void soundmng_awake(void) { Line 276  void soundmng_awake(void) {
         }          }
 }  }
   
   void soundmng_enable(UINT proc) {
   
           mute &= ~(1 << proc);
   }
   
   void soundmng_disable(UINT proc) {
   
           mute |= 1 << proc;
   }
   

Removed from v.1.1  
changed lines
  Added in v.1.6


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