Ignore:
Timestamp:
Feb 22, 2010, 2:44:21 PM (16 years ago)
Author:
rlwalsh
Message:

add FlashWaveOut class to winmm - see Ticket #2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/winmm/waveoutdart.h

    r21349 r21358  
    88 * Project Odin Software License can be found in LICENSE.TXT
    99 */
     10
    1011#ifndef __DWAVEOUT_H__
    1112#define __DWAVEOUT_H__
    1213
    1314#include "waveoutbase.h"
    14 
    15 #define PREFILLBUF_DART 64
    16 #define DART_BUFSIZE    4096
    1715
    1816#ifdef OS2_ONLY
     
    2927#endif
    3028
     29// this should be defined in some #included .h file, but it isn't
     30typedef LONG (APIENTRY MIXERPROC)(ULONG ulHandle, PMCI_MIX_BUFFER pBuffer, ULONG ulFlags);
     31
    3132class DartWaveOut : public WaveOut
    3233{
    3334public:
    34               DartWaveOut(LPWAVEFORMATEX pwfx, DWORD fdwOpen, ULONG nCallback, ULONG dwInstance);
    35      virtual ~DartWaveOut();
     35                    DartWaveOut(LPWAVEFORMATEX pwfx, DWORD fdwOpen,
     36                                ULONG nCallback, ULONG dwInstance);
     37  virtual           ~DartWaveOut();
    3638
    37      virtual  MMRESULT write(LPWAVEHDR pwh, UINT cbwh);
    38      virtual  MMRESULT pause();
    39      virtual  MMRESULT stop();
    40      virtual  MMRESULT resume();
    41      virtual  MMRESULT setVolume(ULONG ulVol);
    42      virtual  MMRESULT reset();
    43      virtual  ULONG    getPosition();
    44 
    45   static BOOL queryFormat(ULONG formatTag, ULONG nChannels,
    46                           ULONG nSamplesPerSec, ULONG sampleSize);
     39  virtual MMRESULT  open();
     40  virtual MMRESULT  write(LPWAVEHDR pwh, UINT cbwh);
     41  virtual MMRESULT  pause();
     42  virtual MMRESULT  stop();
     43  virtual MMRESULT  resume();
     44  virtual MMRESULT  setVolume(ULONG ulVol);
     45  virtual MMRESULT  reset();
     46  virtual ULONG     getPosition();
    4747
    4848protected:
    49   static void mciError(ULONG ulError);
    50          void Init(LPWAVEFORMATEX pwfx);
    51          void handler(ULONG ulStatus, PMCI_MIX_BUFFER pBuffer, ULONG ulFlags);
     49          MMRESULT  initBuffers();
     50          void      writeBuffer();
     51   static void      mciError(ULONG rc);
     52          void      handler(ULONG ulStatus, PMCI_MIX_BUFFER pBuffer, ULONG ulFlags);
    5253
    5354private:
    54          void writeBuffer();
     55          USHORT    DeviceId;
     56          BOOL      fMixerSetup;
     57          BOOL      fUnderrun;
     58          int       curFillBuf;
     59          int       curPlayBuf;
     60          ULONG     curFillPos;
     61          ULONG     curPlayPos;
     62          ULONG     ulBufSize;
     63          ULONG     ulBufCount;
     64          ULONG     bytesPlayed;
     65          ULONG     bytesCopied;
     66          ULONG     bytesReturned;
     67          ULONG     ulUnderrunBase;
     68          ULONG     mixHandle;
     69          WAVEHDR * curhdr;
     70        MIXERPROC * pmixWriteProc;
     71   MCI_MIX_BUFFER * MixBuffer;
     72 MCI_BUFFER_PARMS * BufferParms;
    5573
    56         USHORT          DeviceId;
    57         ULONG           ulBufferCount;             /* Current file buffer     */
    58         ULONG           ulBufSize;
    59 
    60   MCI_MIX_BUFFER       *MixBuffer;          /* Device buffers          */
    61   MCI_MIXSETUP_PARMS   *MixSetupParms;          /* Mixer parameters        */
    62   MCI_BUFFER_PARMS     *BufferParms;                /* Device buffer parms     */
    63 
    64         int             curPlayBuf, curFillBuf;
    65         ULONG           curFillPos, curPlayPos; //fillpos == pos in os2 mix buffer, bufpos == pos in win buffer
    66 
    67         BOOL            fMixerSetup;
    68         BOOL            fUnderrun;
    69         ULONG           ulUnderrunBase;
    70 
    71 #ifndef _OS2WIN_H
    72         friend LONG APIENTRY WaveOutHandler(ULONG ulStatus, PMCI_MIX_BUFFER pBuffer, ULONG ulFlags);
    73 #endif
     74  friend LONG APIENTRY WaveOutHandler(ULONG ulStatus, PMCI_MIX_BUFFER pBuffer,
     75                                      ULONG ulFlags);
    7476};
    7577
Note: See TracChangeset for help on using the changeset viewer.