windows-nt/Source/XPSP1/NT/multimedia/directx/dplay/dvoice/dxvoice/dvengine.h

89 lines
3.6 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*==========================================================================
*
* 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