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

Last change on this file since 5462 was 5366, checked in by sandervl, 25 years ago

Enabled DirectAudio wave playback interface (if present)

File size: 1.4 KB
Line 
1/* $Id: waveoutdaud.h,v 1.2 2001-03-24 15:40:04 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
20class DAudioWaveOut : public WaveOut
21{
22public:
23 DAudioWaveOut(LPWAVEFORMATEX pwfx, ULONG fdwOpen, ULONG nCallback, ULONG dwInstance);
24 virtual ~DAudioWaveOut();
25
26 virtual MMRESULT write(LPWAVEHDR pwh, UINT cbwh);
27 virtual MMRESULT pause();
28 virtual MMRESULT stop();
29 virtual MMRESULT restart();
30 virtual MMRESULT setVolume(ULONG ulVol);
31 virtual MMRESULT reset();
32 virtual ULONG getPosition();
33
34 static BOOL queryFormat(ULONG formatTag, ULONG nChannels,
35 ULONG nSamplesPerSec, ULONG sampleSize);
36
37
38 static BOOL isDirectAudioAvailable();
39
40protected:
41
42private:
43 MMRESULT resume();
44 void handler();
45 MMRESULT sendIOCTL(ULONG cmd, DAUDIO_CMD *pDataPacket);
46
47 HEV hSem;
48
49 ULONG bytesPlayed, bytesReturned;
50 int queuedbuffers;
51
52 BOOL fUnderrun;
53 HANDLE hThread;
54 DWORD dwThreadID;
55
56 HFILE hDAudioDrv;
57
58 friend DWORD WIN32API DAudioThreadHandler(LPVOID pUserData);
59};
60
61#endif
Note: See TracBrowser for help on using the repository browser.