Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/***************************************************************************
* * vsb.h * * Copyright (c) 1991-1996 Microsoft Corporation. All Rights Reserved. * * This code provides VDD support for SB 2.0 sound output, specifically: * DSP 2.01+ (excluding SB-MIDI port) * Mixer Chip CT1335 (not strictly part of SB 2.0, but apps seem to like it) * FM Chip OPL2 (a.k.a. Adlib) * ***************************************************************************/
/*****************************************************************************
* * #defines * *****************************************************************************/
#define VSBD_PATH TEXT("System\\CurrentControlSet\\Control\\VirtualDeviceDrivers\\SoundBlaster")
#define LOOKAHEAD_VALUE TEXT("LookAhead")
/*
* Hardware and version information * In DOS terms: SET BLASTER=A220 I5 D1 T3 */
#define SB_VERSION 0x201 // SB 2.0 (DSP 2.01+)
#define SB_INTERRUPT 0x05 // Interrupt 5
#define SB_DMA_CHANNEL 0x01 // DMA Channel 1
#define NO_DEVICE_FOUND 0xFFFF // returned if no device found
/*****************************************************************************
* * Function Prototypes * *****************************************************************************/
/*
* General function prototypes */
void VddDbgOut(LPSTR lpszFormat, ...); BOOL WINAPI DllEntryPoint(HINSTANCE hInstance, DWORD reason, LPVOID reserved); BOOL InstallIoHook(HINSTANCE hInstance); void DeInstallIoHook(HINSTANCE hInstance); VOID VsbByteIn(WORD port, BYTE * data); VOID VsbByteOut(WORD port, BYTE data); VOID ResetAll(VOID);
/*****************************************************************************
* * Globals * *****************************************************************************/
//
// Definitions for MM api entry points. The functions will be linked
// dynamically to avoid bringing winmm.dll in before wow32.
//
typedef MMRESULT (WINAPI* SETVOLUMEPROC)(HWAVEOUT, DWORD); typedef UINT (WINAPI* GETNUMDEVSPROC)(VOID); typedef MMRESULT (WINAPI* GETDEVCAPSPROC)(UINT, LPWAVEOUTCAPSW, UINT); typedef MMRESULT (WINAPI* OPENPROC)(LPHWAVEOUT, UINT, LPCWAVEFORMATEX, DWORD, DWORD, DWORD); typedef MMRESULT (WINAPI* RESETPROC)(HWAVEOUT); typedef MMRESULT (WINAPI* CLOSEPROC)(HWAVEOUT); typedef MMRESULT (WINAPI* GETPOSITIONPROC)(HWAVEOUT, LPMMTIME, UINT); typedef MMRESULT (WINAPI* WRITEPROC)(HWAVEOUT, LPWAVEHDR, UINT); typedef MMRESULT (WINAPI* PREPAREHEADERPROC)(HWAVEOUT, LPWAVEHDR, UINT); typedef MMRESULT (WINAPI* UNPREPAREHEADERPROC)(HWAVEOUT, LPWAVEHDR, UINT);
/*****************************************************************************
* * Debugging * Levels: * 1 - errors only * 2 - significant events * 3 - regular events * 4 - heaps o' information * *****************************************************************************/
#if DBG
extern int VddDebugLevel; #define dprintf( _x_ ) VddDbgOut _x_
#define dprintf1( _x_ ) if (VddDebugLevel >= 1) VddDbgOut _x_
#define dprintf2( _x_ ) if (VddDebugLevel >= 2) VddDbgOut _x_
#define dprintf3( _x_ ) if (VddDebugLevel >= 3) VddDbgOut _x_
#define dprintf4( _x_ ) if (VddDebugLevel >= 4) VddDbgOut _x_
#else
#define dprintf(x)
#define dprintf1(x)
#define dprintf2(x)
#define dprintf3(x)
#define dprintf4(x)
#endif // DBG
|