本文整理汇总了C++中StreamContext::GetPos方法的典型用法代码示例。如果您正苦于以下问题:C++ StreamContext::GetPos方法的具体用法?C++ StreamContext::GetPos怎么用?C++ StreamContext::GetPos使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StreamContext
的用法示例。
在下文中一共展示了StreamContext::GetPos方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HandleWaveMessage
//.........这里部分代码省略.........
case WODM_CLOSE:
case WIDM_CLOSE:
{
DEBUGMSG(ZONE_WIDM, (TEXT("WIDM_CLOSE/WODM_CLOSE\r\n")));
dwRet = pStreamContext->Close();
// Release stream context here, rather than inside StreamContext::Close, so that if someone
// (like CMidiStream) has subclassed Close there's no chance that the object will get released
// out from under them.
if (dwRet==MMSYSERR_NOERROR)
{
pStreamContext->Release();
}
break;
}
case WODM_RESTART:
case WIDM_START:
{
dwRet = pStreamContext->Run();
break;
}
case WODM_PAUSE:
case WIDM_STOP:
{
dwRet = pStreamContext->Stop();
break;
}
case WODM_GETPOS:
case WIDM_GETPOS:
{
dwRet = pStreamContext->GetPos((PMMTIME)dwParam1);
break;
}
case WODM_RESET:
case WIDM_RESET:
{
dwRet = pStreamContext->Reset();
break;
}
case WODM_WRITE:
case WIDM_ADDBUFFER:
{
DEBUGMSG(ZONE_WIDM, (TEXT("WODM_WRITE/WIDM_ADDBUFFER, Buffer=0x%x\r\n"),dwParam1));
dwRet = pStreamContext->QueueBuffer((LPWAVEHDR)dwParam1);
break;
}
case WODM_GETVOLUME:
{
PULONG pdwGain = (PULONG)dwParam1;
UINT NumDevs = g_pHWContext->GetNumOutputDevices();
if (pStreamContext)
{
*pdwGain = pStreamContext->GetGain();
}
else
{
DeviceContext *pDeviceContext = g_pHWContext->GetOutputDeviceContext(uDeviceId);
*pdwGain = pDeviceContext->GetGain();
}
示例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;
//.........这里部分代码省略.........