-
Notifications
You must be signed in to change notification settings - Fork 4
/
IDirectSoundBufferEx.h
executable file
·101 lines (80 loc) · 4.49 KB
/
IDirectSoundBufferEx.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
//////////////////////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2003-2007, Arne Bockholdt, github@bockholdt.info
//
// This file is part of Direct Sound Control.
//
// Direct Sound Control is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Direct Sound Control is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with Direct Sound Control. If not, see <http://www.gnu.org/licenses/>.
//
//////////////////////////////////////////////////////////////////////////////////////////////
#pragma once
//////////////////////////////////////////////////////////////////////////////////////////////
#include "dsound.h"
//////////////////////////////////////////////////////////////////////////////////////////////
#define IDIRECTSOUNDBUFFER8EX_CLASS_NAME "IDirectSoundBuffer8Ex"
//////////////////////////////////////////////////////////////////////////////////////////////
#ifdef ENABLE_LOG
extern void LogMessage(const char* szClassName, void* pInstance, char* szMessage );
extern bool g_bLogDirectSoundBuffer;
#endif // ENABLE_LOG
extern bool g_bForcePrimaryBufferFormat;
extern int g_nPrimaryBufferBits;
extern int g_nPrimaryBufferSamples;
extern int g_nPrimaryBufferChannels;
extern bool g_bStoppedDriverWorkaround;
//////////////////////////////////////////////////////////////////////////////////////////////
class IDirectSoundBuffer8Ex : public IDirectSoundBuffer8
{
public:
IDirectSoundBuffer8Ex(void);
virtual ~IDirectSoundBuffer8Ex(void);
virtual HRESULT __stdcall QueryInterface (REFIID, LPVOID *);
virtual ULONG __stdcall AddRef();
virtual ULONG __stdcall Release();
// IDirectSoundBuffer methods
virtual HRESULT __stdcall GetCaps (LPDSBCAPS pDSBufferCaps);
virtual HRESULT __stdcall GetCurrentPosition (LPDWORD pdwCurrentPlayCursor, LPDWORD pdwCurrentWriteCursor);
virtual HRESULT __stdcall GetFormat (LPWAVEFORMATEX pwfxFormat, DWORD dwSizeAllocated, LPDWORD pdwSizeWritten);
virtual HRESULT __stdcall GetVolume (LPLONG plVolume);
virtual HRESULT __stdcall GetPan (LPLONG plPan);
virtual HRESULT __stdcall GetFrequency (LPDWORD pdwFrequency);
virtual HRESULT __stdcall GetStatus (LPDWORD pdwStatus);
virtual HRESULT __stdcall Initialize (LPDIRECTSOUND pDirectSound, LPCDSBUFFERDESC pcDSBufferDesc);
virtual HRESULT __stdcall Lock (DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1,LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags);
virtual HRESULT __stdcall Play (DWORD dwReserved1, DWORD dwPriority, DWORD dwFlags);
virtual HRESULT __stdcall SetCurrentPosition (DWORD dwNewPosition);
virtual HRESULT __stdcall SetFormat (LPCWAVEFORMATEX pcfxFormat);
virtual HRESULT __stdcall SetVolume (LONG lVolume);
virtual HRESULT __stdcall SetPan (LONG lPan);
virtual HRESULT __stdcall SetFrequency (DWORD dwFrequency);
virtual HRESULT __stdcall Stop ();
virtual HRESULT __stdcall Unlock (LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioBytes2);
virtual HRESULT __stdcall Restore ();
// IDirectSoundBuffer8 methods
virtual HRESULT __stdcall SetFX (DWORD dwEffectsCount, LPDSEFFECTDESC pDSFXDesc, LPDWORD pdwResultCodes);
virtual HRESULT __stdcall AcquireResources (DWORD dwFlags, DWORD dwEffectsCount, LPDWORD pdwResultCodes);
virtual HRESULT __stdcall GetObjectInPath (REFGUID rguidObject, DWORD dwIndex, REFGUID rguidInterface, LPVOID *ppObject);
bool GetPrimaryBuffer(){ return m_bIsPrimary; };
void SetPrimaryBuffer( bool bIsPrimary ){ m_bIsPrimary = bIsPrimary; };
LPDIRECTSOUNDBUFFER8 m_lpDirectSoundBuffer8;
protected :
#ifdef ENABLE_LOG
const char* m_cszClassName;
char m_acLogBuffer[ 1024 ];
#endif // ENABLE_LOG
DWORD m_dwOldWriteCursorPos;
BYTE m_nWriteCursorIdent;
bool m_bIsPrimary;
};
//////////////////////////////////////////////////////////////////////////////////////////////