Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff -u -r -N a/src/BonDriver_PT/BonDriver_PT1/BonDriver_PT1.rc b/src/BonDriver_PT/BonDriver_PT1/BonDriver_PT1.rc
- --- a/src/BonDriver_PT/BonDriver_PT1/BonDriver_PT1.rc 2011-01-16 13:59:22.000000000 +0900
- +++ b/src/BonDriver_PT/BonDriver_PT1/BonDriver_PT1.rc 2014-11-13 19:24:36.000000000 +0900
- @@ -7,7 +7,7 @@
- //
- // Generated from the TEXTINCLUDE 2 resource.
- //
- -#include "afxres.h"
- +#include "winres.h"
- /////////////////////////////////////////////////////////////////////////////
- #undef APSTUDIO_READONLY_SYMBOLS
- @@ -34,7 +34,7 @@
- 2 TEXTINCLUDE
- BEGIN
- - "#include ""afxres.h""\r\n"
- + "#include ""winres.h""\r\n"
- "\0"
- END
- diff -u -r -N a/src/BonDriver_PT/BonDriver_PT1/BonTuner.cpp b/src/BonDriver_PT/BonDriver_PT1/BonTuner.cpp
- --- a/src/BonDriver_PT/BonDriver_PT1/BonTuner.cpp 2011-01-16 13:59:22.000000000 +0900
- +++ b/src/BonDriver_PT/BonDriver_PT1/BonTuner.cpp 2014-11-13 19:24:36.000000000 +0900
- @@ -6,182 +6,11 @@
- #include "inc/OS_Library.h"
- using namespace EARTH;
- -//#include "Resource.h"
- #include "BonTuner.h"
- -#define _ISDB_T
- -#ifdef _ISDB_T
- -#define TUNER_NAME L"PTx ISDB-T"
- -#define TUNER_NAME2 L"PT%d ISDB-T (%d)"
- -#define SPACE_1 L"地デジ(UHF)"
- -#define SPACE_2 L"地デジ(CATV)"
- -#define SPACE_3 L"地デジ(VHF)"
- -#else
- -#define TUNER_NAME L"PTx ISDB-S"
- -#define TUNER_NAME2 L"PT%d ISDB-S (%d)"
- -#define SPACE_1 L"BS"
- -#define SPACE_2 L"CS110"
- -#endif
- +#define USE_PT2
- +static BOOL isISDB_S;
- -/*
- -static const CH_DATA stUHF[]=
- -{
- - {L"13Ch", 0, 0, 63},
- - {L"14Ch", 0, 1, 64},
- - {L"15Ch", 0, 2, 65},
- - {L"16Ch", 0, 3, 66},
- - {L"17Ch", 0, 4, 67},
- - {L"18Ch", 0, 5, 68},
- - {L"19Ch", 0, 6, 69},
- - {L"20Ch", 0, 7, 70},
- - {L"21Ch", 0, 8, 71},
- - {L"22Ch", 0, 9, 72},
- - {L"23Ch", 0,10, 73},
- - {L"24Ch", 0,11, 74},
- - {L"25Ch", 0,12, 75},
- - {L"26Ch", 0,13, 76},
- - {L"27Ch", 0,14, 77},
- - {L"28Ch", 0,15, 78},
- - {L"29Ch", 0,16, 79},
- - {L"30Ch", 0,17, 80},
- - {L"31Ch", 0,18, 81},
- - {L"32Ch", 0,19, 82},
- - {L"33Ch", 0,20, 83},
- - {L"34Ch", 0,21, 84},
- - {L"35Ch", 0,22, 85},
- - {L"36Ch", 0,23, 86},
- - {L"37Ch", 0,24, 87},
- - {L"38Ch", 0,25, 88},
- - {L"39Ch", 0,26, 89},
- - {L"40Ch", 0,27, 90},
- - {L"41Ch", 0,28, 91},
- - {L"42Ch", 0,29, 92},
- - {L"43Ch", 0,30, 93},
- - {L"44Ch", 0,31, 94},
- - {L"45Ch", 0,32, 95},
- - {L"46Ch", 0,33, 96},
- - {L"47Ch", 0,34, 97},
- - {L"48Ch", 0,35, 98},
- - {L"49Ch", 0,36, 99},
- - {L"50Ch", 0,37,100},
- - {L"51Ch", 0,38,101},
- - {L"52Ch", 0,39,102},
- - {L"53Ch", 0,40,103},
- - {L"54Ch", 0,41,104},
- - {L"55Ch", 0,42,105},
- - {L"56Ch", 0,43,106},
- - {L"57Ch", 0,44,107},
- - {L"58Ch", 0,45,108},
- - {L"59Ch", 0,46,109},
- - {L"60Ch", 0,47,110},
- - {L"61Ch", 0,48,111},
- - {L"62Ch", 0,49,112}
- -};
- -
- -static const CH_DATA stCATV[]=
- -{
- - {L"C13Ch", 1, 0, 3},
- - {L"C14Ch", 1, 1, 4},
- - {L"C15Ch", 1, 2, 5},
- - {L"C16Ch", 1, 3, 6},
- - {L"C17Ch", 1, 4, 7},
- - {L"C18Ch", 1, 5, 8},
- - {L"C19Ch", 1, 6, 9},
- - {L"C20Ch", 1, 7, 10},
- - {L"C21Ch", 1, 8, 11},
- - {L"C22Ch", 1, 9, 12},
- - {L"C23Ch", 1,10, 22},
- - {L"C24Ch", 1,11, 23},
- - {L"C25Ch", 1,12, 24},
- - {L"C26Ch", 1,13, 25},
- - {L"C27Ch", 1,14, 26},
- - {L"C28Ch", 1,15, 27},
- - {L"C29Ch", 1,16, 28},
- - {L"C30Ch", 1,17, 29},
- - {L"C31Ch", 1,18, 30},
- - {L"C32Ch", 1,19, 31},
- - {L"C33Ch", 1,20, 32},
- - {L"C34Ch", 1,21, 33},
- - {L"C35Ch", 1,22, 34},
- - {L"C36Ch", 1,23, 35},
- - {L"C37Ch", 1,24, 36},
- - {L"C38Ch", 1,25, 37},
- - {L"C39Ch", 1,26, 38},
- - {L"C40Ch", 1,27, 39},
- - {L"C41Ch", 1,28, 40},
- - {L"C42Ch", 1,29, 41},
- - {L"C43Ch", 1,30, 42},
- - {L"C44Ch", 1,31, 43},
- - {L"C45Ch", 1,32, 44},
- - {L"C46Ch", 1,33, 45},
- - {L"C47Ch", 1,34, 46},
- - {L"C48Ch", 1,35, 47},
- - {L"C49Ch", 1,36, 48},
- - {L"C50Ch", 1,37, 49},
- - {L"C51Ch", 1,38, 50},
- - {L"C52Ch", 1,39, 51},
- - {L"C53Ch", 1,40, 52},
- - {L"C54Ch", 1,41, 53},
- - {L"C55Ch", 1,42, 54},
- - {L"C56Ch", 1,43, 55},
- - {L"C57Ch", 1,44, 56},
- - {L"C58Ch", 1,45, 57},
- - {L"C59Ch", 1,46, 58},
- - {L"C60Ch", 1,47, 59},
- - {L"C61Ch", 1,48, 60},
- - {L"C62Ch", 1,49, 61},
- - {L"C63Ch", 1,49, 62}
- -};
- -
- -static const CH_DATA stVHF[]=
- -{
- - {L"1Ch", 2, 0, 0},
- - {L"2Ch", 2, 1, 1},
- - {L"3Ch", 2, 2, 2},
- - {L"4Ch", 2, 3, 13},
- - {L"5Ch", 2, 4, 14},
- - {L"6Ch", 2, 5, 15},
- - {L"7Ch", 2, 6, 16},
- - {L"8Ch", 2, 7, 17},
- - {L"9Ch", 2, 8, 18},
- - {L"10Ch", 2, 9, 19},
- - {L"11Ch", 2,10, 20},
- - {L"12Ch", 2,11, 21},
- -};
- -
- -static const CH_DATA stBS[]=
- -{
- - {L"BS1/TS0 BS朝日", 0, 0, 0, 0x4010},
- - {L"BS1/TS1 BS-i", 0, 1, 0, 0x4011},
- - {L"BS3/TS0 WOWOW", 0, 2, 1, 0x4030},
- - {L"BS3/TS1 BSジャパン", 0, 3, 1, 0x4031},
- - {L"BS9/TS0 BS11", 0, 4, 4, 0x4090},
- - {L"BS9/TS1 Star Channel HV", 0, 5, 4, 0x4091},
- - {L"BS9/TS2 TwellV", 0, 6, 4, 0x4092},
- - {L"BS13/TS0 BS日テレ", 0, 7, 6, 0x40D0},
- - {L"BS13/TS1 BSフジ", 0, 8, 6, 0x40D1},
- - {L"BS15/TS1 NHK BS1/2", 0, 9, 7, 0x40F1},
- - {L"BS15/TS2 NHK BS-hi", 0,10, 7, 0x40F2},
- - {L"BS17/TS1 難視聴対策", 0,11, 8, 0x4310},
- - {L"BS17/TS2 難視聴対策", 0,12, 8, 0x4311},
- -};
- -
- -static const CH_DATA stCS[]=
- -{
- - {L"ND2", 1, 0, 12, 0x6020},
- - {L"ND4", 1, 1, 13, 0x7040},
- - {L"ND6", 1, 2, 14, 0x7060},
- - {L"ND8", 1, 3, 15, 0x6080},
- - {L"ND10", 1, 4, 16, 0x60A0},
- - {L"ND12", 1, 5, 17, 0x70C0},
- - {L"ND14", 1, 6, 18, 0x70E0},
- - {L"ND16", 1, 7, 19, 0x7100},
- - {L"ND18", 1, 8, 20, 0x7120},
- - {L"ND20", 1, 9, 21, 0x7140},
- - {L"ND22", 1,10, 22, 0x7160},
- - {L"ND24", 1,11, 23, 0x7180}
- -};
- -*/
- #define DATA_BUFF_SIZE 188*256
- #define MAX_BUFF_COUNT 500
- @@ -224,7 +53,7 @@
- _tmakepath_s( szPath, _MAX_PATH, szDrive, szDir, NULL, NULL );
- m_strPT1CtrlExe = szPath;
- - m_strPT1CtrlExe+= L"PTCtrl.exe";
- + m_strPT1CtrlExe += L"PTCtrl.exe";
- wstring strIni;
- strIni = szPath;
- @@ -236,30 +65,46 @@
- m_bUseBS = GetPrivateProfileInt(L"SET", L"UseBS", 1, strIni.c_str());
- m_bUseCS = GetPrivateProfileInt(L"SET", L"UseCS", 1, strIni.c_str());
- + isISDB_S = TRUE;
- +#ifdef USE_PT2
- + int iPTn = 2;
- +#else
- + int iPTn = 1;
- +#endif
- + WCHAR szName[256];
- m_iTunerID = -1;
- if( wcslen(szFname) == wcslen(L"BonDriver_PT-**") ){
- + const WCHAR *TUNER_NAME2;
- + if (szFname[13] == L'T'){
- + isISDB_S = FALSE;
- + TUNER_NAME2 = L"PT%d ISDB-T (%d)";
- + }else{
- + TUNER_NAME2 = L"PT%d ISDB-S (%d)";
- + }
- m_iTunerID = _wtoi(szFname+wcslen(L"BonDriver_PT-*"));
- - int iPTn = GetPTDeviceInfo(m_iTunerID/2);
- - if( iPTn != -1 ){
- - WCHAR szName[256] = L"";
- - wsprintf(szName, TUNER_NAME2, iPTn, m_iTunerID);
- - m_strTunerName = szName;
- + wsprintfW(szName, TUNER_NAME2, iPTn, m_iTunerID);
- + m_strTunerName = szName;
- + }else if( wcslen(szFname) == wcslen(L"BonDriver_PT-*") ){
- + const WCHAR *TUNER_NAME;
- + if (szFname[13] == L'T'){
- + isISDB_S = FALSE;
- + TUNER_NAME = L"PT%d ISDB-T";
- }else{
- - WCHAR szName[256] = L"";
- - wsprintf(szName, L"%s (%d)", TUNER_NAME, m_iTunerID);
- - m_strTunerName = szName;
- + TUNER_NAME = L"PT%d ISDB-S";
- }
- + wsprintfW(szName, TUNER_NAME, iPTn);
- + m_strTunerName = szName;
- }else{
- - m_strTunerName = TUNER_NAME;
- + wsprintfW(szName, L"PT%d ISDB-S", iPTn);
- + m_strTunerName = szName;
- }
- wstring strChSet;
- strChSet = szPath;
- -#ifdef _ISDB_T
- - strChSet += L"BonDriver_PT-T.ChSet.txt";
- -#else
- - strChSet += L"BonDriver_PT-S.ChSet.txt";
- -#endif
- + if (isISDB_S)
- + strChSet += L"BonDriver_PT-S.ChSet.txt";
- + else
- + strChSet += L"BonDriver_PT-T.ChSet.txt";
- m_chSet.ParseText(strChSet.c_str());
- }
- @@ -267,6 +112,11 @@
- CBonTuner::~CBonTuner()
- {
- CloseTuner();
- +
- + ::EnterCriticalSection(&m_CriticalSection);
- + SAFE_DELETE(m_LastBuff);
- + ::LeaveCriticalSection(&m_CriticalSection);
- +
- ::CloseHandle(m_hStopEvent);
- m_hStopEvent = NULL;
- @@ -275,57 +125,6 @@
- m_pThis = NULL;
- }
- -int CBonTuner::GetPTDeviceInfo(DWORD dwIndex)
- -{
- - OS::Library* cLibrary = NULL;
- - PT::Bus* cBus = NULL;
- -
- - cLibrary = new OS::Library();
- -
- - PT::Bus::NewBusFunction function = cLibrary->Function();
- - if (function == NULL) {
- - SAFE_DELETE(cLibrary);
- - cLibrary = NULL;
- - return -1;
- - }
- - status enStatus = function(&cBus);
- - if( enStatus != PT::STATUS_OK ){
- - SAFE_DELETE(cLibrary);
- - cLibrary = NULL;
- - return -1;
- - }
- -
- - //バージョンチェック
- - uint version;
- - cBus->GetVersion(&version);
- - if ((version >> 8) != 2) {
- - cBus->Delete();
- - SAFE_DELETE(cLibrary);
- - cLibrary = NULL;
- - cBus = NULL;
- - return -1;
- - }
- -
- - int iRet = -1;
- - PT::Bus::DeviceInfo deviceInfo[9];
- - uint deviceInfoCount = sizeof(deviceInfo)/sizeof(*deviceInfo);
- - cBus->Scan(deviceInfo, &deviceInfoCount, 3);
- - if( dwIndex < deviceInfoCount ){
- - iRet = deviceInfo[dwIndex].PTn;
- - }
- -
- - if( cBus != NULL ){
- - cBus->Delete();
- - cBus = NULL;
- - }
- - if( cLibrary != NULL ){
- - SAFE_DELETE(cLibrary);
- - cLibrary = NULL;
- - }
- -
- - return iRet;
- -}
- -
- const BOOL CBonTuner::OpenTuner(void)
- {
- //イベント
- @@ -341,19 +140,14 @@
- CloseHandle(pi.hProcess);
- DWORD dwRet;
- -#ifdef _ISDB_T
- - if( m_iTunerID >= 0 ){
- - dwRet = SendOpenTuner2(FALSE, m_iTunerID, &m_iID);
- - }else{
- - dwRet = SendOpenTuner(FALSE, &m_iID);
- - }
- -#else
- if( m_iTunerID >= 0 ){
- - dwRet = SendOpenTuner2(TRUE, m_iTunerID, &m_iID);
- + dwRet = SendOpenTuner2(isISDB_S, m_iTunerID, &m_iID);
- }else{
- - dwRet = SendOpenTuner(TRUE, &m_iID);
- + dwRet = SendOpenTuner(isISDB_S, &m_iID);
- }
- -#endif
- +
- + _RPT3(_CRT_WARN, "*** CBonTuner::OpenTuner() ***\nm_hOnStreamEvent[%p] bRet[%s] dwRet[%u]\n", m_hOnStreamEvent, bRet ? "TRUE" : "FALSE", dwRet);
- +
- if( dwRet != CMD_SUCCESS ){
- return FALSE;
- }
- @@ -388,17 +182,14 @@
- SendCloseTuner(m_iID);
- m_iID = -1;
- }
- - Sleep(100);
- //バッファ解放
- ::EnterCriticalSection(&m_CriticalSection);
- - if( m_LastBuff != NULL ){
- - SAFE_DELETE(m_LastBuff);
- + while (!m_TsBuff.empty()){
- + TS_DATA *p = m_TsBuff.front();
- + m_TsBuff.pop_front();
- + delete p;
- }
- - for( int i=0; i<(int)m_TsBuff.size(); i++ ){
- - SAFE_DELETE(m_TsBuff[i])
- - }
- - m_TsBuff.clear();
- ::LeaveCriticalSection(&m_CriticalSection);
- }
- @@ -470,26 +261,22 @@
- const BOOL CBonTuner::GetTsStream(BYTE **ppDst, DWORD *pdwSize, DWORD *pdwRemain)
- {
- + BOOL bRet;
- ::EnterCriticalSection(&m_CriticalSection);
- - if( m_LastBuff != NULL ){
- - SAFE_DELETE(m_LastBuff);
- - }
- - ::LeaveCriticalSection(&m_CriticalSection);
- - BOOL bRet = TRUE;
- if( m_TsBuff.size() != 0 ){
- - ::EnterCriticalSection(&m_CriticalSection);
- - m_LastBuff = m_TsBuff[0];
- - m_TsBuff.erase( m_TsBuff.begin() );
- - ::LeaveCriticalSection(&m_CriticalSection);
- -
- + delete m_LastBuff;
- + m_LastBuff = m_TsBuff.front();
- + m_TsBuff.pop_front();
- *pdwSize = m_LastBuff->dwSize;
- *ppDst = m_LastBuff->pbBuff;
- *pdwRemain = (DWORD)m_TsBuff.size();
- + bRet = TRUE;
- }else{
- *pdwSize = 0;
- *pdwRemain = 0;
- bRet = FALSE;
- }
- + ::LeaveCriticalSection(&m_CriticalSection);
- return bRet;
- }
- @@ -497,15 +284,12 @@
- {
- //バッファ解放
- ::EnterCriticalSection(&m_CriticalSection);
- - if( m_LastBuff != NULL ){
- - SAFE_DELETE(m_LastBuff);
- + while (!m_TsBuff.empty()){
- + TS_DATA *p = m_TsBuff.front();
- + m_TsBuff.pop_front();
- + delete p;
- }
- - for( int i=0; i<(int)m_TsBuff.size(); i++ ){
- - SAFE_DELETE(m_TsBuff[i])
- - }
- - m_TsBuff.clear();
- ::LeaveCriticalSection(&m_CriticalSection);
- -
- }
- LPCTSTR CBonTuner::GetTunerName(void)
- @@ -527,29 +311,6 @@
- }else{
- return itr->second.wszName.c_str();
- }
- -/*
- -#ifdef _ISDB_T
- - switch(dwSpace){
- - case 0:
- - return SPACE_1;
- - case 1:
- - return SPACE_2;
- - case 2:
- - return SPACE_3;
- - default:
- - return NULL;
- - }
- -#else
- - switch(dwSpace){
- - case 0:
- - return SPACE_1;
- - case 1:
- - return SPACE_2;
- - default:
- - return NULL;
- - }
- -#endif
- -*/
- }
- LPCTSTR CBonTuner::EnumChannelName(const DWORD dwSpace, const DWORD dwChannel)
- @@ -562,50 +323,10 @@
- }else{
- return itr->second.wszName.c_str();
- }
- -/*
- -#ifdef _ISDB_T
- - switch(dwSpace){
- - case 0:
- - if( sizeof(stUHF)/sizeof(CH_DATA) > dwChannel && m_bUseUHF == TRUE){
- - return stUHF[dwChannel].wszName;
- - }
- - break;
- - case 1:
- - if( sizeof(stCATV)/sizeof(CH_DATA) > dwChannel && m_bUseCATV == TRUE){
- - return stCATV[dwChannel].wszName;
- - }
- - break;
- - case 2:
- - if( sizeof(stVHF)/sizeof(CH_DATA) > dwChannel && m_bUseVHF == TRUE){
- - return stVHF[dwChannel].wszName;
- - }
- - break;
- - default:
- - return NULL;
- - }
- -#else
- - switch(dwSpace){
- - case 0:
- - if( sizeof(stBS)/sizeof(CH_DATA) > dwChannel && m_bUseBS == TRUE){
- - return stBS[dwChannel].wszName;
- - }
- - break;
- - case 1:
- - if( sizeof(stCS)/sizeof(CH_DATA) > dwChannel && m_bUseCS == TRUE){
- - return stCS[dwChannel].wszName;
- - }
- - break;
- - default:
- - return NULL;
- - }
- -#endif
- - return NULL;
- -*/
- }
- const BOOL CBonTuner::SetChannel(const DWORD dwSpace, const DWORD dwChannel)
- {
- -// if(!EnumChannelName(dwSpace, dwChannel))return FALSE;
- DWORD key = dwSpace<<16 | dwChannel;
- map<DWORD, CH_DATA>::iterator itr;
- itr = m_chSet.chMap.find(key);
- @@ -616,38 +337,9 @@
- DWORD dwRet=CMD_ERR;
- if( m_iID != -1 ){
- dwRet=SendSetCh(m_iID, itr->second.dwPT1Ch, itr->second.dwTSID);
- -/*
- -#ifdef _ISDB_T
- - switch(dwSpace){
- - case 0:
- - dwRet=SendSetCh(m_iID, stUHF[dwChannel].dwPT1Ch, 0);
- - break;
- - case 1:
- - dwRet=SendSetCh(m_iID, stCATV[dwChannel].dwPT1Ch, 0);
- - break;
- - case 2:
- - dwRet=SendSetCh(m_iID, stVHF[dwChannel].dwPT1Ch, 0);
- - break;
- - default:
- - return FALSE;
- - }
- -#else
- - switch(dwSpace){
- - case 0:
- - dwRet=SendSetCh(m_iID, stBS[dwChannel].dwPT1Ch, stBS[dwChannel].dwTSID);
- - break;
- - case 1:
- - dwRet=SendSetCh(m_iID, stCS[dwChannel].dwPT1Ch, stCS[dwChannel].dwTSID);
- - break;
- - default:
- - return FALSE;
- - }
- -#endif
- -*/
- }else{
- return FALSE;
- }
- - Sleep(100);
- PurgeTsStream();
- @@ -689,23 +381,21 @@
- //中止
- break;
- }
- - TS_DATA* pData = new TS_DATA;
- - pData->dwSize = DATA_BUFF_SIZE;
- - pData->pbBuff = new BYTE[pData->dwSize];
- -
- - if( SendSendData(pSys->m_iID, pData->pbBuff, &pData->dwSize, strEvent, strPipe) == CMD_SUCCESS ){
- + DWORD dwSize = DATA_BUFF_SIZE;
- + BYTE *pbBuff = new BYTE[DATA_BUFF_SIZE];
- + if( SendSendData(pSys->m_iID, pbBuff, &dwSize, strEvent, strPipe) == CMD_SUCCESS ){
- + TS_DATA *pData = new TS_DATA(pbBuff, dwSize);
- ::EnterCriticalSection(&pSys->m_CriticalSection);
- - if( pSys->m_TsBuff.size() > MAX_BUFF_COUNT ){
- - while( pSys->m_TsBuff.size() > MAX_BUFF_COUNT ){
- - SAFE_DELETE(pSys->m_TsBuff[0]);
- - pSys->m_TsBuff.erase( pSys->m_TsBuff.begin() );
- - }
- + while( pSys->m_TsBuff.size() > MAX_BUFF_COUNT ){
- + TS_DATA *p = pSys->m_TsBuff.front();
- + pSys->m_TsBuff.pop_front();
- + delete p;
- }
- pSys->m_TsBuff.push_back(pData);
- ::LeaveCriticalSection(&pSys->m_CriticalSection);
- SetEvent(pSys->m_hOnStreamEvent);
- }else{
- - SAFE_DELETE(pData);
- + delete[] pbBuff;
- Sleep(5);
- }
- }
- diff -u -r -N a/src/BonDriver_PT/BonDriver_PT1/BonTuner.h b/src/BonDriver_PT/BonDriver_PT1/BonTuner.h
- --- a/src/BonDriver_PT/BonDriver_PT1/BonTuner.h 2011-01-14 19:58:32.000000000 +0900
- +++ b/src/BonDriver_PT/BonDriver_PT1/BonTuner.h 2014-11-13 19:24:36.000000000 +0900
- @@ -61,15 +61,13 @@
- typedef struct _TS_DATA{
- BYTE* pbBuff;
- DWORD dwSize;
- - _TS_DATA(void){
- - pbBuff = NULL;
- - dwSize = 0;
- + _TS_DATA(BYTE* pb, DWORD dw) : pbBuff(pb), dwSize(dw){
- }
- ~_TS_DATA(void){
- - SAFE_DELETE_ARRAY(pbBuff);
- + delete[] pbBuff;
- }
- } TS_DATA;
- - vector<TS_DATA*> m_TsBuff;
- + deque<TS_DATA*> m_TsBuff;
- TS_DATA* m_LastBuff;
- HANDLE m_hStopEvent;
- @@ -87,7 +85,7 @@
- wstring m_strTunerName;
- - CParseChSet m_chSet;
- + CParseChSet m_chSet;
- protected:
- static UINT WINAPI RecvThread(LPVOID pParam);
- diff -u -r -N a/src/Common/Util.h b/src/Common/Util.h
- --- a/src/Common/Util.h 2011-01-16 13:55:36.000000000 +0900
- +++ b/src/Common/Util.h 2014-11-13 19:24:36.000000000 +0900
- @@ -17,6 +17,7 @@
- #include <string>
- #include <map>
- #include <vector>
- +#include <deque>
- #endif
- using namespace std;
- #include <TCHAR.h>
- diff -u -r -N a/src/PTCtrl/PT1Ctrl/DataIO.cpp b/src/PTCtrl/PT1Ctrl/DataIO.cpp
- --- a/src/PTCtrl/PT1Ctrl/DataIO.cpp 2009-01-02 19:09:06.000000000 +0900
- +++ b/src/PTCtrl/PT1Ctrl/DataIO.cpp 2014-11-13 19:24:36.000000000 +0900
- @@ -22,24 +22,26 @@
- m_S1SetBuff = NULL;
- for( int i=0; i<4; i++ ){
- +#ifndef USE_DEQUE
- BUFF_DATA* pDataBuff = new BUFF_DATA;
- pDataBuff->dwSize = DATA_BUFF_SIZE;
- pDataBuff->pbBuff = new BYTE[DATA_BUFF_SIZE];
- +#else
- + BUFF_DATA *pDataBuff = new BUFF_DATA(DATA_BUFF_SIZE);
- +#endif
- switch(i){
- - case 1:
- + case 0:
- m_T0SetBuff = pDataBuff;
- break;
- - case 2:
- + case 1:
- m_T1SetBuff = pDataBuff;
- break;
- - case 3:
- + case 2:
- m_S0SetBuff = pDataBuff;
- break;
- - case 4:
- + case 3:
- m_S1SetBuff = pDataBuff;
- break;
- - default:
- - break;
- }
- }
- @@ -77,6 +79,7 @@
- SAFE_DELETE(m_S0SetBuff);
- SAFE_DELETE(m_S1SetBuff);
- +#ifndef USE_DEQUE
- for( int i=0; i<(int)m_T0Buff.size(); i++ ){
- SAFE_DELETE(m_T0Buff[i]);
- }
- @@ -89,7 +92,28 @@
- for( int i=0; i<(int)m_S1Buff.size(); i++ ){
- SAFE_DELETE(m_S1Buff[i]);
- }
- -
- +#else
- + while (!m_T0Buff.empty()){
- + BUFF_DATA *p = m_T0Buff.front();
- + m_T0Buff.pop_front();
- + delete p;
- + }
- + while (!m_T1Buff.empty()){
- + BUFF_DATA *p = m_T1Buff.front();
- + m_T1Buff.pop_front();
- + delete p;
- + }
- + while (!m_S0Buff.empty()){
- + BUFF_DATA *p = m_S0Buff.front();
- + m_S0Buff.pop_front();
- + delete p;
- + }
- + while (!m_S1Buff.empty()){
- + BUFF_DATA *p = m_S1Buff.front();
- + m_S1Buff.pop_front();
- + delete p;
- + }
- +#endif
- if( m_hEvent1 != NULL ){
- UnLock1();
- CloseHandle(m_hEvent1);
- @@ -193,40 +217,76 @@
- if( iTuner == 0 ){
- Lock1();
- m_dwT0OverFlowCount = 0;
- +#ifndef USE_DEQUE
- SAFE_DELETE(m_T0SetBuff);
- for( int i=0; i<(int)m_T0Buff.size(); i++ ){
- SAFE_DELETE(m_T0Buff[i]);
- }
- m_T0Buff.clear();
- +#else
- + m_T0SetBuff->dwSetSize = 0;
- + while (!m_T0Buff.empty()){
- + BUFF_DATA *p = m_T0Buff.front();
- + m_T0Buff.pop_front();
- + delete p;
- + }
- +#endif
- UnLock1();
- }else{
- Lock2();
- m_dwT1OverFlowCount = 0;
- +#ifndef USE_DEQUE
- SAFE_DELETE(m_T1SetBuff);
- for( int i=0; i<(int)m_T1Buff.size(); i++ ){
- SAFE_DELETE(m_T1Buff[i]);
- }
- m_T1Buff.clear();
- +#else
- + m_T1SetBuff->dwSetSize = 0;
- + while (!m_T1Buff.empty()){
- + BUFF_DATA *p = m_T1Buff.front();
- + m_T1Buff.pop_front();
- + delete p;
- + }
- +#endif
- UnLock2();
- }
- }else{
- if( iTuner == 0 ){
- Lock3();
- m_dwS0OverFlowCount = 0;
- +#ifndef USE_DEQUE
- SAFE_DELETE(m_S0SetBuff);
- for( int i=0; i<(int)m_S0Buff.size(); i++ ){
- SAFE_DELETE(m_S0Buff[i]);
- }
- m_S0Buff.clear();
- +#else
- + m_S0SetBuff->dwSetSize = 0;
- + while (!m_S0Buff.empty()){
- + BUFF_DATA *p = m_S0Buff.front();
- + m_S0Buff.pop_front();
- + delete p;
- + }
- +#endif
- UnLock3();
- }else{
- Lock4();
- m_dwS1OverFlowCount = 0;
- +#ifndef USE_DEQUE
- SAFE_DELETE(m_S1SetBuff);
- for( int i=0; i<(int)m_S1Buff.size(); i++ ){
- SAFE_DELETE(m_S1Buff[i]);
- }
- m_S1Buff.clear();
- +#else
- + m_S1SetBuff->dwSetSize = 0;
- + while (!m_S1Buff.empty()){
- + BUFF_DATA *p = m_S1Buff.front();
- + m_S1Buff.pop_front();
- + delete p;
- + }
- +#endif
- UnLock4();
- }
- }
- @@ -397,6 +457,7 @@
- if( bEnable == TRUE ){
- if( enISDB == PT::Device::ISDB_T ){
- if( iTuner == 0 ){
- +#ifndef USE_DEQUE
- if( m_T0SetBuff == NULL ){
- Lock1();
- BUFF_DATA* pDataBuff = new BUFF_DATA;
- @@ -406,8 +467,10 @@
- m_dwT0OverFlowCount = 0;
- UnLock1();
- }
- +#endif
- m_cPipeT0.StartServer(strEvent.c_str(), strPipe.c_str(), OutsideCmdCallbackT0, this, THREAD_PRIORITY_ABOVE_NORMAL);
- }else{
- +#ifndef USE_DEQUE
- if( m_T1SetBuff == NULL ){
- Lock2();
- BUFF_DATA* pDataBuff = new BUFF_DATA;
- @@ -417,10 +480,12 @@
- m_dwT1OverFlowCount = 0;
- UnLock2();
- }
- +#endif
- m_cPipeT1.StartServer(strEvent.c_str(), strPipe.c_str(), OutsideCmdCallbackT1, this, THREAD_PRIORITY_ABOVE_NORMAL);
- }
- }else{
- if( iTuner == 0 ){
- +#ifndef USE_DEQUE
- if( m_S0SetBuff == NULL ){
- Lock3();
- BUFF_DATA* pDataBuff = new BUFF_DATA;
- @@ -430,8 +495,10 @@
- m_dwS0OverFlowCount = 0;
- UnLock3();
- }
- +#endif
- m_cPipeS0.StartServer(strEvent.c_str(), strPipe.c_str(), OutsideCmdCallbackS0, this, THREAD_PRIORITY_ABOVE_NORMAL);
- }else{
- +#ifndef USE_DEQUE
- if( m_S1SetBuff == NULL ){
- Lock4();
- BUFF_DATA* pDataBuff = new BUFF_DATA;
- @@ -441,6 +508,7 @@
- m_dwS1OverFlowCount = 0;
- UnLock4();
- }
- +#endif
- m_cPipeS1.StartServer(strEvent.c_str(), strPipe.c_str(), OutsideCmdCallbackS1, this, THREAD_PRIORITY_ABOVE_NORMAL);
- }
- }
- @@ -450,21 +518,39 @@
- m_cPipeT0.StopServer();
- Lock1();
- m_dwT0OverFlowCount = 0;
- +#ifndef USE_DEQUE
- SAFE_DELETE(m_T0SetBuff);
- for( int i=0; i<(int)m_T0Buff.size(); i++ ){
- SAFE_DELETE(m_T0Buff[i]);
- }
- m_T0Buff.clear();
- +#else
- + m_T0SetBuff->dwSetSize = 0;
- + while (!m_T0Buff.empty()){
- + BUFF_DATA *p = m_T0Buff.front();
- + m_T0Buff.pop_front();
- + delete p;
- + }
- +#endif
- UnLock1();
- }else{
- m_cPipeT1.StopServer();
- Lock2();
- m_dwT1OverFlowCount = 0;
- +#ifndef USE_DEQUE
- SAFE_DELETE(m_T1SetBuff);
- for( int i=0; i<(int)m_T1Buff.size(); i++ ){
- SAFE_DELETE(m_T1Buff[i]);
- }
- m_T1Buff.clear();
- +#else
- + m_T1SetBuff->dwSetSize = 0;
- + while (!m_T1Buff.empty()){
- + BUFF_DATA *p = m_T1Buff.front();
- + m_T1Buff.pop_front();
- + delete p;
- + }
- +#endif
- UnLock2();
- }
- }else{
- @@ -472,21 +558,39 @@
- m_cPipeS0.StopServer();
- Lock3();
- m_dwS0OverFlowCount = 0;
- +#ifndef USE_DEQUE
- SAFE_DELETE(m_S0SetBuff);
- for( int i=0; i<(int)m_S0Buff.size(); i++ ){
- SAFE_DELETE(m_S0Buff[i]);
- }
- m_S0Buff.clear();
- +#else
- + m_S0SetBuff->dwSetSize = 0;
- + while (!m_S0Buff.empty()){
- + BUFF_DATA *p = m_S0Buff.front();
- + m_S0Buff.pop_front();
- + delete p;
- + }
- +#endif
- UnLock3();
- }else{
- m_cPipeS1.StopServer();
- Lock4();
- m_dwS1OverFlowCount = 0;
- +#ifndef USE_DEQUE
- SAFE_DELETE(m_S1SetBuff);
- for( int i=0; i<(int)m_S1Buff.size(); i++ ){
- SAFE_DELETE(m_S1Buff[i]);
- }
- m_S1Buff.clear();
- +#else
- + m_S1SetBuff->dwSetSize = 0;
- + while (!m_S1Buff.empty()){
- + BUFF_DATA *p = m_S1Buff.front();
- + m_S1Buff.pop_front();
- + delete p;
- + }
- +#endif
- UnLock4();
- }
- }
- @@ -663,25 +767,37 @@
- bCreate1TS = m_cT0Micro.MicroPacket(pbPacket);
- if( bCreate1TS == TRUE && m_T0SetBuff != NULL){
- Lock1();
- +#ifndef USE_DEQUE
- if( m_T0SetBuff == NULL ){
- UnLock1();
- return ;
- }
- +#endif
- memcpy(m_T0SetBuff->pbBuff+m_T0SetBuff->dwSetSize, m_cT0Micro.Get1TS(), 188);
- m_T0SetBuff->dwSetSize+=188;
- if( m_T0SetBuff->dwSetSize >= m_T0SetBuff->dwSize ){
- m_T0Buff.push_back(m_T0SetBuff);
- +#ifndef USE_DEQUE
- BUFF_DATA* pDataBuff = new BUFF_DATA;
- pDataBuff->dwSize = DATA_BUFF_SIZE;
- pDataBuff->pbBuff = new BYTE[DATA_BUFF_SIZE];
- m_T0SetBuff = pDataBuff;
- +#else
- + m_T0SetBuff = new BUFF_DATA(DATA_BUFF_SIZE);
- +#endif
- if( m_T0Buff.size() > MAX_DATA_BUFF_COUNT ){
- +#ifndef USE_DEQUE
- SAFE_DELETE(m_T0Buff[0]);
- m_T0Buff.erase(m_T0Buff.begin());
- +#else
- + BUFF_DATA *p = m_T0Buff.front();
- + m_T0Buff.pop_front();
- + delete p;
- +#endif
- m_dwT0OverFlowCount++;
- - OutputDebugString(L"Buff Full");
- + OutputDebugString(L"T0 Buff Full");
- }else{
- m_dwT0OverFlowCount = 0;
- }
- @@ -693,25 +809,37 @@
- bCreate1TS = m_cT1Micro.MicroPacket(pbPacket);
- if( bCreate1TS == TRUE && m_T1SetBuff != NULL){
- Lock2();
- +#ifndef USE_DEQUE
- if( m_T1SetBuff == NULL ){
- UnLock2();
- return ;
- }
- +#endif
- memcpy(m_T1SetBuff->pbBuff+m_T1SetBuff->dwSetSize, m_cT1Micro.Get1TS(), 188);
- m_T1SetBuff->dwSetSize+=188;
- if( m_T1SetBuff->dwSetSize >= m_T1SetBuff->dwSize ){
- m_T1Buff.push_back(m_T1SetBuff);
- +#ifndef USE_DEQUE
- BUFF_DATA* pDataBuff = new BUFF_DATA;
- pDataBuff->dwSize = DATA_BUFF_SIZE;
- pDataBuff->pbBuff = new BYTE[DATA_BUFF_SIZE];
- m_T1SetBuff = pDataBuff;
- +#else
- + m_T1SetBuff = new BUFF_DATA(DATA_BUFF_SIZE);
- +#endif
- if( m_T1Buff.size() > MAX_DATA_BUFF_COUNT ){
- +#ifndef USE_DEQUE
- SAFE_DELETE(m_T1Buff[0]);
- m_T1Buff.erase(m_T1Buff.begin());
- +#else
- + BUFF_DATA *p = m_T1Buff.front();
- + m_T1Buff.pop_front();
- + delete p;
- +#endif
- m_dwT1OverFlowCount++;
- - OutputDebugString(L"Buff Full");
- + OutputDebugString(L"T1 Buff Full");
- }else{
- m_dwT1OverFlowCount = 0;
- }
- @@ -723,25 +851,37 @@
- bCreate1TS = m_cS0Micro.MicroPacket(pbPacket);
- if( bCreate1TS == TRUE && m_S0SetBuff != NULL){
- Lock3();
- +#ifndef USE_DEQUE
- if( m_S0SetBuff == NULL ){
- UnLock3();
- return ;
- }
- +#endif
- memcpy(m_S0SetBuff->pbBuff+m_S0SetBuff->dwSetSize, m_cS0Micro.Get1TS(), 188);
- m_S0SetBuff->dwSetSize+=188;
- if( m_S0SetBuff->dwSetSize >= m_S0SetBuff->dwSize ){
- m_S0Buff.push_back(m_S0SetBuff);
- +#ifndef USE_DEQUE
- BUFF_DATA* pDataBuff = new BUFF_DATA;
- pDataBuff->dwSize = DATA_BUFF_SIZE;
- pDataBuff->pbBuff = new BYTE[DATA_BUFF_SIZE];
- m_S0SetBuff = pDataBuff;
- +#else
- + m_S0SetBuff = new BUFF_DATA(DATA_BUFF_SIZE);
- +#endif
- if( m_S0Buff.size() > MAX_DATA_BUFF_COUNT ){
- +#ifndef USE_DEQUE
- SAFE_DELETE(m_S0Buff[0]);
- m_S0Buff.erase(m_S0Buff.begin());
- +#else
- + BUFF_DATA *p = m_S0Buff.front();
- + m_S0Buff.pop_front();
- + delete p;
- +#endif
- m_dwS0OverFlowCount++;
- - OutputDebugString(L"Buff Full");
- + OutputDebugString(L"S0 Buff Full");
- }else{
- m_dwS0OverFlowCount = 0;
- }
- @@ -753,25 +893,37 @@
- bCreate1TS = m_cS1Micro.MicroPacket(pbPacket);
- if( bCreate1TS == TRUE && m_S1SetBuff != NULL){
- Lock4();
- +#ifndef USE_DEQUE
- if( m_S1SetBuff == NULL ){
- UnLock4();
- return ;
- }
- +#endif
- memcpy(m_S1SetBuff->pbBuff+m_S1SetBuff->dwSetSize, m_cS1Micro.Get1TS(), 188);
- m_S1SetBuff->dwSetSize+=188;
- if( m_S1SetBuff->dwSetSize >= m_S1SetBuff->dwSize ){
- m_S1Buff.push_back(m_S1SetBuff);
- +#ifndef USE_DEQUE
- BUFF_DATA* pDataBuff = new BUFF_DATA;
- pDataBuff->dwSize = DATA_BUFF_SIZE;
- pDataBuff->pbBuff = new BYTE[DATA_BUFF_SIZE];
- m_S1SetBuff = pDataBuff;
- +#else
- + m_S1SetBuff = new BUFF_DATA(DATA_BUFF_SIZE);
- +#endif
- if( m_S1Buff.size() > MAX_DATA_BUFF_COUNT ){
- +#ifndef USE_DEQUE
- SAFE_DELETE(m_S1Buff[0]);
- m_S1Buff.erase(m_S1Buff.begin());
- +#else
- + BUFF_DATA *p = m_S1Buff.front();
- + m_S1Buff.pop_front();
- + delete p;
- +#endif
- m_dwS1OverFlowCount++;
- - OutputDebugString(L"Buff Full");
- + OutputDebugString(L"S1 Buff Full");
- }else{
- m_dwS1OverFlowCount = 0;
- }
- @@ -850,48 +1002,84 @@
- case 0:
- Lock1();
- if( m_T0Buff.size() > 0 ){
- +#ifndef USE_DEQUE
- pResParam->dwSize = m_T0Buff[0]->dwSize;
- pResParam->bData = new BYTE[pResParam->dwSize];
- memcpy(pResParam->bData, m_T0Buff[0]->pbBuff, pResParam->dwSize);
- - bSend = TRUE;
- SAFE_DELETE(m_T0Buff[0]);
- m_T0Buff.erase(m_T0Buff.begin());
- +#else
- + BUFF_DATA *p = m_T0Buff.front();
- + m_T0Buff.pop_front();
- + pResParam->dwSize = p->dwSize;
- + pResParam->bData = p->pbBuff;
- + p->pbBuff = NULL; // ポインタをコピーしてるのでdelete pで削除されないようにする
- + delete p;
- +#endif
- + bSend = TRUE;
- }
- UnLock1();
- break;
- case 1:
- Lock2();
- if( m_T1Buff.size() > 0 ){
- +#ifndef USE_DEQUE
- pResParam->dwSize = m_T1Buff[0]->dwSize;
- pResParam->bData = new BYTE[pResParam->dwSize];
- memcpy(pResParam->bData, m_T1Buff[0]->pbBuff, pResParam->dwSize);
- - bSend = TRUE;
- SAFE_DELETE(m_T1Buff[0]);
- m_T1Buff.erase(m_T1Buff.begin());
- +#else
- + BUFF_DATA *p = m_T1Buff.front();
- + m_T1Buff.pop_front();
- + pResParam->dwSize = p->dwSize;
- + pResParam->bData = p->pbBuff;
- + p->pbBuff = NULL; // ポインタをコピーしてるのでdelete pで削除されないようにする
- + delete p;
- +#endif
- + bSend = TRUE;
- }
- UnLock2();
- break;
- case 2:
- Lock3();
- if( m_S0Buff.size() > 0 ){
- +#ifndef USE_DEQUE
- pResParam->dwSize = m_S0Buff[0]->dwSize;
- pResParam->bData = new BYTE[pResParam->dwSize];
- memcpy(pResParam->bData, m_S0Buff[0]->pbBuff, pResParam->dwSize);
- - bSend = TRUE;
- SAFE_DELETE(m_S0Buff[0]);
- m_S0Buff.erase(m_S0Buff.begin());
- +#else
- + BUFF_DATA *p = m_S0Buff.front();
- + m_S0Buff.pop_front();
- + pResParam->dwSize = p->dwSize;
- + pResParam->bData = p->pbBuff;
- + p->pbBuff = NULL; // ポインタをコピーしてるのでdelete pで削除されないようにする
- + delete p;
- +#endif
- + bSend = TRUE;
- }
- UnLock3();
- break;
- case 3:
- Lock4();
- if( m_S1Buff.size() > 0 ){
- +#ifndef USE_DEQUE
- pResParam->dwSize = m_S1Buff[0]->dwSize;
- pResParam->bData = new BYTE[pResParam->dwSize];
- memcpy(pResParam->bData, m_S1Buff[0]->pbBuff, pResParam->dwSize);
- - bSend = TRUE;
- SAFE_DELETE(m_S1Buff[0]);
- m_S1Buff.erase(m_S1Buff.begin());
- +#else
- + BUFF_DATA *p = m_S1Buff.front();
- + m_S1Buff.pop_front();
- + pResParam->dwSize = p->dwSize;
- + pResParam->bData = p->pbBuff;
- + p->pbBuff = NULL; // ポインタをコピーしてるのでdelete pで削除されないようにする
- + delete p;
- +#endif
- + bSend = TRUE;
- }
- UnLock4();
- break;
- diff -u -r -N a/src/PTCtrl/PT1Ctrl/DataIO.h b/src/PTCtrl/PT1Ctrl/DataIO.h
- --- a/src/PTCtrl/PT1Ctrl/DataIO.h 2008-11-06 00:02:26.000000000 +0900
- +++ b/src/PTCtrl/PT1Ctrl/DataIO.h 2014-11-13 19:24:36.000000000 +0900
- @@ -1,5 +1,7 @@
- #pragma once
- +#define USE_DEQUE
- +
- #include "inc/EARTH_PT.h"
- #include "inc/Prefix.h"
- #include "../../Common/PT1OutsideCtrlCmdDef.h"
- @@ -47,6 +49,7 @@
- CPipeServer m_cPipeS0;
- CPipeServer m_cPipeS1;
- +#ifndef USE_DEQUE
- typedef struct _BUFF_DATA{
- BYTE* pbBuff;
- DWORD dwSize;
- @@ -65,6 +68,25 @@
- vector<BUFF_DATA*> m_T1Buff;
- vector<BUFF_DATA*> m_S0Buff;
- vector<BUFF_DATA*> m_S1Buff;
- +#else
- + typedef struct _BUFF_DATA{
- + BYTE* pbBuff;
- + DWORD dwSize;
- + DWORD dwSetSize;
- + _BUFF_DATA(DWORD dw) : dwSize(dw){
- + pbBuff = new BYTE[dw];
- + dwSetSize = 0;
- + }
- + ~_BUFF_DATA(void){
- + delete[] pbBuff;
- + }
- + }BUFF_DATA;
- +
- + deque<BUFF_DATA*> m_T0Buff;
- + deque<BUFF_DATA*> m_T1Buff;
- + deque<BUFF_DATA*> m_S0Buff;
- + deque<BUFF_DATA*> m_S1Buff;
- +#endif
- BUFF_DATA* m_T0SetBuff;
- BUFF_DATA* m_T1SetBuff;
- diff -u -r -N a/src/PTCtrl/PT1Ctrl/PT1Manager.cpp b/src/PTCtrl/PT1Ctrl/PT1Manager.cpp
- --- a/src/PTCtrl/PT1Ctrl/PT1Manager.cpp 2009-11-23 19:45:38.000000000 +0900
- +++ b/src/PTCtrl/PT1Ctrl/PT1Manager.cpp 2014-11-13 19:24:36.000000000 +0900
- @@ -41,13 +41,11 @@
- PT::Bus::NewBusFunction function = m_cLibrary->Function();
- if (function == NULL) {
- SAFE_DELETE(m_cLibrary);
- - m_cLibrary = NULL;
- return FALSE;
- }
- status enStatus = function(&m_cBus);
- if( enStatus != PT::STATUS_OK ){
- SAFE_DELETE(m_cLibrary);
- - m_cLibrary = NULL;
- return FALSE;
- }
- @@ -56,9 +54,8 @@
- m_cBus->GetVersion(&version);
- if ((version >> 8) != 2) {
- m_cBus->Delete();
- - SAFE_DELETE(m_cLibrary);
- - m_cLibrary = NULL;
- m_cBus = NULL;
- + SAFE_DELETE(m_cLibrary);
- return FALSE;
- }
- }
- @@ -83,7 +80,6 @@
- }
- if( m_cLibrary != NULL ){
- SAFE_DELETE(m_cLibrary);
- - m_cLibrary = NULL;
- }
- }
- @@ -177,20 +173,33 @@
- if( enStatus != PT::STATUS_OK ){
- return -1;
- }
- - enStatus = m_EnumDev[iDevID]->pcDevice->Open();
- - if( enStatus != PT::STATUS_OK ){
- + for( int i = 0; i < 5; i++ ){
- + enStatus = m_EnumDev[iDevID]->pcDevice->Open();
- + if( enStatus == PT::STATUS_OK ){
- + break;
- + }
- + m_EnumDev[iDevID]->pcDevice->Close();
- + Sleep(10);
- + }
- + if (enStatus != PT::STATUS_OK){
- + m_EnumDev[iDevID]->pcDevice->Delete();
- + m_EnumDev[iDevID]->pcDevice = NULL;
- return -1;
- }
- enStatus = m_EnumDev[iDevID]->pcDevice->SetTunerPowerReset(PT::Device::TUNER_POWER_ON_RESET_ENABLE);
- if( enStatus != PT::STATUS_OK ){
- m_EnumDev[iDevID]->pcDevice->Close();
- + m_EnumDev[iDevID]->pcDevice->Delete();
- + m_EnumDev[iDevID]->pcDevice = NULL;
- return -1;
- }
- Sleep(21);
- enStatus = m_EnumDev[iDevID]->pcDevice->SetTunerPowerReset(PT::Device::TUNER_POWER_ON_RESET_DISABLE);
- if( enStatus != PT::STATUS_OK ){
- m_EnumDev[iDevID]->pcDevice->Close();
- + m_EnumDev[iDevID]->pcDevice->Delete();
- + m_EnumDev[iDevID]->pcDevice = NULL;
- return -1;
- }
- Sleep(2);
- @@ -198,6 +207,8 @@
- enStatus = m_EnumDev[iDevID]->pcDevice->InitTuner(i);
- if( enStatus != PT::STATUS_OK ){
- m_EnumDev[iDevID]->pcDevice->Close();
- + m_EnumDev[iDevID]->pcDevice->Delete();
- + m_EnumDev[iDevID]->pcDevice = NULL;
- return -1;
- }
- }
- @@ -206,6 +217,8 @@
- enStatus = m_EnumDev[iDevID]->pcDevice->SetTunerSleep(i, static_cast<PT::Device::ISDB>(j), true);
- if( enStatus != PT::STATUS_OK ){
- m_EnumDev[iDevID]->pcDevice->Close();
- + m_EnumDev[iDevID]->pcDevice->Delete();
- + m_EnumDev[iDevID]->pcDevice = NULL;
- return -1;
- }
- }
- @@ -386,7 +399,7 @@
- }
- }
- if( m_EnumDev[i]->bUseS1 == TRUE ){
- - iID = (i<<16) | (PT::Device::ISDB_S<<8) | 0;
- + iID = (i<<16) | (PT::Device::ISDB_S<<8) | 1;
- if(m_EnumDev[i]->cDataIO.GetOverFlowCount(iID) > 100){
- OutputDebugString(L"S1 OverFlow Close");
- CloseTuner(iID);
- @@ -407,8 +420,12 @@
- int iDevID = -1;
- PT::Device::ISDB enISDB;
- uint iTuner = -1;
- + char log[256];
- +
- //指定チューナーが空いてるか確認
- if( (int)m_EnumDev.size() <= iTunerID/2 ){
- + wsprintfA(log, "tuner not found: m_EnumDev.size()[%d] iTunerID[%d]\n", (int)m_EnumDev.size(), iTunerID);
- + OutputDebugStringA(log);
- return -1;
- }
- iDevID = iTunerID/2;
- @@ -443,7 +460,9 @@
- }
- }
- }
- + _RPT3(_CRT_WARN, "*** CPT1Manager::OpenTuner2() : iDevID[%d] bSate[%d] iTunerID[%d] ***\n", iDevID, bSate, iTunerID);
- if( iTuner == -1 ){
- + OutputDebugStringA("unused tuner not found\n");
- return -1;
- }
- status enStatus;
- @@ -451,22 +470,44 @@
- //デバイス初オープン
- enStatus = m_cBus->NewDevice(&m_EnumDev[iDevID]->stDevInfo, &m_EnumDev[iDevID]->pcDevice, NULL);
- if( enStatus != PT::STATUS_OK ){
- + wsprintfA(log, "m_cBus->NewDevice() error : enStatus[0x%x]\n", enStatus);
- + OutputDebugStringA(log);
- return -1;
- }
- - enStatus = m_EnumDev[iDevID]->pcDevice->Open();
- + for( int i = 0; i < 5; i++ ){
- + enStatus = m_EnumDev[iDevID]->pcDevice->Open();
- + if( enStatus == PT::STATUS_OK ){
- + break;
- + }
- + wsprintfA(log, "%d: pcDevice->Open() error : enStatus[0x%x]\n", i, enStatus);
- + OutputDebugStringA(log);
- + // PT::STATUS_DEVICE_IS_ALREADY_OPEN_ERRORの場合は考慮しない
- + m_EnumDev[iDevID]->pcDevice->Close();
- + Sleep(10); // 保険
- + }
- if( enStatus != PT::STATUS_OK ){
- + m_EnumDev[iDevID]->pcDevice->Delete();
- + m_EnumDev[iDevID]->pcDevice = NULL;
- return -1;
- }
- enStatus = m_EnumDev[iDevID]->pcDevice->SetTunerPowerReset(PT::Device::TUNER_POWER_ON_RESET_ENABLE);
- if( enStatus != PT::STATUS_OK ){
- m_EnumDev[iDevID]->pcDevice->Close();
- + m_EnumDev[iDevID]->pcDevice->Delete();
- + m_EnumDev[iDevID]->pcDevice = NULL;
- + wsprintfA(log, "pcDevice->SetTunerPowerReset(ENABLE) error : enStatus[0x%x]\n", enStatus);
- + OutputDebugStringA(log);
- return -1;
- }
- Sleep(20);
- enStatus = m_EnumDev[iDevID]->pcDevice->SetTunerPowerReset(PT::Device::TUNER_POWER_ON_RESET_DISABLE);
- if( enStatus != PT::STATUS_OK ){
- m_EnumDev[iDevID]->pcDevice->Close();
- + m_EnumDev[iDevID]->pcDevice->Delete();
- + m_EnumDev[iDevID]->pcDevice = NULL;
- + wsprintfA(log, "pcDevice->SetTunerPowerReset(DISABLE) error : enStatus[0x%x]\n", enStatus);
- + OutputDebugStringA(log);
- return -1;
- }
- Sleep(1);
- @@ -474,6 +515,10 @@
- enStatus = m_EnumDev[iDevID]->pcDevice->InitTuner(i);
- if( enStatus != PT::STATUS_OK ){
- m_EnumDev[iDevID]->pcDevice->Close();
- + m_EnumDev[iDevID]->pcDevice->Delete();
- + m_EnumDev[iDevID]->pcDevice = NULL;
- + wsprintfA(log, "pcDevice->InitTuner(%d) error : enStatus[0x%x]\n", i, enStatus);
- + OutputDebugStringA(log);
- return -1;
- }
- }
- @@ -482,6 +527,10 @@
- enStatus = m_EnumDev[iDevID]->pcDevice->SetTunerSleep(i, static_cast<PT::Device::ISDB>(j), true);
- if( enStatus != PT::STATUS_OK ){
- m_EnumDev[iDevID]->pcDevice->Close();
- + m_EnumDev[iDevID]->pcDevice->Delete();
- + m_EnumDev[iDevID]->pcDevice = NULL;
- + wsprintfA(log, "pcDevice->SetTunerSleep(%d, %d, true) error : enStatus[0x%x]\n", i, j, enStatus);
- + OutputDebugStringA(log);
- return -1;
- }
- }
- @@ -494,6 +543,8 @@
- //スリープから復帰
- enStatus = m_EnumDev[iDevID]->pcDevice->SetTunerSleep(iTuner, enISDB, false);
- if( enStatus != PT::STATUS_OK ){
- + wsprintfA(log, "pcDevice->SetTunerSleep(%d, %d, false) error : enStatus[0x%x]\n", iTuner, enISDB, enStatus);
- + OutputDebugStringA(log);
- return -1;
- }
- @@ -503,6 +554,8 @@
- enStatus = m_EnumDev[iDevID]->pcDevice->SetStreamEnable(iTuner, enISDB, true);
- if( enStatus != PT::STATUS_OK ){
- + wsprintfA(log, "pcDevice->SetStreamEnable(%d, %d, true) error : enStatus[0x%x]\n", iTuner, enISDB, enStatus);
- + OutputDebugStringA(log);
- return -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement