Changeset 3047 for trunk/src/dsound


Ignore:
Timestamp:
Mar 8, 2000, 9:44:09 PM (26 years ago)
Author:
mike
Message:

Fixed Moorhuhn

Location:
trunk/src/dsound/new
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/dsound/new/OS2SNDBUFFER.CPP

    r3044 r3047  
    1 /* $Id: OS2SNDBUFFER.CPP,v 1.2 2000-03-08 18:26:47 mike Exp $ */
     1/* $Id: OS2SNDBUFFER.CPP,v 1.3 2000-03-08 20:44:09 mike Exp $ */
    22
    33/*
     
    414414   OS2IDirectSoundBuffer *me = (OS2IDirectSoundBuffer *)This;
    415415
    416    dprintf(("DSOUND-OS2IDirectSoundBuffer::SoundBufLock (buf=%X, %d bytes)", me, dwWriteBytes));
     416   dprintf(("DSOUND-OS2IDirectSoundBuffer::SoundBufLock (buf=%X, %d bytes of %d)", me, dwWriteBytes, me->bufferdesc.dwBufferBytes));
    417417   if (me == NULL || !lplpvAudioPtr1 || !lpdwAudioBytes1)
    418418      return DSERR_INVALIDPARAM;
     
    462462   }
    463463
    464    me->frac     = 0;
    465    me->fPlaying = TRUE;
    466    me->status   = DSBSTATUS_PLAYING;
    467    me->fLoop = dwFlags == DSBPLAY_LOOPING;
    468    if (me->fLoop)
    469       me->status |= DSBSTATUS_LOOPING;
    470 
    471    dprintf(("  Buffer %X: start at pos %d, loop %s",me, me->playpos, me->fLoop?"YES":"NO"));
     464   if (!me->fPlaying) {
     465      me->frac     = 0;
     466      me->fPlaying = TRUE;
     467      me->status   = DSBSTATUS_PLAYING;
     468      me->fLoop = dwFlags == DSBPLAY_LOOPING;
     469      if (me->fLoop)
     470         me->status |= DSBSTATUS_LOOPING;
     471
     472      dprintf(("  Buffer %X: start at pos %d, loop %s",me, me->playpos, me->fLoop?"YES":"NO"));
     473   }
     474   else {
     475      me->fLoop = dwFlags == DSBPLAY_LOOPING;
     476      if (me->fLoop)
     477         me->status |= DSBSTATUS_LOOPING;
     478
     479      dprintf(("  Buffer %X: already playing, loop %s",me, me->fLoop?"YES":"NO"));
     480   }
     481
    472482   return DS_OK;
    473483}
     
    507517   OS2IDirectSoundBuffer *me = (OS2IDirectSoundBuffer *)This;
    508518
    509    dprintf(("DSOUND-OS2IDirectSoundBuffer::SoundBufSetVolume (buf=%X)", me));
    510    if (me == NULL) {
    511       return DSERR_INVALIDPARAM;
    512    }
    513    me->DSvolume = lVolume;
     519   dprintf(("DSOUND-OS2IDirectSoundBuffer::SoundBufSetVolume (%d, buf=%X)", lVolume, me));
     520   if (me == NULL) {
     521      return DSERR_INVALIDPARAM;
     522   }
     523   me->DSvolume = (lVolume > 0) ? 0 : lVolume;
    514524
    515525   /* = (10 ^ (1/10)) = 1dB - but the formula below gives results _very_ similar */
    516526   /* to 'real' DirectSound, indistinguishable for all practical purposes        */
    517    me->volume = 255.0 * pow(4, lVolume / 1000.0);
     527   me->volume = 255.0 * pow(4, me->DSvolume / 1000.0);
     528   dprintf(("  New volume: %d", me->volume));
    518529
    519530   return DS_OK;
     
    525536   OS2IDirectSoundBuffer *me = (OS2IDirectSoundBuffer *)This;
    526537
    527    dprintf(("DSOUND-OS2IDirectSoundBuffer::SoundBufSetPan (buf=%X)", me));
     538   dprintf(("DSOUND-OS2IDirectSoundBuffer::SoundBufSetPan (%d, buf=%X)", lPan, me));
    528539   if (me == NULL) {
    529540      return DSERR_INVALIDPARAM;
  • trunk/src/dsound/new/OS2SNDBUFFER.H

    r3044 r3047  
    1 /* $Id: OS2SNDBUFFER.H,v 1.2 2000-03-08 18:26:48 mike Exp $ */
     1/* $Id: OS2SNDBUFFER.H,v 1.3 2000-03-08 20:44:09 mike Exp $ */
    22
    33/*
     
    5252    BOOL  fLocked;             // is buffer currently locked?
    5353    BOOL  fPrimary;            // is this a primary buffer?
    54     DWORD DSvolume;            // DSB volume (in dB)
     54    LONG DSvolume;            // DSB volume (in dB)
    5555    LONG  volume;              // volume (linear)
    5656    LONG  DSpan;               // DSB pan (in dB)
Note: See TracChangeset for help on using the changeset viewer.