89 lines
3.6 KiB
C++
89 lines
3.6 KiB
C++
/*==========================================================================
|
|
*
|
|
* Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
|
|
*
|
|
* File: dvdptransport.h
|
|
* Content: Definition of base class for Transport --> DirectXVoice
|
|
*
|
|
* History:
|
|
* Date By Reason
|
|
* ==== == ======
|
|
* 07/06/99 rodtoll Created It
|
|
* 07/29/99 rodtoll Added static members to load default settings
|
|
* 08/25/99 rodtoll General Cleanup/Modifications to support new
|
|
* ompression sub-system.
|
|
* Added default parameter reads from the registry
|
|
* 08/30/99 rodtoll Distinguish between primary buffer format and
|
|
* playback format.
|
|
* 09/14/99 rodtoll Updated parameters to Init
|
|
* 10/07/99 rodtoll Updated to work in Unicode
|
|
* 10/27/99 pnewson Fix: Bug #113935 - Saved AGC values should be device specific
|
|
* 01/10/00 pnewson AGC and VA tuning
|
|
* 03/03/2000 rodtoll Updated to handle alternative gamevoice build.
|
|
* 04/07/2000 rodtoll Updated for new DP <--> DPV interface
|
|
* 07/12/2000 rodtoll Bug #31468 - Add diagnostic spew to logfile to show what is failing the HW Wizard
|
|
* 04/06/2001 kareemc Added Voice Defense
|
|
*
|
|
***************************************************************************/
|
|
|
|
#ifndef __DVENGINE_H
|
|
#define __DVENGINE_H
|
|
|
|
#include "dpvcp.h"
|
|
|
|
// CDirectVoiceEngine
|
|
//
|
|
// This class is the base interface for DirectVoiceClientEngine and
|
|
// DirectVoiceServerEngine. This interface is used by DirectPlay/
|
|
// DirectNet to inform the DirectXVoice engine of new events.
|
|
//
|
|
// Hooks are placed into DirectPlay that call these functions.
|
|
//
|
|
class CDirectVoiceEngine
|
|
{
|
|
public:
|
|
public: // Incoming messages
|
|
virtual BOOL ReceiveSpeechMessage( DVID dvidSource, LPVOID lpMessage, DWORD dwSize ) = 0;
|
|
|
|
public: // Session Management
|
|
virtual HRESULT StartTransportSession() = 0;
|
|
virtual HRESULT StopTransportSession() = 0;
|
|
|
|
public: // Player information
|
|
virtual HRESULT AddPlayer( DVID dvID ) = 0;
|
|
virtual HRESULT RemovePlayer( DVID dvID ) = 0;
|
|
|
|
public: // Used by local voice server to hook player messages to send
|
|
// to the remote voice server
|
|
virtual HRESULT Initialize( CDirectVoiceTransport *lpTransport, LPDVMESSAGEHANDLER lpdvHandler, LPVOID lpUserContext, LPDWORD lpdwMessages, DWORD dwNumElements ) = 0;
|
|
virtual HRESULT CreateGroup( DVID dvID ) = 0;
|
|
virtual HRESULT DeleteGroup( DVID dvID ) = 0;
|
|
virtual HRESULT AddPlayerToGroup( DVID dvidGroup, DVID dvidPlayer ) = 0;
|
|
virtual HRESULT RemovePlayerFromGroup( DVID dvidGroup, DVID dvidPlayer ) = 0;
|
|
virtual HRESULT MigrateHost( DVID dvidNewHost, LPDIRECTPLAYVOICESERVER lpdvServer ) = 0;
|
|
virtual HRESULT SendComplete( PDVEVENTMSG_SENDCOMPLETE pSendComplete ) = 0;
|
|
|
|
public: // Compression Information Storage
|
|
static HRESULT Startup( const WCHAR *szRegistryPath );
|
|
static HRESULT Shutdown();
|
|
|
|
static DNCRITICAL_SECTION s_csSTLLock; // Lock serializing access to the STL
|
|
|
|
public: // packet validation
|
|
BOOL ValidateSpeechPacketSize( LPDVFULLCOMPRESSIONINFO lpdvfCompressionInfo, DWORD dwSize );
|
|
|
|
protected:
|
|
|
|
static DWORD s_dwDefaultBufferAggressiveness; // Default system buffer aggresiveness
|
|
static DWORD s_dwDefaultBufferQuality; // Default system buffer quality
|
|
static DWORD s_dwDefaultSensitivity; // Default system sensitivity
|
|
static LPWAVEFORMATEX s_lpwfxPrimaryFormat; // Primary buffer format
|
|
static LPWAVEFORMATEX s_lpwfxPlaybackFormat; // Playback format
|
|
static LPWAVEFORMATEX s_lpwfxMixerFormat; // Format for the mixer
|
|
static BOOL s_fASO; // Should ASO be used?
|
|
static WCHAR s_szRegistryPath[_MAX_PATH]; // Registry path
|
|
static BOOL s_fDumpDiagnostics; // Should we dump diagnostic info during wizard runs?
|
|
};
|
|
|
|
#endif
|