Пример #1
0
void CMainDlg::StartCaptureVideo(int iChannel,bool sub)
{
	SYSTEMTIME systemTime;
	GetLocalTime(&systemTime);
	SetupDateTime(m_channelHandle[iChannel], &systemTime);

	m_recordFileName[iChannel].Format("%s%dY%dM%dD%dH%d",m_settingDlg->m_capturePath,systemTime.wYear,systemTime.wMonth,systemTime.wDay,systemTime.wHour,iChannel);
	m_fileHandle[iChannel] = CreateFile(m_recordFileName[iChannel], GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
	InsertOneRecord(iChannel,0,systemTime,m_recordFileName[iChannel]);
	if (sub) 
	{
		m_recordFileName[iChannel+BLM_CHANNEL_MAX].Format("%s%dY%dM%dD%dH%dSub",m_settingDlg->m_capturePath,systemTime.wYear,systemTime.wMonth,systemTime.wDay,systemTime.wHour,iChannel);
		m_fileHandle[iChannel+BLM_CHANNEL_MAX] = CreateFile(m_recordFileName[iChannel], GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
		InsertOneRecord(iChannel,1,systemTime,m_recordFileName[iChannel]);

		SetupSubChannel(m_channelHandle[iChannel], 1);
		CaptureIFrame(m_channelHandle[iChannel]);
		StartSubVideoCapture(m_channelHandle[iChannel]);
		m_isVideoCapture[iChannel+BLM_CHANNEL_MAX] = TRUE;
	}

	SetupSubChannel(m_channelHandle[iChannel], 0);
	CaptureIFrame(m_channelHandle[iChannel]);
	int iRet = StartVideoCapture(m_channelHandle[iChannel]);

	m_isVideoCapture[iChannel] = TRUE;

}
Пример #2
0
int SstAlignSym::Insert( SymbolStruct* sym )
/*******************************************/
{
    uint seg = sym -> CodeSegment();
    if ( seg != NO_SEGMENT ) {
        if ( _lastStartSym[seg] == 0 ) {
            SymbolStruct* newSSym = new CSStartSearch(seg);
            _lastStartSym[seg] = newSSym;
            if (!_symbolInfo.insert(newSSym)) {
                cerr << "Failed to insert in SstAlignSym::Insert(), A\n";
                cerr.flush();
                return 0;
            }
        }
    }
    if (!InsertOneRecord( sym )) {
        cerr << "Failed to insert in SstAlignSym::Insert(), B\n";
        cerr.flush();
        return 0;
    }
    if ( sym -> IsStartSym() ) {
        if ( ! symStack.isEmpty() ) {
            sym -> SetParent( symStack.top() -> Offset() );
        } else {
            sym -> SetParent( 0 );
            assert( _lastStartSym[seg] );
            _lastStartSym[seg] -> SetNext( sym -> Offset() );
            _lastStartSym[seg] = sym;
        }
        if (!symStack.push(sym)) {
            cerr << "Failed to push sym to symStack\n";
            cerr.flush();
            return 0;
        }
        return 1;
    }
    if ( sym -> IsEndSym() ) {
        symStack.pop() -> SetEnd( sym -> Offset() );
    }
    return 1;
}