acm.c
来自「好记星的控件,包括button,list,对文件操作」· C语言 代码 · 共 74 行
C
74 行
#include "kernel.h"
UINT AcmStreamOpen(HACMSTREAM *phas, NU_DRIVER *drv, WAVEFORMATEX *pwfxSrc, WAVEFORMATEX *pwfxDst, DWORD fdwOpen)
{
NU_DRIVER_REQUEST request;
ACMDS_OPEN open;
NU_DRIVER *pNdTemp[50];
UINT32 dwDrivers, i;
if(drv != NULL)
{
*phas = (VOID *)drv;
open.pwfxSrc = pwfxSrc;
open.pwfxDst = pwfxDst;
open.fdwOpen = fdwOpen;
request.nu_function = NU_ASSIGN;
request.nu_supplemental_ptr = (VOID *)&open;
NU_Request_Driver(drv, &request);
return request.nu_status;
}
else
{
dwDrivers = NU_Driver_Pointers(pNdTemp,50);
for( i = 0; i < dwDrivers; i++ )
{
if( strncmp("ACM", pNdTemp[i]->nu_driver_name, strlen("ACM")) == 0 )
{
*phas = (VOID *)pNdTemp[i];
open.pwfxSrc = pwfxSrc;
open.pwfxDst = pwfxDst;
open.fdwOpen = fdwOpen;
request.nu_function = NU_ASSIGN;
request.nu_supplemental_ptr = (VOID *)&open;
NU_Request_Driver(pNdTemp[i], &request);
if(request.nu_status == NU_SUCCESS)
return MMSYSERR_NOERROR;
}
}
return MMSYSERR_NODRIVER;
}
}
UINT AcmStreamSize(HACMSTREAM has, DWORD cbInput, DWORD *pdwOutputBytes, DWORD fdwSize)
{
NU_DRIVER_REQUEST request;
request.nu_function = NU_INPUT;
request.nu_request_info.nu_input.nu_request_size = cbInput;
request.nu_supplemental = fdwSize;
NU_Request_Driver((NU_DRIVER *)has, &request);
*pdwOutputBytes = request.nu_request_info.nu_input.nu_actual_size;
return request.nu_status;
}
UINT AcmStreamConvert(HACMSTREAM has, ACMSTREAMHEADER *pash, DWORD fdwConvert)
{
NU_DRIVER_REQUEST request;
request.nu_function = NU_OUTPUT;
request.nu_supplemental_ptr = (VOID *)pash;
request.nu_supplemental = fdwConvert;
NU_Request_Driver((NU_DRIVER *)has, &request);
return request.nu_status;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?