115 lines
5 KiB
C
115 lines
5 KiB
C
|
/*==========================================================================
|
||
|
*
|
||
|
* Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
|
||
|
*
|
||
|
* File: dvshared.h
|
||
|
* Content: Utility functions for DirectXVoice structures.
|
||
|
*
|
||
|
* History:
|
||
|
* Date By Reason
|
||
|
* ==== == ======
|
||
|
* 07/06/99 rodtoll Created It
|
||
|
* 07/26/99 rodtoll Added support for DirectXVoiceNotify objects
|
||
|
* 08/04/99 rodtoll Added new validation functions
|
||
|
* 08/25/99 rodtoll General Cleanup/Modifications to support new
|
||
|
* compression sub-system.
|
||
|
* Added new DUMP functions
|
||
|
* Moved several compression functions to dvcdb
|
||
|
* 09/01/99 rodtoll Added check for valid pointers in func calls
|
||
|
* Changed return type on DV_ call to HRESULT
|
||
|
* 09/14/99 rodtoll Added new Init params and DV_ValidMessageArray
|
||
|
* 10/04/99 rodtoll Updated initialize to take LPUNKNOWN instead of LPVOID
|
||
|
* 10/19/99 rodtoll Fix: Bug #113904 - Shutdown issues
|
||
|
* - Added reference count for notify interface, allows
|
||
|
* determination if stopsession should be called from release
|
||
|
* 10/25/99 rodtoll Fix: Bug #114098 - Release/Addref failure from multiple threads
|
||
|
* 01/14/2000 rodtoll Added DV_ValidTargetList function
|
||
|
* 01/27/2000 rodtoll Bug #129934 - Update Create3DSoundBuffer to take DSBUFFERDESC
|
||
|
* Updated param validations to check new params
|
||
|
* 03/29/2000 rodtoll Bug #30753 - Added volatile to the class definition
|
||
|
* 06/21/2000 rodtoll Bug #35767 - Must implement ability for DSound effects processing on Voice buffers
|
||
|
* Updated parameter validation to take new parameters.
|
||
|
* 07/22/2000 rodtoll Bug #40284 - Initialize() and SetNotifyMask() should return invalidparam instead of invalidpointer
|
||
|
* 09/14/2000 rodtoll Bug #45001 - DVOICE: AV if client has targetted > 10 players
|
||
|
*
|
||
|
***************************************************************************/
|
||
|
|
||
|
#ifndef __DVSHARED_H
|
||
|
#define __DVSHARED_H
|
||
|
|
||
|
struct DIRECTVOICEOBJECT;
|
||
|
class CDirectVoiceEngine;
|
||
|
class CDirectVoiceTransport;
|
||
|
|
||
|
volatile struct DIRECTVOICENOTIFYOBJECT
|
||
|
{
|
||
|
LPVOID lpNotifyVtble;
|
||
|
DIRECTVOICEOBJECT *lpDV;
|
||
|
LONG lRefCnt;
|
||
|
};
|
||
|
|
||
|
volatile struct DIRECTVOICEOBJECT
|
||
|
{
|
||
|
LPVOID lpVtbl;
|
||
|
LONG lIntRefCnt;
|
||
|
CDirectVoiceEngine *lpDVEngine;
|
||
|
CDirectVoiceTransport *lpDVTransport;
|
||
|
DIRECTVOICENOTIFYOBJECT dvNotify;
|
||
|
DNCRITICAL_SECTION csCountLock;
|
||
|
};
|
||
|
|
||
|
typedef DIRECTVOICEOBJECT *LPDIRECTVOICEOBJECT;
|
||
|
typedef DIRECTVOICENOTIFYOBJECT *LPDIRECTVOICENOTIFYOBJECT;
|
||
|
|
||
|
BOOL DV_ValidBufferAggresiveness( DWORD dwValue );
|
||
|
BOOL DV_ValidBufferQuality( DWORD dwValue );
|
||
|
BOOL DV_ValidSensitivity( DWORD dwValue );
|
||
|
|
||
|
HRESULT DV_ValidBufferSettings( LPDIRECTSOUNDBUFFER lpdsBuffer, DWORD dwPriority, DWORD dwFlags, LPWAVEFORMATEX pwfxPlayFormat );
|
||
|
HRESULT DV_ValidClientConfig( LPDVCLIENTCONFIG lpClientConfig );
|
||
|
HRESULT DV_ValidSoundDeviceConfig( LPDVSOUNDDEVICECONFIG lpSoundDeviceConfig, LPWAVEFORMATEX pwfxPlayFormat );
|
||
|
HRESULT DV_ValidSessionDesc( LPDVSESSIONDESC lpSessionDesc );
|
||
|
HRESULT DV_ValidTargetList( PDVID pdvidTargets, DWORD dwNumTargets );
|
||
|
|
||
|
BOOL DV_ValidDirectVoiceObject( LPDIRECTVOICEOBJECT lpdv );
|
||
|
BOOL DV_ValidDirectXVoiceClientObject( LPDIRECTVOICEOBJECT lpdvc );
|
||
|
BOOL DV_ValidDirectXVoiceServerObject( LPDIRECTVOICEOBJECT lpdvs );
|
||
|
HRESULT DV_ValidMessageArray( LPDWORD lpdwMessages, DWORD dwNumMessages, BOOL fServer );
|
||
|
|
||
|
STDAPI DV_AddRef(LPDIRECTVOICEOBJECT lpDV );
|
||
|
STDAPI DV_Initialize( LPDIRECTVOICEOBJECT lpdvObject, LPUNKNOWN lpTransport, LPDVMESSAGEHANDLER lpMessageHandler, LPVOID lpUserContext, LPDWORD lpdwMessages, DWORD dwNumElements );
|
||
|
|
||
|
DWORD DV_GetWaveFormatExSize( LPWAVEFORMATEX lpwfxFormat );
|
||
|
HRESULT DV_CopySessionDescToBuffer( LPVOID lpTarget, LPDVSESSIONDESC lpdvSessionDesc, LPDWORD lpdwSize );
|
||
|
HRESULT DV_CopyCompressionInfoArrayToBuffer( LPVOID lpTarget, LPDVCOMPRESSIONINFO lpdvCompressionList, LPDWORD lpdwSize, DWORD dwNumElements );
|
||
|
|
||
|
void DV_DUMP_Caps( LPDVCAPS lpdvCaps );
|
||
|
void DV_DUMP_CompressionInfo( LPDVCOMPRESSIONINFO lpdvCompressionInfo, DWORD dwNumElements );
|
||
|
void DV_DUMP_FullCompressionInfo( LPDVFULLCOMPRESSIONINFO lpdvfCompressionInfo, DWORD dwNumElements );
|
||
|
void DV_DUMP_SessionDesc( LPDVSESSIONDESC lpdvSessionDesc );
|
||
|
void DV_DUMP_SoundDeviceConfig( LPDVSOUNDDEVICECONFIG lpdvSoundConfig );
|
||
|
void DV_DUMP_ClientConfig( LPDVCLIENTCONFIG lpdvClientConfig );
|
||
|
void DV_DUMP_WaveFormatEx( LPWAVEFORMATEX lpwfxFormat );
|
||
|
void DV_DUMP_GUID( GUID guid );
|
||
|
|
||
|
#ifdef _DEBUG
|
||
|
#define DV_DUMP_CI( ci, ne ) DV_DUMP_CompressionInfo( ci, ne )
|
||
|
#define DV_DUMP_SD( sd ) DV_DUMP_SessionDesc( sd )
|
||
|
#define DV_DUMP_SDC( sdc ) DV_DUMP_SoundDeviceConfig( sdc )
|
||
|
#define DV_DUMP_CC( cc ) DV_DUMP_ClientConfig( cc )
|
||
|
#define DV_DUMP_CAPS( caps ) DV_DUMP_Caps( caps )
|
||
|
#define DV_DUMP_CIF( cif, ne ) DV_DUMP_FullCompressionInfo( cif, ne )
|
||
|
#else
|
||
|
#define DV_DUMP_CIF( cif, ne )
|
||
|
#define DV_DUMP_CI( ci, ne )
|
||
|
#define DV_DUMP_SD( sd )
|
||
|
#define DV_DUMP_SDC( sdc )
|
||
|
#define DV_DUMP_CC( cc )
|
||
|
#define DV_DUMP_CAPS( caps )
|
||
|
#endif
|
||
|
|
||
|
#define DV_MAX_TARGETS 64
|
||
|
#define CLIENT_POOLS_NUM_TARGETS_BUFFERED DV_MAX_TARGETS
|
||
|
|
||
|
#endif
|