|
|
/****************************************************************************
* * waveout.c * * WDM Audio support for Wave Output devices * * Copyright (C) Microsoft Corporation, 1997 - 1998 All Rights Reserved. * * History * 3-17-98 - Mike McLaughlin (mikem) * ***************************************************************************/
#include "wdmdrv.h"
//--------------------------------------------------------------------------
//
// DWORD auxMessage
//
// Description:
// This function conforms to the standard auxilary driver
// message procedure.
//
// Parameters:
// UINT uDevId
//
// WORD msg
//
// DWORD dwUser
//
// DWORD dwParam1
//
// DWORD dwParam2
//
// Return (DWORD):
// Message specific
//
//@@BEGIN_MSINTERNAL
// History: Date Author Comment
// 5/20/93 BryanW Added this comment block.
//@@END_MSINTERNAL
//
//--------------------------------------------------------------------------
DWORD FAR PASCAL _loadds auxMessage ( UINT uDevId, WORD msg, DWORD_PTR dwUser, DWORD_PTR dwParam1, DWORD_PTR dwParam2 ) { LPDEVICEINFO DeviceInfo; MMRESULT mmr;
switch (msg) { case AUXM_INIT: DPF(DL_TRACE|FA_AUX, ("AUXDM_INIT") ) ; return(wdmaudAddRemoveDevNode(AuxDevice, (LPCWSTR)(ULONG_PTR)dwParam2, TRUE)); case DRVM_EXIT: DPF(DL_TRACE|FA_AUX, ("AUXM_EXIT") ) ; return(wdmaudAddRemoveDevNode(AuxDevice, (LPCWSTR)(ULONG_PTR)dwParam2, FALSE));
case AUXDM_GETNUMDEVS: DPF(DL_TRACE|FA_AUX, ("AUXDM_GETNUMDEVS") ) ; return wdmaudGetNumDevs(AuxDevice, (LPWSTR)(ULONG_PTR)dwParam1);
case AUXDM_GETDEVCAPS: DPF(DL_TRACE|FA_AUX, ("AUXDM_GETDEVCAPS") ) ; if (DeviceInfo = GlobalAllocDeviceInfo((LPWSTR)(ULONG_PTR)dwParam2)) { DeviceInfo->DeviceType = AuxDevice; DeviceInfo->DeviceNumber = uDevId; mmr = wdmaudGetDevCaps(DeviceInfo, (MDEVICECAPSEX FAR*)(ULONG_PTR)dwParam1); GlobalFreeDeviceInfo(DeviceInfo); return mmr; } else { MMRRETURN( MMSYSERR_NOMEM ); }
case AUXDM_GETVOLUME: DPF(DL_TRACE|FA_AUX, ("AUXDM_GETVOLUME") ) ; if (DeviceInfo = GlobalAllocDeviceInfo((LPWSTR)(ULONG_PTR)dwParam2)) { DeviceInfo->DeviceType = AuxDevice; DeviceInfo->DeviceNumber = uDevId; PRESETERROR(DeviceInfo); mmr = wdmaudIoControl(DeviceInfo, sizeof(DWORD), (LPBYTE)(ULONG_PTR)dwParam1, IOCTL_WDMAUD_GET_VOLUME); POSTEXTRACTERROR(mmr,DeviceInfo);
GlobalFreeDeviceInfo(DeviceInfo); MMRRETURN( mmr ); } else { MMRRETURN( MMSYSERR_NOMEM ); } case AUXDM_SETVOLUME: DPF(DL_TRACE|FA_AUX, ("AUXDM_SETVOLUME") ) ; if (DeviceInfo = GlobalAllocDeviceInfo((LPWSTR)(ULONG_PTR)dwParam2)) { DeviceInfo->DeviceType = AuxDevice; DeviceInfo->DeviceNumber = uDevId; PRESETERROR(DeviceInfo); mmr = wdmaudIoControl(DeviceInfo, sizeof(DWORD), (LPBYTE)&dwParam1, IOCTL_WDMAUD_SET_VOLUME); POSTEXTRACTERROR(mmr,DeviceInfo);
GlobalFreeDeviceInfo(DeviceInfo); MMRRETURN( mmr ); } else { MMRRETURN( MMSYSERR_NOMEM ); } }
MMRRETURN( MMSYSERR_NOTSUPPORTED );
} // auxMessage()
//---------------------------------------------------------------------------
// End of File: auxd.c
//---------------------------------------------------------------------------
|