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

Last change on this file since 10367 was 8568, checked in by sandervl, 23 years ago

Updates for wave playback

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#ifndef __DWAVEOUTEX_H__
11#define __DWAVEOUTEX_H__
12
13#include "waveoutbase.h"
14#include <daudio.h>
15
16#ifdef _OS2WIN_H
17typedef DWORD HEV;
18#endif
19
20#define SECTION_WINMM "WINMM"
21#define KEY_DIRECTAUDIO "DirectAudio"
22
23class DAudioWaveOut : public WaveOut
24{
25public:
26 DAudioWaveOut(LPWAVEFORMATEX pwfx, ULONG fdwOpen, ULONG nCallback, ULONG dwInstance);
27 virtual ~DAudioWaveOut();
28
29 virtual MMRESULT write(LPWAVEHDR pwh, UINT cbwh);
30 virtual MMRESULT pause();
31 virtual MMRESULT stop();
32 virtual MMRESULT resume();
33 virtual MMRESULT setVolume(ULONG ulVol);
34 virtual MMRESULT reset();
35 virtual ULONG getPosition();
36
37 static BOOL queryFormat(ULONG formatTag, ULONG nChannels,
38 ULONG nSamplesPerSec, ULONG sampleSize);
39
40
41 static BOOL isDirectAudioAvailable();
42
43protected:
44
45private:
46 BOOL handler();
47 MMRESULT sendIOCTL(ULONG cmd, DAUDIO_CMD *pDataPacket);
48
49 HEV hSem;
50
51 ULONG bytesPlayed, bytesReturned;
52 int queuedbuffers;
53
54 BOOL fUnderrun;
55 HANDLE hThread;
56 DWORD dwThreadID;
57
58 HFILE hDAudioDrv;
59
60 friend DWORD WIN32API DAudioThreadHandler(LPVOID pUserData);
61};
62
63#endif
Note: See TracBrowser for help on using the repository browser.