Changeset 21358 for trunk/src/winmm/waveoutdart.h
- Timestamp:
- Feb 22, 2010, 2:44:21 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/winmm/waveoutdart.h
r21349 r21358 8 8 * Project Odin Software License can be found in LICENSE.TXT 9 9 */ 10 10 11 #ifndef __DWAVEOUT_H__ 11 12 #define __DWAVEOUT_H__ 12 13 13 14 #include "waveoutbase.h" 14 15 #define PREFILLBUF_DART 6416 #define DART_BUFSIZE 409617 15 18 16 #ifdef OS2_ONLY … … 29 27 #endif 30 28 29 // this should be defined in some #included .h file, but it isn't 30 typedef LONG (APIENTRY MIXERPROC)(ULONG ulHandle, PMCI_MIX_BUFFER pBuffer, ULONG ulFlags); 31 31 32 class DartWaveOut : public WaveOut 32 33 { 33 34 public: 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(); 36 38 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(); 47 47 48 48 protected: 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); 52 53 53 54 private: 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; 55 73 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); 74 76 }; 75 77
Note:
See TracChangeset
for help on using the changeset viewer.