CEpgDataCap_BonDlg::CEpgDataCap_BonDlg() : m_hWnd(NULL) , m_hKeyboardHook(NULL) { m_hIcon = (HICON)LoadImage( GetModuleHandle(NULL), MAKEINTRESOURCE( IDI_ICON_BLUE ), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); m_hIcon2 = (HICON)LoadImage( GetModuleHandle(NULL), MAKEINTRESOURCE( IDI_ICON_BLUE ), IMAGE_ICON, 32, 32, LR_DEFAULTCOLOR); iconRed = (HICON)LoadImage( GetModuleHandle(NULL), MAKEINTRESOURCE( IDI_ICON_RED ), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); iconBlue = (HICON)LoadImage( GetModuleHandle(NULL), MAKEINTRESOURCE( IDI_ICON_BLUE ), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); iconGreen = (HICON)LoadImage( GetModuleHandle(NULL), MAKEINTRESOURCE( IDI_ICON_GREEN ), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); iconGray = (HICON)LoadImage( GetModuleHandle(NULL), MAKEINTRESOURCE( IDI_ICON_GRAY ), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); taskbarCreated = RegisterWindowMessage(L"TaskbarCreated"); wstring strPath = L""; GetModuleIniPath(strPath); this->moduleIniPath = strPath.c_str(); GetCommonIniPath(strPath); this->commonIniPath = strPath.c_str(); GetEpgTimerSrvIniPath(strPath); this->timerSrvIniPath = strPath.c_str(); this->initONID = GetPrivateProfileInt( L"Set", L"LastONID", -1, this->moduleIniPath.c_str() ); this->initTSID = GetPrivateProfileInt( L"Set", L"LastTSID", -1, this->moduleIniPath.c_str() ); this->initSID = GetPrivateProfileInt( L"Set", L"LastSID", -1, this->moduleIniPath.c_str() ); WCHAR buff[512]=L""; GetPrivateProfileString( L"Set", L"LastBon", L"", buff, 512, this->moduleIniPath.c_str() ); this->iniBonDriver = buff; iniView = FALSE; iniNetwork = TRUE; iniMin = FALSE; this->iniUDP = FALSE; this->iniTCP = FALSE; this->minTask = GetPrivateProfileInt( L"Set", L"MinTask", 0, this->moduleIniPath.c_str() ); this->openLastCh = GetPrivateProfileInt( L"Set", L"OpenLast", 1, this->moduleIniPath.c_str() ); if( this->openLastCh == 0 ){ if( GetPrivateProfileInt( L"Set", L"OpenFix", 0, this->moduleIniPath.c_str() ) == 1){ this->initONID = GetPrivateProfileInt( L"Set", L"FixONID", -1, this->moduleIniPath.c_str() ); this->initTSID = GetPrivateProfileInt( L"Set", L"FixTSID", -1, this->moduleIniPath.c_str() ); this->initSID = GetPrivateProfileInt( L"Set", L"FixSID", -1, this->moduleIniPath.c_str() ); GetPrivateProfileString( L"Set", L"FixBon", L"", buff, 512, this->moduleIniPath.c_str() ); this->iniBonDriver = buff; }else{ this->initONID = -1; this->initTSID = -1; this->initSID = -1; this->iniBonDriver = L""; } } this->initOpenWait = 0; this->initChgWait = 0; }
CEpgDataCap_BonDlg::CEpgDataCap_BonDlg(CWnd* pParent /*=NULL*/) : CDialogEx(CEpgDataCap_BonDlg::IDD, pParent) , log(_T("")) , statusLog(_T("")) , pgInfo(_T("")) { m_hIcon = (HICON)LoadImage( AfxGetInstanceHandle(), MAKEINTRESOURCE( IDI_ICON_BLUE ), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); m_hIcon2 = (HICON)LoadImage( AfxGetInstanceHandle(), MAKEINTRESOURCE( IDI_ICON_BLUE ), IMAGE_ICON, 32, 32, LR_DEFAULTCOLOR); iconRed = (HICON)LoadImage( AfxGetInstanceHandle(), MAKEINTRESOURCE( IDI_ICON_RED ), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); iconBlue = (HICON)LoadImage( AfxGetInstanceHandle(), MAKEINTRESOURCE( IDI_ICON_BLUE ), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); iconGreen = (HICON)LoadImage( AfxGetInstanceHandle(), MAKEINTRESOURCE( IDI_ICON_GREEN ), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); iconGray = (HICON)LoadImage( AfxGetInstanceHandle(), MAKEINTRESOURCE( IDI_ICON_GRAY ), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); wstring strPath = L""; GetModuleIniPath(strPath); this->moduleIniPath = strPath.c_str(); GetCommonIniPath(strPath); this->commonIniPath = strPath.c_str(); GetEpgTimerSrvIniPath(strPath); this->timerSrvIniPath = strPath.c_str(); this->initONID = GetPrivateProfileInt( L"Set", L"LastONID", -1, this->moduleIniPath ); this->initTSID = GetPrivateProfileInt( L"Set", L"LastTSID", -1, this->moduleIniPath ); this->initSID = GetPrivateProfileInt( L"Set", L"LastSID", -1, this->moduleIniPath ); WCHAR buff[512]=L""; GetPrivateProfileString( L"Set", L"LastBon", L"", buff, 512, this->moduleIniPath ); this->iniBonDriver = buff; iniView = FALSE; iniNetwork = TRUE; iniMin = FALSE; this->iniUDP = FALSE; this->iniTCP = FALSE; this->minTask = GetPrivateProfileInt( L"Set", L"MinTask", 0, this->moduleIniPath ); this->openLastCh = GetPrivateProfileInt( L"Set", L"OpenLast", 1, this->moduleIniPath ); if( this->openLastCh == 0 ){ if( GetPrivateProfileInt( L"Set", L"OpenFix", 0, this->moduleIniPath ) == 1){ this->initONID = GetPrivateProfileInt( L"Set", L"FixONID", -1, this->moduleIniPath ); this->initTSID = GetPrivateProfileInt( L"Set", L"FixTSID", -1, this->moduleIniPath ); this->initSID = GetPrivateProfileInt( L"Set", L"FixSID", -1, this->moduleIniPath ); GetPrivateProfileString( L"Set", L"FixBon", L"", buff, 512, this->moduleIniPath ); this->iniBonDriver = buff; }else{ this->initONID = -1; this->initTSID = -1; this->initSID = -1; this->iniBonDriver = L""; } } this->initOpenWait = 0; this->initChgWait = 0; }
void GetSettingPath(wstring& strPath) { strPath = L""; wstring strIni = L""; GetCommonIniPath(strIni); WCHAR wPath[512]=L""; GetPrivateProfileString( L"Set", L"DataSavePath", L"", wPath, 512, strIni.c_str() ); strPath = wPath; if( strPath.empty() == true ){ GetDefSettingPath(strPath); } ChkFolderPath(strPath); }
void GetRecFolderPath(wstring& strPath) { wstring strIni = L""; GetCommonIniPath(strIni); WCHAR wPath[MAX_PATH + 8]; GetPrivateProfileString( L"Set", L"RecFolderPath0", L"", wPath, MAX_PATH + 8, strIni.c_str() ); strPath = wPath; ChkFolderPath(strPath); if( strPath.size() >= MAX_PATH ){ throw std::runtime_error(""); } if( strPath.empty() || GetPrivateProfileInt(L"SET", L"RecFolderNum", 0, strIni.c_str()) <= 0 ){ GetSettingPath(strPath); } }
void GetSettingPath(wstring& strPath) { wstring strIni = L""; GetCommonIniPath(strIni); WCHAR wPath[MAX_PATH + 8]; GetPrivateProfileString( L"Set", L"DataSavePath", L"", wPath, MAX_PATH + 8, strIni.c_str() ); strPath = wPath; ChkFolderPath(strPath); if( strPath.size() >= MAX_PATH ){ throw std::runtime_error(""); } if( strPath.empty() == true ){ GetDefSettingPath(strPath); } }
void CTunerBankCtrl::SaveProgramInfo(LPCWSTR recPath, const EPGDB_EVENT_INFO& info, bool append) const { wstring iniCommonPath; GetCommonIniPath(iniCommonPath); wstring infoFolder = GetPrivateProfileToString(L"SET", L"RecInfoFolder", L"", iniCommonPath.c_str()); ChkFolderPath(infoFolder); wstring savePath; if( infoFolder.empty() ){ savePath = recPath; }else{ GetFileName(recPath, savePath); savePath = infoFolder + L"\\" + savePath; } savePath += L".program.txt"; wstring serviceName; for( size_t i = 0; i < this->chList.size(); i++ ){ if( this->chList[i].originalNetworkID == info.original_network_id && this->chList[i].transportStreamID == info.transport_stream_id && this->chList[i].serviceID == info.service_id ){ serviceName = this->chList[i].serviceName; break; } } wstring outTextW; _ConvertEpgInfoText2(&info, outTextW, serviceName); string outText; WtoA(outTextW, outText); HANDLE hFile = _CreateDirectoryAndFile(savePath.c_str(), GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ, NULL, append ? OPEN_ALWAYS : CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if( hFile != INVALID_HANDLE_VALUE ){ if( append ){ SetFilePointer(hFile, 0, NULL, FILE_END); outText = "\r\n-----------------------\r\n" + outText; } DWORD dwWrite; WriteFile(hFile, outText.c_str(), (DWORD)outText.size(), &dwWrite, NULL); CloseHandle(hFile); } }
//設定を行う void CMediaPortal_BonMain::ReloadSetting() { wstring commonIniPath = L""; GetCommonIniPath(commonIniPath); wstring appIniPath = L""; GetModuleIniPath(appIniPath); wstring settingPath = L""; GetSettingPath(settingPath); wstring bonDriverPath = L""; GetModuleFolderPath(bonDriverPath); bonDriverPath += BON_DLL_FOLDER; this->bonCtrl.SetSettingFolder( settingPath.c_str(), bonDriverPath.c_str() ); this->recFolderList.clear(); int iNum = GetPrivateProfileInt( L"SET", L"RecFolderNum", 0, commonIniPath.c_str() ); if( iNum == 0 ){ this->recFolderList.push_back( settingPath ); }else{ for( int i = 0; i < iNum; i++ ){ CString key = L""; key.Format(L"RecFolderPath%d", i ); WCHAR wBuff[512]=L""; GetPrivateProfileString( L"SET", key, L"", wBuff, 512, commonIniPath.c_str() ); this->recFolderList.push_back(wBuff); } } this->enableScrambleFlag = GetPrivateProfileInt( L"SET", L"Scramble", 1, appIniPath.c_str() ); this->enableEMMFlag = GetPrivateProfileInt( L"SET", L"EMM", 0, appIniPath.c_str() ); this->allService = GetPrivateProfileInt( L"SET", L"AllService", 0, appIniPath.c_str() ); this->needCaption = GetPrivateProfileInt( L"SET", L"Caption", 1, appIniPath.c_str() ); this->needData = GetPrivateProfileInt( L"SET", L"Data", 0, appIniPath.c_str() ); this->startMargine = GetPrivateProfileInt( L"SET", L"StartMargine", 5, appIniPath.c_str() ); this->endMargine = GetPrivateProfileInt( L"SET", L"EndMargine", 5, appIniPath.c_str() ); this->overWriteFlag = GetPrivateProfileInt( L"SET", L"OverWrite", 0, appIniPath.c_str() ); this->BSBasic = GetPrivateProfileInt( L"SET", L"BSBasicOnly", 1, commonIniPath.c_str() ); this->CS1Basic = GetPrivateProfileInt( L"SET", L"CS1BasicOnly", 1, commonIniPath.c_str() ); this->CS2Basic = GetPrivateProfileInt( L"SET", L"CS2BasicOnly", 1, commonIniPath.c_str() ); WCHAR buff[512]=L""; GetPrivateProfileString( L"SET", L"ViewPath", L"", buff, 512, appIniPath.c_str() ); this->viewPath = buff; GetPrivateProfileString( L"SET", L"ViewOption", L"", buff, 512, appIniPath.c_str() ); this->viewOpt = buff; this->udpCount = (DWORD)GetPrivateProfileInt( L"SET_UDP", L"Count", 0, appIniPath.c_str() ); this->tcpCount = (DWORD)GetPrivateProfileInt( L"SET_TCP", L"Count", 0, appIniPath.c_str() ); if( this->nwCtrlID != 0 ){ if( this->allService == TRUE ){ this->bonCtrl.SetServiceID(this->nwCtrlID, 0xFFFF); }else{ this->bonCtrl.SetServiceID(this->nwCtrlID, this->lastSID); } } BOOL epgCapLive = (BOOL)GetPrivateProfileInt( L"SET", L"EpgCapLive", 1, appIniPath.c_str() ); BOOL epgCapRec = (BOOL)GetPrivateProfileInt( L"SET", L"EpgCapRec", 1, appIniPath.c_str() ); DWORD epgCapBackStartWaitSec = (DWORD)GetPrivateProfileInt( L"SET", L"EpgCapBackStartWaitSec", 30, appIniPath.c_str() ); this->bonCtrl.SetBackGroundEpgCap(epgCapLive, epgCapRec, this->BSBasic, this->CS1Basic, this->CS2Basic, epgCapBackStartWaitSec); if( this->sendTcpFlag == FALSE && this->sendUdpFlag == FALSE ){ this->bonCtrl.SetScramble(this->nwCtrlID, this->enableScrambleFlag); } this->bonCtrl.SetEMMMode(this->enableEMMFlag); DWORD tsBuffMaxCount = (DWORD)GetPrivateProfileInt( L"SET", L"TsBuffMaxCount", 5000, appIniPath.c_str() ); int writeBuffMaxCount = GetPrivateProfileInt( L"SET", L"WriteBuffMaxCount", -1, appIniPath.c_str() ); this->bonCtrl.SetTsBuffMaxCount(tsBuffMaxCount, writeBuffMaxCount); this->openWait = (DWORD)GetPrivateProfileInt( L"SET", L"OpenWait", 200, appIniPath.c_str() ); }
bool CTunerBankCtrl::RecStart(const TUNER_RESERVE& reserve, __int64 now) const { if( this->hTunerProcess == NULL ){ return false; } if( reserve.recMode == RECMODE_VIEW ){ return true; } CSendCtrlCmd ctrlCmd; ctrlCmd.SetPipeSetting(CMD2_VIEW_CTRL_WAIT_CONNECT, CMD2_VIEW_CTRL_PIPE, this->tunerPid); bool isMainCtrl = true; for( int i = 0; i < 2; i++ ){ if( reserve.ctrlID[i] != 0 ){ SET_CTRL_REC_PARAM param; param.ctrlID = reserve.ctrlID[i]; //saveFolder[].recFileNameが空でない限りこのフィールドが利用されることはない param.fileName = L"padding.ts"; //同時出力用ファイル名 param.saveFolder = i == 0 ? reserve.recFolder : reserve.partialRecFolder; if( param.saveFolder.empty() ){ param.saveFolder.resize(1); wstring commonIniPath; GetCommonIniPath(commonIniPath); GetRecFolderPath(param.saveFolder[0].recFolder); param.saveFolder[0].writePlugIn = GetPrivateProfileToString(L"SET", L"RecWritePlugIn0", L"", commonIniPath.c_str()); param.saveFolder[0].recNamePlugIn = this->recNamePlugInFileName; }else{ for( size_t j = 0; j < param.saveFolder.size(); j++ ){ if( CompareNoCase(param.saveFolder[j].recFolder, L"!Default") == 0 ){ //注意: この置換は原作にはない GetRecFolderPath(param.saveFolder[j].recFolder); } if( param.saveFolder[j].recNamePlugIn.empty() ){ param.saveFolder[j].recNamePlugIn = this->recNamePlugInFileName; } } } //recNamePlugInを展開して実ファイル名をセット for( size_t j = 0; j < param.saveFolder.size(); j++ ){ param.saveFolder[j].recFileName.clear(); if( param.saveFolder[j].recNamePlugIn.empty() == false ){ WORD sid = reserve.sid; WORD eid = reserve.eid; wstring stationName = reserve.stationName; if( i != 0 ){ FindPartialService(reserve.onid, reserve.tsid, reserve.sid, &sid, &stationName); eid = 0xFFFF; } wstring plugInPath; GetModuleFolderPath(plugInPath); plugInPath += L"\\RecName\\"; { PLUGIN_RESERVE_INFO info; ConvertSystemTime(reserve.startTime, &info.startTime); info.durationSec = reserve.durationSecond; wcscpy_s(info.eventName, reserve.title.c_str()); info.ONID = reserve.onid; info.TSID = reserve.tsid; info.SID = sid; info.EventID = eid; wcscpy_s(info.serviceName, stationName.c_str()); wcscpy_s(info.bonDriverName, this->bonFileName.c_str()); info.bonDriverID = this->tunerID >> 16; info.tunerID = this->tunerID & 0xFFFF; EPG_EVENT_INFO* epgInfo = NULL; if( info.EventID != 0xFFFF ){ EPGDB_EVENT_INFO epgDBInfo; if( this->epgDBManager.SearchEpg(info.ONID, info.TSID, info.SID, info.EventID, &epgDBInfo) != FALSE ){ epgInfo = new EPG_EVENT_INFO; CopyEpgInfo(epgInfo, &epgDBInfo); } } info.reserveID = reserve.reserveID; info.epgInfo = epgInfo; info.sizeOfStruct = 0; WCHAR name[512]; DWORD size = 512; if( CReNamePlugInUtil::ConvertRecName3(&info, param.saveFolder[j].recNamePlugIn.c_str(), plugInPath.c_str(), name, &size) ){ param.saveFolder[j].recFileName = name; CheckFileName(param.saveFolder[j].recFileName, this->recNameNoChkYen); } delete epgInfo; } param.saveFolder[j].recNamePlugIn.clear(); } //実ファイル名は空にしない if( param.saveFolder[j].recFileName.empty() ){ SYSTEMTIME st; ConvertSystemTime(max(reserve.startTime, now), &st); Format(param.saveFolder[j].recFileName, L"%04d%02d%02d%02d%02d%02X%02X%02d-%s.ts", st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, this->tunerID >> 16, this->tunerID & 0xFFFF, param.ctrlID, reserve.title.c_str()); CheckFileName(param.saveFolder[j].recFileName); } }
UINT WINAPI CBonCtrl::EpgCapThread(LPVOID param) { CBonCtrl* sys = (CBonCtrl*)param; BOOL chkNext = TRUE; BOOL startCap = FALSE; DWORD wait = 0; DWORD startTime = 0; DWORD chkCount = 0; DWORD chkWait = 8; BOOL chkBS = FALSE; BOOL chkCS1 = FALSE; BOOL chkCS2 = FALSE; wstring folderPath; GetModuleFolderPath( folderPath ); wstring iniPath = folderPath; iniPath += L"\\BonCtrl.ini"; DWORD timeOut = GetPrivateProfileInt(L"EPGCAP", L"EpgCapTimeOut", 15, iniPath.c_str()); BOOL saveTimeOut = GetPrivateProfileInt(L"EPGCAP", L"EpgCapSaveTimeOut", 0, iniPath.c_str()); //Common.iniは一般に外部プロセスが変更する可能性のある(はずの)ものなので、利用の直前にチェックする wstring commonIniPath; GetCommonIniPath(commonIniPath); BOOL BSBasic = GetPrivateProfileInt(L"SET", L"BSBasicOnly", 1, commonIniPath.c_str()); BOOL CS1Basic = GetPrivateProfileInt(L"SET", L"CS1BasicOnly", 1, commonIniPath.c_str()); BOOL CS2Basic = GetPrivateProfileInt(L"SET", L"CS2BasicOnly", 1, commonIniPath.c_str()); while(1){ if( ::WaitForSingleObject(sys->epgCapStopEvent, wait) != WAIT_TIMEOUT ){ //キャンセルされた sys->epgSt_err = ST_CANCEL; sys->tsOut.StopSaveEPG(FALSE); break; } if( chkNext == TRUE ){ if( sys->tsOut.IsChChanging(NULL) == TRUE ){ Sleep(200); continue; } DWORD space = 0; DWORD ch = 0; sys->chUtil.GetCh(sys->epgCapChList[chkCount].ONID, sys->epgCapChList[chkCount].TSID, space, ch); sys->_SetCh(space, ch); startTime = GetTickCount(); chkNext = FALSE; startCap = FALSE; wait = 1000; if( sys->epgCapChList[chkCount].ONID == 4 ){ chkBS = TRUE; }else if( sys->epgCapChList[chkCount].ONID == 6 ){ chkCS1 = TRUE; }else if( sys->epgCapChList[chkCount].ONID == 7 ){ chkCS2 = TRUE; } sys->epgSt_ch = sys->epgCapChList[chkCount]; }else{ BOOL chChgErr = FALSE; if( sys->tsOut.IsChChanging(&chChgErr) == TRUE ){ if( GetTickCount() - startTime > chkWait * 1000 ){ //チャンネル切り替えに10秒以上かかってるので無信号と判断 chkNext = TRUE; } }else{ if( GetTickCount() - startTime > (chkWait + timeOut * 60) * 1000 || chChgErr == TRUE){ //15分以上かかっているなら停止 sys->tsOut.StopSaveEPG(saveTimeOut); chkNext = TRUE; wait = 0; _OutputDebugString(L"++%d分でEPG取得完了せず or Ch変更でエラー", timeOut); }else if( GetTickCount() - startTime > chkWait * 1000 ){ //切り替えから15秒以上過ぎているので取得処理 if( startCap == FALSE ){ //取得開始 startCap = TRUE; wstring epgDataPath = L""; sys->GetEpgDataFilePath(sys->epgCapChList[chkCount].ONID, sys->epgCapChList[chkCount].TSID, epgDataPath, BSBasic, CS1Basic, CS2Basic); sys->tsOut.StartSaveEPG(epgDataPath); sys->tsOut.ClearSectionStatus(); wait = 60*1000; }else{ //蓄積状態チェック BOOL leitFlag = sys->chUtil.IsPartial(sys->epgCapChList[chkCount].ONID, sys->epgCapChList[chkCount].TSID, sys->epgCapChList[chkCount].SID); EPG_SECTION_STATUS status = sys->tsOut.GetSectionStatus(leitFlag); if( sys->epgCapChList[chkCount].ONID == 4 && BSBasic == TRUE ){ if( status == EpgBasicAll || status == EpgHEITAll ){ chkNext = TRUE; } }else if( sys->epgCapChList[chkCount].ONID == 6 && CS1Basic == TRUE ){ if( status == EpgBasicAll || status == EpgHEITAll ){ chkNext = TRUE; } }else if( sys->epgCapChList[chkCount].ONID == 7 && CS2Basic == TRUE ){ if( status == EpgBasicAll || status == EpgHEITAll ){ chkNext = TRUE; } }else{ if( leitFlag == FALSE && status == EpgHEITAll ){ chkNext = TRUE; }else if( leitFlag == TRUE && status == EpgLEITAll ){ chkNext = TRUE; } } if( chkNext == TRUE ){ sys->tsOut.StopSaveEPG(TRUE); wait = 0; }else{ wait = 10*1000; } } } } if( chkNext == TRUE ){ //次のチャンネルへ chkCount++; if( sys->epgCapChList.size() <= chkCount ){ //全部チェック終わったので終了 sys->epgSt_err = ST_COMPLETE; return 0; } //BS 1チャンネルのみ? if( sys->epgCapChList[chkCount].ONID == 4 && BSBasic == TRUE && chkBS == TRUE){ while(chkCount<(DWORD)sys->epgCapChList.size()){ if( sys->epgCapChList[chkCount].ONID != 4 ){ break; } chkCount++; if( sys->epgCapChList.size() <= chkCount ){ //全部チェック終わったので終了 sys->epgSt_err = ST_COMPLETE; return 0; } } } //CS1 1チャンネルのみ? if( sys->epgCapChList[chkCount].ONID == 6 && CS1Basic == TRUE && chkCS1 == TRUE ){ while(chkCount<(DWORD)sys->epgCapChList.size()){ if( sys->epgCapChList[chkCount].ONID != 6 ){ break; } chkCount++; if( sys->epgCapChList.size() <= chkCount ){ //全部チェック終わったので終了 sys->epgSt_err = ST_COMPLETE; return 0; } } } //CS2 1チャンネルのみ? if( sys->epgCapChList[chkCount].ONID == 7 && CS2Basic == TRUE && chkCS2 == TRUE ){ while(chkCount<(DWORD)sys->epgCapChList.size()){ if( sys->epgCapChList[chkCount].ONID != 7 ){ break; } chkCount++; if( sys->epgCapChList.size() <= chkCount ){ //全部チェック終わったので終了 sys->epgSt_err = ST_COMPLETE; return 0; } } } } } } return 0; }