source: trunk/src/winmm/waveoutdaud.h@ 22012

Last change on this file since 22012 was 21358, checked in by rlwalsh, 16 years ago

add FlashWaveOut class to winmm - see Ticket #2

File size: 1.5 KB
Line 
1/* $Id: waveoutdaud.h,v 1.5 2002-06-04 17:36:56 sandervl Exp $ */
2
3/*
4 * Wave playback class (DirectAudio)
5 *
6 * Copyright 2001 Sander van Leeuwen (sandervl@xs4all.nl)
7 *
8 * Project Odin Software License can be found in LICENSE.TXT
9 */
10
11#ifndef __DWAVEOUTEX_H__
12#define __DWAVEOUTEX_H__
13
14#include "waveoutbase.h"
15#include <daudio.h>
16
17#ifdef _OS2WIN_H
18typedef DWORD HEV;
19#endif
20
21#define SECTION_WINMM "WINMM"
22#define KEY_DIRECTAUDIO "DirectAudio"
23
24class DAudioWaveOut : public WaveOut
25{
26public:
27 DAudioWaveOut(LPWAVEFORMATEX pwfx, ULONG fdwOpen,
28 ULONG nCallback, ULONG dwInstance);
29 virtual ~DAudioWaveOut();
30
31 virtual MMRESULT open();
32 virtual MMRESULT write(LPWAVEHDR pwh, UINT cbwh);
33 virtual MMRESULT pause();
34 virtual MMRESULT stop();
35 virtual MMRESULT resume();
36 virtual MMRESULT setVolume(ULONG ulVol);
37 virtual MMRESULT reset();
38 virtual ULONG getPosition();
39
40 static BOOL queryFormat(ULONG formatTag, ULONG nChannels,
41 ULONG nSamplesPerSec, ULONG sampleSize);
42 static BOOL isDirectAudioAvailable();
43
44protected:
45
46private:
47 BOOL handler();
48 MMRESULT sendIOCTL(ULONG cmd, DAUDIO_CMD *pDataPacket);
49
50 HEV hSem;
51 HFILE hDAudioDrv;
52 HANDLE hThread;
53 DWORD dwThreadID;
54 ULONG bytesReturned;
55 BOOL fUnderrun;
56
57 friend DWORD WIN32API DAudioThreadHandler(LPVOID pUserData);
58};
59
60#endif
Note: See TracBrowser for help on using the repository browser.