本文整理汇总了C++中StreamContext::GetGain方法的典型用法代码示例。如果您正苦于以下问题:C++ StreamContext::GetGain方法的具体用法?C++ StreamContext::GetGain怎么用?C++ StreamContext::GetGain使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StreamContext
的用法示例。
在下文中一共展示了StreamContext::GetGain方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HandleWaveMessage
BOOL HandleWaveMessage(PMMDRV_MESSAGE_PARAMS pParams, DWORD *pdwResult)
{
// set the error code to be no error first
SetLastError(MMSYSERR_NOERROR);
UINT uMsg = pParams->uMsg;
UINT uDeviceId = pParams->uDeviceId;
DWORD dwParam1 = pParams->dwParam1;
DWORD dwParam2 = pParams->dwParam2;
DWORD dwUser = pParams->dwUser;
StreamContext *pStreamContext = (StreamContext *)dwUser;
DWORD dwRet;
g_pHWContext->Lock();
_try
{
switch (uMsg)
{
case WODM_GETNUMDEVS:
{
dwRet = g_pHWContext->GetNumOutputDevices();
break;
}
case WIDM_GETNUMDEVS:
{
dwRet = g_pHWContext->GetNumInputDevices();
break;
}
case WODM_GETDEVCAPS:
{
DeviceContext *pDeviceContext;
UINT NumDevs = g_pHWContext->GetNumOutputDevices();
if (pStreamContext)
{
pDeviceContext=pStreamContext->GetDeviceContext();
}
else
{
pDeviceContext = g_pHWContext->GetOutputDeviceContext(uDeviceId);
}
dwRet = pDeviceContext->GetDevCaps((PVOID)dwParam1,dwParam2);
break;
}
case WIDM_GETDEVCAPS:
{
DeviceContext *pDeviceContext;
UINT NumDevs = g_pHWContext->GetNumInputDevices();
if (pStreamContext)
{
pDeviceContext=pStreamContext->GetDeviceContext();
}
else
{
pDeviceContext = g_pHWContext->GetInputDeviceContext(uDeviceId);
}
dwRet = pDeviceContext->GetDevCaps((PVOID)dwParam1,dwParam2);
break;
}
case WODM_GETEXTDEVCAPS:
{
DeviceContext *pDeviceContext;
UINT NumDevs = g_pHWContext->GetNumOutputDevices();
if (pStreamContext)
{
pDeviceContext=pStreamContext->GetDeviceContext();
}
else
{
pDeviceContext = g_pHWContext->GetOutputDeviceContext(uDeviceId);
}
dwRet = pDeviceContext->GetExtDevCaps((PVOID)dwParam1,dwParam2);
break;
}
case WODM_OPEN:
{
DEBUGMSG(ZONE_WODM, (TEXT("WODM_OPEN\r\n")));
DeviceContext *pDeviceContext = g_pHWContext->GetOutputDeviceContext(uDeviceId);
dwRet = pDeviceContext->OpenStream((LPWAVEOPENDESC)dwParam1, dwParam2, (StreamContext **)dwUser);
break;
}
case WIDM_OPEN:
{
DEBUGMSG(ZONE_WIDM, (TEXT("WIDM_OPEN\r\n")));
DeviceContext *pDeviceContext = g_pHWContext->GetInputDeviceContext(uDeviceId);
dwRet = pDeviceContext->OpenStream((LPWAVEOPENDESC)dwParam1, dwParam2, (StreamContext **)dwUser);
//.........这里部分代码省略.........
示例2: DEBUGMSG
//------------------------------------------------------------------------------
// process_MiscellaneousMessage, all messages not handled by the other message
// handlers
//
BOOL
CAudioManager::process_AudioStreamMessage(
PMMDRV_MESSAGE_PARAMS pParams,
DWORD *pdwResult
)
{
DEBUGMSG(ZONE_FUNCTION,
(L"WAV:+process_AudioStreamMessage(uMsg=%d)\r\n", pParams->uMsg)
);
// set the error code to be no error first
SetLastError(MMSYSERR_NOERROR);
CStreamManager *pStreamManager;
WaveStreamContext *pWaveStream;
PDWORD pdwGain;
UINT uMsg = pParams->uMsg;
UINT uDeviceId = pParams->uDeviceId;
DWORD dwParam1 = pParams->dwParam1;
DWORD dwParam2 = pParams->dwParam2;
DWORD dwUser = pParams->dwUser;
StreamContext *pStreamContext = (StreamContext *)dwUser;
DWORD dwRet=MMSYSERR_NOTSUPPORTED;
switch (uMsg)
{
case WODM_SETVOLUME:
DEBUGMSG(ZONE_WODM, (L"WAV:WODM_SETVOLUME\r\n"));
dwRet = (pStreamContext) ? pStreamContext->SetGain(dwParam1) :
put_OutputGain(dwParam1);
break;
case WODM_RESTART:
case WIDM_START:
DEBUGMSG(ZONE_WODM|ZONE_WIDM, (L"WAV:WODM_RESTART/WIDM_START\r\n"));
dwRet = pStreamContext->Run();
break;
case WODM_PAUSE:
case WIDM_STOP:
DEBUGMSG(ZONE_WODM|ZONE_WIDM, (L"WAV:WODM_PAUSE/WIDM_STOP\r\n"));
dwRet = pStreamContext->Stop();
break;
case WODM_GETPOS:
case WIDM_GETPOS:
DEBUGMSG(ZONE_WODM|ZONE_WIDM, (L"WAV:WODM_GETPOS/WIDM_GETPOS\r\n"));
dwRet = pStreamContext->GetPos((PMMTIME)dwParam1);
break;
case WODM_RESET:
case WIDM_RESET:
DEBUGMSG(ZONE_WODM|ZONE_WIDM, (L"WAV:WODM_RESET/WIDM_RESET\r\n"));
dwRet = pStreamContext->Reset();
break;
case WODM_WRITE:
case WIDM_ADDBUFFER:
DEBUGMSG(ZONE_WODM|ZONE_WIDM,
(L"WAV:WODM_WRITE/WIDM_ADDBUFFER\r\n")
);
if(m_bSuspend==TRUE)
dwRet=MMSYSERR_NOERROR;
else
dwRet = pStreamContext->QueueBuffer((LPWAVEHDR)dwParam1);
break;
case WODM_GETVOLUME:
DEBUGMSG(ZONE_WODM, (L"WAV:WODM_GETVOLUME\r\n"));
pdwGain = (PDWORD)dwParam1;
*pdwGain = (pStreamContext) ? pStreamContext->GetGain() :
get_OutputGain();
dwRet = MMSYSERR_NOERROR;
break;
case WODM_BREAKLOOP:
DEBUGMSG(ZONE_WODM, (L"WAV:WODM_BREAKLOOP\r\n"));
dwRet = pStreamContext->BreakLoop();
break;
case WODM_SETPLAYBACKRATE:
DEBUGMSG(ZONE_WODM, (L"WAV:WODM_SETPLAYBACKRATE\r\n"));
pWaveStream = (WaveStreamContext *)dwUser;
dwRet = pWaveStream->SetRate(dwParam1);
break;
case WODM_GETPLAYBACKRATE:
DEBUGMSG(ZONE_WODM, (L"WAV:WODM_GETPLAYBACKRATE\r\n"));
pWaveStream = (WaveStreamContext *)dwUser;
dwRet = pWaveStream->GetRate((DWORD *)dwParam1);
break;
//.........这里部分代码省略.........