Changeset 2637 for trunk/src


Ignore:
Timestamp:
Feb 4, 2000, 8:29:17 PM (26 years ago)
Author:
hugh
Message:

some minor dsound fixes

Location:
trunk/src/dsound
Files:
2 added
3 edited

Legend:

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

    r1744 r2637  
    1 /* $Id: OS2SNDBUFFER.CPP,v 1.5 1999-11-14 22:12:15 hugh Exp $ */
     1/* $Id: OS2SNDBUFFER.CPP,v 1.6 2000-02-04 19:29:16 hugh Exp $ */
    22
    33/*
     
    100100          bufferdesc.lpwfxFormat->cbSize + sizeof(WAVEFORMATEX));
    101101
     102  bufferdesc.lpwfxFormat = lpfxFormat;
     103
    102104  lpBuffer = (LPSTR)VirtualAlloc( 0, bufferdesc.dwBufferBytes, MEM_COMMIT, PAGE_READWRITE);
    103105  if(lpBuffer == NULL)
     
    108110      return;
    109111  }
     112
    110113}
    111114//******************************************************************************
     
    210213    Ticks = CurrentTicks-me->LastTickCnt;
    211214    dprintf(("  Is Playing, Ticks: Last %d Current %d Difference %d",me->LastTickCnt, CurrentTicks,Ticks));
    212     me->LastTickCnt = CurrentTicks;
    213 
    214     NewPos = ((me->frequency*Ticks)/1000)*(me->bufferdesc.lpwfxFormat->wBitsPerSample/8);
     215    dprintf(("  Frequency: %d Bits per Sample %d",me->frequency,me->lpfxFormat->wBitsPerSample));
     216
     217    NewPos = ((me->frequency*Ticks)/1000)*(me->lpfxFormat->wBitsPerSample/8);
    215218    dprintf(("  advance pos by %d bytes",NewPos));
     219
     220    if(NewPos)
     221      me->LastTickCnt = CurrentTicks;
    216222
    217223    if(me->playpos+NewPos >= me->bufferdesc.dwBufferBytes)
     
    235241    if(me->writepos >= me->bufferdesc.dwBufferBytes)
    236242      me->writepos = me->writepos % me->bufferdesc.dwBufferBytes;
    237 
     243    dprintf(("  new Pos Write: %d   Play: %d",me->writepos,me->playpos));
    238244  }
    239245  else
     
    361367    dwWriteCursor = me->writepos;
    362368  }
     369  dprintf(("  Buffer at 0x%08X Size %d",me->lpBuffer,me->bufferdesc.dwBufferBytes));
    363370  if(dwWriteCursor + dwWriteBytes > me->bufferdesc.dwBufferBytes )
    364371  {
    365372    *(DWORD *)lplpvAudioPtr1  = (DWORD)(me->lpBuffer + dwWriteCursor);
    366373    *lpdwAudioBytes1          = me->bufferdesc.dwBufferBytes - dwWriteCursor;
     374    dprintf(("  Lock1 at 0x%08X Size %d",*(DWORD *)lplpvAudioPtr1,*lpdwAudioBytes1));
    367375    if(lplpvAudioPtr2 && lpdwAudioBytes2)
    368376    {
    369         *(DWORD *)lplpvAudioPtr2   = (DWORD)me->lpBuffer;
    370         *lpdwAudioBytes2           = dwWriteBytes - *lpdwAudioBytes1;
     377      *(DWORD *)lplpvAudioPtr2   = (DWORD)me->lpBuffer;
     378      *lpdwAudioBytes2           = dwWriteBytes - *lpdwAudioBytes1;
     379      dprintf(("  Lock2 at 0x%08X Size %d",*(DWORD *)lplpvAudioPtr2,*lpdwAudioBytes2));
    371380    }
    372381  }
     
    375384    *(DWORD *)lplpvAudioPtr1  = (DWORD)(me->lpBuffer + dwWriteCursor);
    376385    *lpdwAudioBytes1          = dwWriteBytes;
     386    dprintf(("  Lock1 at 0x%08X Size %d",*(DWORD *)lplpvAudioPtr1,*lpdwAudioBytes1));
    377387    if(lplpvAudioPtr2 && lpdwAudioBytes2)
    378388    {
    379         *(DWORD *)lplpvAudioPtr2   = 0;
    380         *lpdwAudioBytes2           = 0;
     389      *(DWORD *)lplpvAudioPtr2   = 0;
     390      *lpdwAudioBytes2           = 0;
     391      dprintf(("  Lock2 at 0x%08X Size %d",*(DWORD *)lplpvAudioPtr2,*lpdwAudioBytes2));
    381392    }
    382393  }
     
    493504    me->LastTickCnt = CurrentTicks;
    494505
    495     NewPos = ((me->frequency*Ticks)/1000)*(me->bufferdesc.lpwfxFormat->wBitsPerSample>>8);
     506    NewPos = ((me->frequency*Ticks)/1000)*(me->lpfxFormat->wBitsPerSample>>8);
    496507    if(me->playpos+NewPos >= me->bufferdesc.dwBufferBytes)
    497508    {
     
    531542    return DSERR_INVALIDPARAM;
    532543  }
     544
    533545  return DS_OK;
    534546}
  • trunk/src/dsound/makefile

    r2526 r2637  
    1 # $Id: makefile,v 1.12 2000-01-26 23:19:55 sandervl Exp $
     1# $Id: makefile,v 1.13 2000-02-04 19:29:17 hugh Exp $
    22
    33#
     
    1414
    1515!include $(PDWIN32_INCLUDE)/pdwin32.mk
    16 
     16ASFLAGS = -Sc -Sv:ALP
    1717
    1818CFLAGS = $(CFLAGS) -I$(PDWIN32_INCLUDE)
     
    2222TARGET = dsound
    2323
    24 OBJS =  dsound.obj os2dsound.obj initterm.obj os2sndbuffer.obj os2helper.obj
     24OBJS =  dsound.obj os2dsound.obj initterm.obj os2sndbuffer.obj os2helper.obj asmutil.obj
    2525#OBJS =  dsound.obj initterm.obj
    2626
     
    4343
    4444
    45 
    4645dsound.obj: dsound.cpp \
    4746    $(PDWIN32_INCLUDE)/misc.h \
     
    6160    $(PDWIN32_INCLUDE)/os2wrap.h
    6261
     62asmutil.obj: asmutil.asm
    6363
    6464initterm.obj: initterm.cpp initterm.h
  • trunk/src/dsound/os2helper.cpp

    r1744 r2637  
    33#include <os2wrap.h>
    44#include <misc.h>
     5#include "asmutil.h"
    56
    67typedef ULONG DWORD ;
    78
    8 #if 0
     9#if 1
    910DWORD GetTickCountOS2()
    1011{
     
    2223  QWORD qwTickCount;
    2324  ULONG ulFreq;
    24   DWORD dwTick;
     25  ULONG ulTicks;
    2526  APIRET rc;
    2627
    2728  rc = DosTmrQueryFreq( &ulFreq);
     29  dprintf(("DSOUND: GetTickCountOS2 Freq: %d(%08X)\n",
     30           ulFreq, ulFreq));
     31
    2832  if(0==rc)
    2933  {
    3034    rc = DosTmrQueryTime(&qwTickCount);
    31     if(0==rc)
    32     {
    33       ulFreq /=1000;
    34       dwTick = qwTickCount.ulLo / ulFreq;
    35       //dwTick = ( (qwTickCount.ulHi <<24)+ (qwTickCount.ulLo>>8)) / (ulFreq>>8);
    36     }
     35    dprintf(("DSOUND: GetTickCountOS2 Time %d(%08X) : %d(%08X)\n",
     36             qwTickCount.ulHi, qwTickCount.ulHi,
     37             qwTickCount.ulLo,qwTickCount.ulLo, ulTicks));
     38    ulTicks = GetMsCount(&qwTickCount,ulFreq);
     39    dprintf(("DSOUND: GetTickCountOS2 ms Ticks %d\n"));
    3740  }
    38   //dprintf(("DSOUND: GetTickCountOS2 Freq: %d(%08X) Time %d(%08X) : %d(%08X)\n",
    39   //         ulFreq, ulFreq,
    40   //         qwTickCount.ulHi, qwTickCount.ulHi,
    41   //         qwTickCount.ulLo,qwTickCount.ulLo));
    42   return 0==rc?dwTick:0x00FFDEAD;
     41  return 0==rc?ulTicks:0x00FFDEAD;
    4342}
    4443#endif
Note: See TracChangeset for help on using the changeset viewer.