CSendUDP::CSendUDP(void) { m_hSendThread = NULL; m_hSendStopEvent = _CreateEvent(FALSE, FALSE, NULL); m_hCriticalEvent = _CreateEvent(FALSE, TRUE, NULL); WSAData wsaData; WSAStartup(MAKEWORD(2,0), &wsaData); WCHAR strExePath[512] = L""; GetModuleFileName(NULL, strExePath, 512); WCHAR szPath[_MAX_PATH]; // パス WCHAR szFile[_MAX_PATH]; // ファイル WCHAR szDrive[_MAX_DRIVE]; WCHAR szDir[_MAX_DIR]; WCHAR szFname[_MAX_FNAME]; WCHAR szExt[_MAX_EXT]; _tsplitpath_s( strExePath, szDrive, _MAX_DRIVE, szDir, _MAX_DIR, szFname, _MAX_FNAME, szExt, _MAX_EXT ); _tmakepath_s( szPath, _MAX_PATH, szDrive, szDir, NULL, NULL ); _tmakepath_s( szFile, _MAX_PATH, L"", L"", szFname, szExt ); Format(m_strIniPath, L"%s%s.ini",szPath,szFname); }
CNotifyManager::CNotifyManager(void) { this->lockEvent = _CreateEvent(FALSE, TRUE, NULL); this->lockNotify = _CreateEvent(FALSE, TRUE, NULL); this->notifyThread = NULL; this->notifyStopEvent = _CreateEvent(FALSE, FALSE, NULL); this->sendEvent = _CreateEvent(TRUE, TRUE, NULL); }
CWriteTSFile::CWriteTSFile(void) { this->lockEvent = _CreateEvent(FALSE, TRUE, NULL); this->buffLockEvent = _CreateEvent(FALSE, TRUE, NULL); this->outThread = NULL; this->outStopEvent = _CreateEvent(FALSE, FALSE, NULL); this->writeTotalSize = 0; this->maxBuffCount = -1; this->buffOverErr = FALSE; }
CWinHTTPUtil::CWinHTTPUtil(void) { this->session = NULL; this->connect = NULL; this->request = NULL; this->useProxy = FALSE; this->asyncMode = FALSE; this->lastHost = L""; this->lastPort = 0; this->upThread = NULL; this->upStopEvent = _CreateEvent(FALSE, FALSE, NULL); this->writeCompEvent = _CreateEvent(FALSE, FALSE, NULL); this->responseCompEvent = _CreateEvent(FALSE, FALSE, NULL); }
CBatManager::CBatManager(void) { this->lockEvent = _CreateEvent(FALSE, TRUE, NULL); this->workFlag = FALSE; this->batWorkThread = NULL; this->batWorkStopEvent = _CreateEvent(FALSE, FALSE, NULL); this->lastSuspendMode = 0xFF; this->lastRebootFlag = 0xFF; this->notifyManager = NULL; ReloadSetting(); }
CWritePlugInUtil::CWritePlugInUtil(void) { module = NULL; this->id = 0; this->lockEvent = _CreateEvent(FALSE, TRUE, NULL ); }
CBonCtrl::CBonCtrl(void) { this->lockEvent = _CreateEvent(FALSE, TRUE, NULL); this->buffLockEvent = _CreateEvent(FALSE, TRUE, NULL); this->recvThread = NULL; this->recvStopEvent = _CreateEvent(FALSE, FALSE, NULL); this->analyzeThread = NULL; this->analyzeStopEvent = _CreateEvent(FALSE, FALSE, NULL); this->chScanThread = NULL; this->chScanStopEvent = _CreateEvent(FALSE, FALSE, NULL); this->chSt_space = 0; this->chSt_ch = 0; this->chSt_chName = L""; this->chSt_chkNum = 0; this->chSt_totalNum = 0; this->chSt_err = ST_STOP; this->epgCapThread = NULL; this->epgCapStopEvent = _CreateEvent(FALSE, FALSE, NULL); this->BSBasic = TRUE; this->CS1Basic = TRUE; this->CS2Basic = TRUE; this->epgSt_err = ST_STOP; this->epgCapBackThread = NULL; this->epgCapBackStopEvent = _CreateEvent(FALSE, FALSE, NULL); this->enableLiveEpgCap = FALSE; this->enableRecEpgCap = FALSE; this->epgCapBackStartWaitSec = 30; this->tsBuffMaxCount = 5000; this->writeBuffMaxCount = -1; }
CTwitterMain::CTwitterMain(void) { this->lockEvent = _CreateEvent(FALSE, TRUE, NULL); this->authorizationUrl = NULL; this->useProxy = FALSE; this->chgProxy = TRUE; this->tweetThread = NULL; this->tweetStopEvent = _CreateEvent(FALSE, FALSE, NULL); this->tweetSetEvent = _CreateEvent(FALSE, FALSE, NULL); WCHAR filePath[512] = L""; GetModuleFileName(g_Instance, filePath, 512); this->moduleIniPath = filePath; this->moduleIniPath += L".ini"; this->sendWaitSec = 5; }
CEpgDBManager::CEpgDBManager(void) { this->lockEvent = _CreateEvent(FALSE, TRUE, NULL); this->loadThread = NULL; this->loadStopEvent = _CreateEvent(FALSE, FALSE, NULL); wstring textPath; GetModuleFolderPath(textPath); textPath += L"\\ConvertText.txt"; this->chgText.ParseReserveText(textPath.c_str() ); ::CoInitialize( NULL ); HRESULT hr=regExp.CreateInstance(CLSID_RegExp); if(FAILED(hr)){ regExp = NULL; } }
CTunerCtrl::CTunerCtrl(void) { OSVERSIONINFO VerInfo; VerInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx( &VerInfo ); if( VerInfo.dwMajorVersion == 5 && VerInfo.dwMinorVersion == 0 ){ win2kFlag = TRUE; }else{ win2kFlag = FALSE; } this->openWaitEvent = _CreateEvent(FALSE, TRUE, _T("Global\\EpgTimerSrv_OpenTuner_Event") ); }
CPushVideoPin::CPushVideoPin(HRESULT *phr, CSource *pFilter) : CSourceStream(NAME("Push Source Video"), phr, pFilter, L"Video Out") { AM_MEDIA_TYPE amTypeVideo; amTypeVideo.majortype = MEDIATYPE_Video; amTypeVideo.subtype = MEDIASUBTYPE_MPEG2_VIDEO; amTypeVideo.bFixedSizeSamples = TRUE; amTypeVideo.bTemporalCompression = 0; amTypeVideo.formattype = FORMAT_MPEG2Video; amTypeVideo.pUnk = NULL; amTypeVideo.cbFormat = 0; amTypeVideo.pbFormat = NULL; m_mt = amTypeVideo; this->buffLockEvent = _CreateEvent(FALSE, TRUE, NULL); }
CPushAudioPin::CPushAudioPin(HRESULT *phr, CSource *pFilter) : CSourceStream(NAME("Push Source Audio"), phr, pFilter, L"Audio Out") { AM_MEDIA_TYPE amTypeAudio; amTypeAudio.majortype = MEDIATYPE_Audio; amTypeAudio.subtype = MEDIASUBTYPE_MPEG_ADTS_AAC; amTypeAudio.bFixedSizeSamples = TRUE; amTypeAudio.bTemporalCompression = 0; amTypeAudio.formattype = FORMAT_WaveFormatEx; amTypeAudio.pUnk = NULL; amTypeAudio.cbFormat = 0; amTypeAudio.pbFormat = NULL; m_mt = amTypeAudio; this->buffLockEvent = _CreateEvent(FALSE, TRUE, NULL); }
//チャンネル設定ファイルを保存する BOOL CChSetUtil::SaveChSet( wstring chSet4FilePath, wstring chSet5FilePath ) { //接続待ち HANDLE waitEvent = _CreateEvent(FALSE, TRUE, CHSET_SAVE_EVENT_WAIT); if( waitEvent == NULL ){ return FALSE; } if(WaitForSingleObject(waitEvent, 10000) == WAIT_TIMEOUT){ CloseHandle(waitEvent); return FALSE; } BOOL ret = TRUE; if( this->chText4.SaveChText(chSet4FilePath.c_str()) == FALSE ){ ret = FALSE; } //他で更新されてる可能性あるので再読み込み CParseChText5 chText5; chText5.ParseText(chSet5FilePath.c_str()); //現在保持している情報を追加 map<LONGLONG, CH_DATA5>::iterator itr; for( itr = this->chText5.chList.begin(); itr != this->chText5.chList.end(); itr++ ){ chText5.AddCh(itr->second); } //保存 if( chText5.SaveChText(chSet5FilePath.c_str()) == FALSE ){ ret = FALSE; } //最新版を再読み込み this->chText5.ParseText(chSet5FilePath.c_str()); SetEvent(waitEvent); CloseHandle(waitEvent); return ret; }
CEpgDataCap3Main::CEpgDataCap3Main(void) { this->lockEvent = _CreateEvent(FALSE, TRUE, NULL); decodeUtilClass.SetEpgDB(&(this->epgDBUtilClass)); }
UINT WINAPI CHttpServer::ServerThread(LPVOID pParam) { CHttpServer* pSys = (CHttpServer*)pParam; HANDLE hCurThread = GetCurrentThread(); SetThreadPriority(hCurThread, pSys->m_iThreadPriority); SOCKET sock = NULL; SOCKET sock2 = NULL; struct sockaddr_in client; HANDLE hEventCmdWait = NULL; if( pSys->m_iCtrlCmdEventID != -1 ){ wstring strCmdEvent; Format(strCmdEvent, L"%s%d", CMD2_CTRL_EVENT_WAIT, pSys->m_iCtrlCmdEventID); hEventCmdWait = _CreateEvent(FALSE, TRUE, strCmdEvent.c_str()); } fd_set ready; struct timeval to; while(1){ if( WaitForSingleObject( pSys->m_hStopEvent, 0 ) != WAIT_TIMEOUT ){ //中止 break; } to.tv_sec = 1; to.tv_usec = 0; FD_ZERO(&ready); FD_SET(pSys->m_sock, &ready); if( select(0, &ready, NULL, NULL, &to ) == SOCKET_ERROR ){ break; } if( sock == NULL ){ if ( FD_ISSET(pSys->m_sock, &ready) ){ int len = sizeof(client); sock = accept(pSys->m_sock, (struct sockaddr *)&client, &len); if (sock == INVALID_SOCKET) { closesocket(pSys->m_sock); pSys->m_sock = NULL; break; } } } if( sock != NULL ){ //ほかのサーバーで処理中? if( hEventCmdWait != NULL ){ WaitForSingleObject(hEventCmdWait, INFINITE); } DWORD socketBuffSize = 1024*1024; setsockopt(sock, SOL_SOCKET, SO_SNDBUF, (const char*)&socketBuffSize, sizeof(socketBuffSize)); setsockopt(sock, SOL_SOCKET, SO_SNDBUF, (const char*)&socketBuffSize, sizeof(socketBuffSize)); to.tv_sec = 1; to.tv_usec = 0; FD_ZERO(&ready); FD_SET(sock, &ready); if( select(0, &ready, NULL, NULL, &to ) == SOCKET_ERROR ){ shutdown(sock,SD_RECEIVE); sock = NULL; continue; } if ( FD_ISSET(sock, &ready) ){ HTTP_STREAM recvData; HTTP_STREAM sendData; string httpHeader = ""; BOOL chkLine = FALSE; BOOL chkBody = FALSE; DWORD readBody = 0; while(1){ int offset = 0; int iRet = 1; char recvBuff[1025] = {0}; iRet = recv(sock, recvBuff, 1024, 0); if( iRet == SOCKET_ERROR ){ break; }else if( iRet == 0 ){ break; } if( chkLine == TRUE ){ chkLine = FALSE; if(recvBuff[0] == '\n'){ httpHeader += "\n"; chkBody = TRUE; offset=1; recvData.dataSize = pSys->ChkContentLength(httpHeader); if( recvData.dataSize > 0 ){ recvData.data = new BYTE[recvData.dataSize]; } }else if(recvBuff[0] == '\r' && recvBuff[1] == '\n' ){ httpHeader += "\r\n"; chkBody = TRUE; offset=2; recvData.dataSize = pSys->ChkContentLength(httpHeader); if( recvData.dataSize > 0 ){ recvData.data = new BYTE[recvData.dataSize]; } } } if( chkBody == FALSE ){ for( int i=0; i<iRet; i++ ){ if( recvBuff[i] == '\n'){ if( i+2 < iRet ){ if(recvBuff[i+1] == '\r' && recvBuff[i+2] == '\n' ){ char* buff = new char[i+3]; ZeroMemory(buff, i+3); memcpy(buff, recvBuff, i+2); httpHeader+=buff; chkBody = TRUE; offset=i+3; recvData.dataSize = pSys->ChkContentLength(httpHeader); if( recvData.dataSize > 0 ){ recvData.data = new BYTE[recvData.dataSize]; } SAFE_DELETE_ARRAY(buff); break; } }else{ chkLine = TRUE; } } } if( chkBody == FALSE ){ httpHeader += recvBuff; } } if( chkBody == TRUE ){ if( recvData.dataSize > 0 ){ memcpy(recvData.data + readBody, recvBuff+offset, min(iRet-offset, (int)(recvData.dataSize-readBody))); readBody+=iRet-offset; } if( recvData.dataSize <= readBody ){ recvData.httpHeader = httpHeader; break; } } } if( recvData.httpHeader.size() > 0 ){ int iRet = 1; pSys->m_pHttpProc(pSys->m_pParam, &recvData, &sendData); iRet = send(sock, (char*)sendData.httpHeader.c_str(), (int)sendData.httpHeader.size(), 0); if( iRet != SOCKET_ERROR && sendData.dataSize > 0){ iRet = send(sock, (char*)sendData.data, sendData.dataSize, 0); } } } shutdown(sock,SD_RECEIVE); closesocket(sock); sock = NULL; if( hEventCmdWait != NULL ){ SetEvent(hEventCmdWait); } } } if( sock != NULL ){ shutdown(sock,SD_RECEIVE); closesocket(sock); } if( hEventCmdWait != NULL ){ CloseHandle(hEventCmdWait); } return 0; }
CFileStreamingManager::CFileStreamingManager(void) { this->lockEvent = _CreateEvent(FALSE, TRUE, NULL); this->nextCtrlID = 1; }