source: trunk/src/dsound/os2dsound.h@ 21916

Last change on this file since 21916 was 21916, checked in by dmik, 14 years ago

Merge branch gcc-kmk to trunk.

File size: 3.2 KB
Line 
1/* $Id: OS2DSOUND.H,v 1.6 2000-05-18 20:37:08 mike Exp $ */
2
3/*
4 * DirectSound main class
5 *
6 * Copyright 1998 Sander van Leeuwen (sandervl@xs4all.nl)
7 *
8 * Project Odin Software License can be found in LICENSE.TXT
9 *
10 */
11#ifndef __OS2DSOUND_H__
12#define __OS2DSOUND_H__
13
14#undef THIS
15#define THIS VOID*This
16
17#undef THIS_
18#define THIS_ VOID*This,
19
20// A forward declaration is need here!
21class OS2PrimBuff;
22
23// GUID for the only device we provide (DART DirectSound for OS/2)
24DEFINE_GUID(GUID_DirectSound_DART, 0x03BC8FA8, 0x3460, 0x11E0, 0x99, 0x51, 0x49, 0xC1, 0xDF, 0xD7, 0x20, 0x85 );
25
26class OS2IDirectSound
27{
28 public:
29 //this one has to go first!
30 IDirectSoundVtbl *lpVtbl;
31 IDirectSoundVtbl Vtbl;
32
33 OS2IDirectSound(const GUID *lpGUID);
34 ~OS2IDirectSound();
35
36 int Referenced;
37
38 static BOOL fDSExists;
39 inline HRESULT GetLastError() { return lastError; };
40 inline DWORD GetCoopLevel() { return CoopLevel; };
41
42 OS2PrimBuff* primary; // Primary Buffer..Created on construct of DSound (KL)
43 // (Public so that the Secondary buffer instances can access this.. Maybe a GetPrimary function would eb better?)
44
45 private:
46
47 protected:
48 HRESULT lastError;
49
50 DWORD speakerConfig;
51 DWORD CoopLevel;
52 HWND hwndClient;
53
54
55 // Linked list management
56 OS2IDirectSound* next; // Next OS2IDirectSound
57 static OS2IDirectSound* dsound; // List of OS2IDirectSound
58
59 friend HRESULT __stdcall SoundQueryInterface(THIS, REFIID riid, LPVOID * ppvObj);
60 friend ULONG __stdcall SoundAddRef(THIS);
61 friend ULONG __stdcall SoundRelease(THIS);
62 friend HRESULT __stdcall SoundCreateSoundBuffer(THIS_ LPDSBUFFERDESC, LPDIRECTSOUNDBUFFER*,LPUNKNOWN);
63 friend HRESULT __stdcall SoundGetCaps(THIS_ LPDSCAPS );
64 friend HRESULT __stdcall SoundDuplicateSoundBuffer(THIS_ LPDIRECTSOUNDBUFFER, LPLPDIRECTSOUNDBUFFER );
65 friend HRESULT __stdcall SoundSetCooperativeLevel(THIS_ HWND, DWORD );
66 friend HRESULT __stdcall SoundCompact(THIS );
67 friend HRESULT __stdcall SoundGetSpeakerConfig(THIS_ LPDWORD );
68 friend HRESULT __stdcall SoundSetSpeakerConfig(THIS_ DWORD );
69 friend HRESULT __stdcall SoundInitialize(THIS_ LPGUID);
70};
71//******************************************************************************
72//******************************************************************************
73HRESULT __stdcall SoundQueryInterface(THIS, REFIID riid, LPVOID * ppvObj);
74ULONG __stdcall SoundAddRef(THIS);
75ULONG __stdcall SoundRelease(THIS);
76HRESULT __stdcall SoundCreateSoundBuffer(THIS_ LPDSBUFFERDESC, LPDIRECTSOUNDBUFFER*,LPUNKNOWN);
77HRESULT __stdcall SoundGetCaps(THIS_ LPDSCAPS );
78HRESULT __stdcall SoundDuplicateSoundBuffer(THIS_ LPDIRECTSOUNDBUFFER, LPLPDIRECTSOUNDBUFFER );
79HRESULT __stdcall SoundSetCooperativeLevel(THIS_ HWND, DWORD );
80HRESULT __stdcall SoundCompact(THIS );
81HRESULT __stdcall SoundGetSpeakerConfig(THIS_ LPDWORD );
82HRESULT __stdcall SoundSetSpeakerConfig(THIS_ DWORD );
83HRESULT __stdcall SoundInitialize(THIS_ LPGUID);
84
85#endif
Note: See TracBrowser for help on using the repository browser.