Ignore:
Timestamp:
Mar 5, 2003, 3:49:04 PM (22 years ago)
Author:
sandervl
Message:

waveoutGetPosition: return 0 if stream is not active (DART); waveinGetPosition: return 0 if stream is not active (DART); Don't print a warning for CALLBACK_NULL callbacks; Added ODIN_waveInSetFixedBuffers, renamed SetFixedWaveBufferSize to ODIN_waveOutSetFixedBuffers. Used to tell WINMM to use the waveOutWrite buffer size for the DART buffers

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/winmm/waveindart.cpp

    r8572 r9902  
    1 /* $Id: waveindart.cpp,v 1.5 2002-06-05 11:05:56 sandervl Exp $ */
     1/* $Id: waveindart.cpp,v 1.6 2003-03-05 14:49:04 sandervl Exp $ */
    22
    33/*
     
    66 * Copyright 2001 Sander van Leeuwen (sandervl@xs4all.nl)
    77 *
     8 * TODO: mulaw, alaw & adpcm
    89 *
    910 * Project Odin Software License can be found in LICENSE.TXT
     
    4647LONG APIENTRY WaveInHandler(ULONG ulStatus, PMCI_MIX_BUFFER pBuffer, ULONG ulFlags);
    4748
    48 //TODO: mulaw, alaw & adpcm
     49static BOOL fwaveInFixedBuffers = FALSE;
     50
     51//******************************************************************************
     52// ODIN_waveInSetFixedBuffers
     53//
     54// Tell WINMM to use DART buffers of the same size as the first buffer delivered
     55// by waveInAddBuffer
     56//
     57//******************************************************************************
     58void WIN32API ODIN_waveInSetFixedBuffers()
     59{
     60    fwaveInFixedBuffers = TRUE;
     61}
    4962/******************************************************************************/
    5063/******************************************************************************/
     
    208221        LPWAVEHDR pwh = wavehdr;
    209222        if(pwh) {
    210             dprintf(("mix setup %d, %d\n", pwh->dwBufferLength, pwh->dwBufferLength));
    211 
    212             ulBufSize = pwh->dwBufferLength/2;
     223            if(fwaveInFixedBuffers) {
     224                ulBufSize = pwh->dwBufferLength;
     225            }
     226            else
     227            {
     228                dprintf(("mix setup %d, %d\n", pwh->dwBufferLength, pwh->dwBufferLength));
     229   
     230                ulBufSize = pwh->dwBufferLength/2;
     231            }
    213232            if(ulBufSize > minbufsize) {
    214233                dprintf(("set buffer size to %d bytes (org size = %d)", minbufsize, pwh->dwBufferLength));
     
    388407    ULONG rc, nrbytes;
    389408
     409    if(State == STATE_STOPPED) {
     410        dprintf(("Not recording; return 0 position"));
     411        return 0;
     412    }
     413
    390414    mciStatus.ulItem = MCI_STATUS_POSITION;
    391415    rc = mymciSendCommand(DeviceId, MCI_STATUS, MCI_STATUS_ITEM|MCI_WAIT, (PVOID)&mciStatus, 0);
Note: See TracChangeset for help on using the changeset viewer.