Marc-Antoine Lortie
3 years ago
committed by
GitHub
2 changed files with 0 additions and 1677 deletions
@ -1,163 +0,0 @@
@@ -1,163 +0,0 @@
|
||||
//======== (C) Copyright 1996-2002 Valve, L.L.C. All rights reserved. ========
|
||||
//
|
||||
// The copyright to the contents herein is the property of Valve, L.L.C.
|
||||
// The contents may be used and/or copied only with the written permission of
|
||||
// Valve, L.L.C., or in accordance with the terms and conditions stipulated in
|
||||
// the agreement/contract under which the contents have been supplied.
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $Workfile: $
|
||||
// $Date: $
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
// $Log: $
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================
|
||||
|
||||
#include <windows.h> |
||||
#include <dsound.h> |
||||
#include <mmsystem.h> |
||||
#include "r_studioint.h" |
||||
|
||||
extern engine_studio_api_t IEngineStudio; |
||||
|
||||
#define RENDERTYPE_UNDEFINED 0 |
||||
#define RENDERTYPE_SOFTWARE 1 |
||||
#define RENDERTYPE_HARDWARE 2 |
||||
|
||||
#define ENGINE_LAUNCHER_API_VERSION 1 |
||||
|
||||
LPDIRECTSOUND lpDS = NULL; |
||||
LPDIRECTSOUNDBUFFER lpDSBuf = NULL; |
||||
LPHWAVEOUT lpHW = NULL; |
||||
|
||||
static HMODULE hEngine = 0; |
||||
|
||||
typedef struct engine_api_s |
||||
{ |
||||
int version; |
||||
int rendertype; |
||||
int size; |
||||
|
||||
// Functions
|
||||
void ( *unused1 ) ( void ); |
||||
void ( *unused2 ) ( void ); |
||||
void ( *unused3 ) ( void ); |
||||
void ( *unused4 ) ( void ); |
||||
void ( *unused5 ) ( void ); |
||||
void ( *unused6 ) ( void ); |
||||
void ( *unused7 ) ( void ); |
||||
void ( *unused8 ) ( void ); |
||||
void ( *unused9 ) ( void ); |
||||
void ( *unused10 ) ( void ); |
||||
void ( *unused11 ) ( void ); |
||||
void ( *unused12 ) ( void ); |
||||
void ( *unused13 ) ( void ); |
||||
void ( *unused14 ) ( void ); |
||||
void ( *unused15 ) ( void ); |
||||
void ( *unused16 ) ( void ); |
||||
void ( *unused17 ) ( void ); |
||||
void ( *unused18 ) ( void ); |
||||
void ( *unused19 ) ( void ); |
||||
void ( *unused20 ) ( void ); |
||||
void ( *unused21 ) ( void ); |
||||
void ( *unused22 ) ( void ); |
||||
void ( *unused23 ) ( void ); |
||||
void ( *unused24 ) ( void ); |
||||
void ( *unused25 ) ( void ); |
||||
void ( *unused26 ) ( void ); |
||||
void ( *unused27 ) ( void ); |
||||
void ( *unused28 ) ( void ); |
||||
void ( *unused29 ) ( void ); |
||||
void ( *unused30 ) ( void ); |
||||
void ( *unused31 ) ( void ); |
||||
void ( *unused32 ) ( void ); |
||||
void ( *unused33 ) ( void ); |
||||
void ( *unused34 ) ( void ); |
||||
|
||||
void ( *S_GetDSPointer ) ( struct IDirectSound **lpDS, struct IDirectSoundBuffer **lpDSBuf ); |
||||
void *( *S_GetWAVPointer ) ( void ); |
||||
|
||||
void ( *unused35 ) ( void ); |
||||
void ( *unused36 ) ( void ); |
||||
void ( *unused37 ) ( void ); |
||||
void ( *unused38 ) ( void ); |
||||
void ( *unused39 ) ( void ); |
||||
void ( *unused40 ) ( void ); |
||||
void ( *unused41 ) ( void ); |
||||
void ( *unused42 ) ( void ); |
||||
void ( *unused43 ) ( void ); |
||||
void ( *unused44 ) ( void ); |
||||
void ( *unused45 ) ( void ); |
||||
void ( *unused46 ) ( void ); |
||||
void ( *unused47 ) ( void ); |
||||
void ( *unused48 ) ( void ); |
||||
void ( *unused49 ) ( void ); |
||||
void ( *unused50 ) ( void ); |
||||
void ( *unused51 ) ( void ); |
||||
void ( *unused52 ) ( void ); |
||||
void ( *unused53 ) ( void ); |
||||
void ( *unused54 ) ( void ); |
||||
void ( *unused55 ) ( void ); |
||||
} engine_api_t; |
||||
|
||||
static engine_api_t engineapi; |
||||
|
||||
typedef int (*engine_api_func)( int version, int size, struct engine_api_s *api ); |
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Get launcher/engine interface from engine module
|
||||
// Input : hMod -
|
||||
// Output : int
|
||||
//-----------------------------------------------------------------------------
|
||||
int Eng_LoadFunctions( HMODULE hMod ) |
||||
{ |
||||
engine_api_func pfnEngineAPI; |
||||
|
||||
pfnEngineAPI = ( engine_api_func )GetProcAddress( hMod, "Sys_EngineAPI" ); |
||||
if( !pfnEngineAPI ) |
||||
return 0; |
||||
|
||||
if( !(*pfnEngineAPI)( ENGINE_LAUNCHER_API_VERSION, sizeof( engine_api_t ), &engineapi ) ) |
||||
return 0; |
||||
|
||||
// All is okay
|
||||
return 1; |
||||
} |
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Load proper engine .dll and get pointer to either DSound and primary buffer or HWAVEOUT ( NT 4.0, e.g. )
|
||||
//-----------------------------------------------------------------------------
|
||||
void LoadSoundAPIs( void ) |
||||
{ |
||||
hEngine = ::LoadLibrary( IEngineStudio.IsHardware() ? "hw.dll" : "sw.dll" ); |
||||
if( hEngine ) |
||||
{ |
||||
if( Eng_LoadFunctions( hEngine ) ) |
||||
{ |
||||
if( engineapi.S_GetDSPointer && engineapi.S_GetWAVPointer ) |
||||
{ |
||||
engineapi.S_GetDSPointer(&lpDS, &lpDSBuf); |
||||
lpHW = (HWAVEOUT FAR *)engineapi.S_GetWAVPointer(); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Close engine library, release sound pointers
|
||||
//-----------------------------------------------------------------------------
|
||||
void ShutdownSoundAPIs( void ) |
||||
{ |
||||
if( hEngine ) |
||||
{ |
||||
FreeLibrary( hEngine ); |
||||
hEngine = 0; |
||||
} |
||||
|
||||
lpDS = 0; |
||||
lpDSBuf = 0; |
||||
lpHW = 0; |
||||
} |
Loading…
Reference in new issue