10/09/24 09:15:10 Z0JE0a58
>>736
LockChannelが2回成功するまで(ただし失敗も含め最大10回)ループするように変更しました。
>>736 のコードを以下に変えました。
const BYTE byCallNum = 2; const BYTE byCallMax = 10; const DWORD dwSleepTime = 100; BYTE i = 0; BYTE byCallSuccess = 0; BOOL bRet = FALSE;
for (i = 0; i < byCallMax && byCallSuccess < byCallNum; i++) {
if ((bRet = LockChannel(m_aCh[dwChannel].bySatellite, m_aCh[dwChannel].bHorizontal, m_aCh[dwChannel].dwFrequency, m_aCh[dwChannel].bDvbS2))) byCallSuccess++;
::Sleep(dwSleepTime);
}
OutputDebug("LockChannel in CBonTuner::SetChannel called %d(%d) times and succeeded %d(%d) times.\n", i, byCallMax, byCallSuccess, byCallNum);
そしてPurgeTsStream();のあとの
if (bRet) {
は
if (byCallSuccess == byCallNum) {
になります。
このコードで実験すると、何度かLockChannelに失敗していました。