├── PT3Mgr ├── inc │ ├── EX_Buffer.cpp │ ├── OS_Memory.cpp │ ├── EX_Utility.cpp │ ├── OS_Library.cpp │ ├── Prefix.h │ ├── EARTH_PT3.h │ ├── EX_Buffer.h │ ├── EX_Utility.h │ ├── Prefix_Integer.h │ ├── OS_Memory.h │ └── OS_Library.h ├── stdafx.h ├── DataIO3.cpp ├── stdafx.cpp ├── targetver.h ├── PT3Manager.cpp ├── PT3Manager.h ├── DataIO3.h ├── PT3Mgr.vcxproj.filters └── PT3Mgr.vcxproj ├── PT1Mgr ├── inc │ ├── OS_Library.cpp │ ├── EARTH_PT.h │ ├── Prefix_Integer.h │ ├── Prefix.h │ └── OS_Library.h ├── stdafx.h ├── DataIO.cpp ├── stdafx.cpp ├── targetver.h ├── MicroPacketUtil.cpp ├── PT1Manager.cpp ├── MicroPacketUtil.h ├── PT1Manager.h ├── DataIO.h ├── PT1Mgr.vcxproj.filters └── PT1Mgr.vcxproj ├── Common ├── Util.h ├── IBonPTx.h ├── BaseIO.cpp ├── HRTimer.cpp ├── IBonDriver.h ├── PTCtrlMain.h ├── PoolBuffer.h ├── SharedMem.h ├── IBonDriver2.h ├── IBonDriver3.h ├── PTCtrlMain.cpp ├── PTxManager.cxx ├── PipeServer.cpp ├── SharedMem.cpp ├── StringUtil.cpp ├── IBonTransponder.h ├── PTOutsideCtrlCmdDef.h ├── PTSendCtrlCmdUtil.cpp ├── ServiceUtil.h ├── PTCreateCtrlCmdUtil.h ├── PipeServer.h ├── HRTimer.h ├── StringUtil.h ├── PTManager.h ├── PTSendCtrlCmdUtil.h ├── PTxCtrlCmd.h ├── PTCreateCtrlCmdUtil.cpp ├── BaseIO.h ├── PTxCtrlCmd.cpp ├── Util.cpp └── ServiceUtil.cpp ├── PT3Ctrl ├── stdafx.h ├── PT3Ctrl.cpp ├── PT3Ctrl.ico ├── PT3Ctrl.rc ├── resource.h ├── small.ico ├── stdafx.cpp ├── targetver.h ├── PT3Ctrl.h └── PT3Ctrl.vcxproj.filters ├── PTCtrl ├── small.ico ├── stdafx.h ├── PT1Ctrl.cpp ├── PT1Ctrl.ico ├── PT1Ctrl.rc ├── stdafx.cpp ├── targetver.h ├── PT1Ctrl.h ├── resource.h └── PT1Ctrl.vcxproj.filters ├── PTwCtrl ├── stdafx.h ├── DataIO.cpp ├── PTwCtrl.cpp ├── PTwCtrl.ico ├── PTwCtrl.rc ├── small.ico ├── stdafx.cpp ├── targetver.h ├── PTwManager.cpp ├── PTxWDMCmdSrv.cpp ├── inc │ ├── readme.txt │ └── Prefix.h ├── lib │ └── readme.txt ├── MicroPacketUtil.cpp ├── PTwCtrl.h ├── MicroPacketUtil.h ├── resource.h ├── DataIO.h ├── PTxWDMCmdSrv.h ├── readme.md ├── PTxWDMCmd.h ├── PtDrvWrap.h └── PTwCtrl.vcxproj.filters ├── PTxCtrl ├── stdafx.h ├── PTxCtrl.cpp ├── PTxCtrl.ico ├── PTxCtrl.rc ├── small.ico ├── stdafx.cpp ├── targetver.h ├── PTxCtrl.h ├── resource.h └── PTxCtrl.vcxproj.filters ├── PTxScanS ├── resource.h ├── stdafx.cpp ├── stdafx.h ├── PTxScanS.cpp ├── PTxScanS.rc ├── targetver.h ├── PTxScanS.vcxproj.filters └── PTxScanS.vcxproj ├── BonDriver_PTx-ST.ini ├── BonDriver_PTx ├── BonTuner.h ├── resource.h ├── stdafx.cpp ├── stdafx.h ├── BonTuner.cpp ├── ParseChSet.h ├── dllmain.cpp ├── targetver.h ├── ParseChSet.cpp ├── BonDriver_PTx.cpp ├── BonDriver_PTx.rc └── BonDriver_PTx.vcxproj.filters ├── RiserProblem ├── Images │ ├── 0.png │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ ├── 9.png │ ├── A.png │ ├── B.png │ ├── C.png │ ├── 4-1.png │ ├── 5-1.png │ ├── 6-1.png │ ├── 9-1.png │ ├── AdminPC.png │ ├── DevMngr.png │ └── ResetBat.png └── README.md ├── Extra ├── BonDriver_PTx-ST.ch.txt ├── BonDriver_PTx-S.ChSet.txt ├── BonDriver_PTx-T.ChSet.txt ├── BonDriver_PTx-ST.ch - MHz.txt ├── BonDriver_PTx-ST.ch - TSID.txt ├── BonDriver_PTx-S.ChSet - TSID.txt └── BonDriver_PTx-ST.ch - BSAlmighty.txt ├── .gitignore ├── HowToBuilding.MD ├── BonDriver_PTx.sln ├── BonDriver_PTx+PTw.sln ├── Readme_MOD.md └── Readme.MD /PT3Mgr/inc/EX_Buffer.cpp: -------------------------------------------------------------------------------- 1 | #include "EX_Buffer.h" 2 | -------------------------------------------------------------------------------- /PT3Mgr/inc/OS_Memory.cpp: -------------------------------------------------------------------------------- 1 | #include "OS_Memory.h" 2 | -------------------------------------------------------------------------------- /PT1Mgr/inc/OS_Library.cpp: -------------------------------------------------------------------------------- 1 | #include "OS_Library.h" 2 | -------------------------------------------------------------------------------- /PT3Mgr/inc/EX_Utility.cpp: -------------------------------------------------------------------------------- 1 | #include "EX_Utility.h" 2 | -------------------------------------------------------------------------------- /PT3Mgr/inc/OS_Library.cpp: -------------------------------------------------------------------------------- 1 | #include "OS_Library.h" 2 | -------------------------------------------------------------------------------- /Common/Util.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Common/Util.h -------------------------------------------------------------------------------- /Common/IBonPTx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Common/IBonPTx.h -------------------------------------------------------------------------------- /PT1Mgr/stdafx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT1Mgr/stdafx.h -------------------------------------------------------------------------------- /PT3Ctrl/stdafx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT3Ctrl/stdafx.h -------------------------------------------------------------------------------- /PT3Mgr/stdafx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT3Mgr/stdafx.h -------------------------------------------------------------------------------- /PTCtrl/small.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTCtrl/small.ico -------------------------------------------------------------------------------- /PTCtrl/stdafx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTCtrl/stdafx.h -------------------------------------------------------------------------------- /PTwCtrl/stdafx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTwCtrl/stdafx.h -------------------------------------------------------------------------------- /PTxCtrl/stdafx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTxCtrl/stdafx.h -------------------------------------------------------------------------------- /Common/BaseIO.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Common/BaseIO.cpp -------------------------------------------------------------------------------- /Common/HRTimer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Common/HRTimer.cpp -------------------------------------------------------------------------------- /Common/IBonDriver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Common/IBonDriver.h -------------------------------------------------------------------------------- /Common/PTCtrlMain.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Common/PTCtrlMain.h -------------------------------------------------------------------------------- /Common/PoolBuffer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Common/PoolBuffer.h -------------------------------------------------------------------------------- /Common/SharedMem.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Common/SharedMem.h -------------------------------------------------------------------------------- /PT1Mgr/DataIO.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT1Mgr/DataIO.cpp -------------------------------------------------------------------------------- /PT1Mgr/stdafx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT1Mgr/stdafx.cpp -------------------------------------------------------------------------------- /PT1Mgr/targetver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT1Mgr/targetver.h -------------------------------------------------------------------------------- /PT3Ctrl/PT3Ctrl.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT3Ctrl/PT3Ctrl.cpp -------------------------------------------------------------------------------- /PT3Ctrl/PT3Ctrl.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT3Ctrl/PT3Ctrl.ico -------------------------------------------------------------------------------- /PT3Ctrl/PT3Ctrl.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT3Ctrl/PT3Ctrl.rc -------------------------------------------------------------------------------- /PT3Ctrl/resource.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT3Ctrl/resource.h -------------------------------------------------------------------------------- /PT3Ctrl/small.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT3Ctrl/small.ico -------------------------------------------------------------------------------- /PT3Ctrl/stdafx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT3Ctrl/stdafx.cpp -------------------------------------------------------------------------------- /PT3Ctrl/targetver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT3Ctrl/targetver.h -------------------------------------------------------------------------------- /PT3Mgr/DataIO3.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT3Mgr/DataIO3.cpp -------------------------------------------------------------------------------- /PT3Mgr/inc/Prefix.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT3Mgr/inc/Prefix.h -------------------------------------------------------------------------------- /PT3Mgr/stdafx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT3Mgr/stdafx.cpp -------------------------------------------------------------------------------- /PT3Mgr/targetver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT3Mgr/targetver.h -------------------------------------------------------------------------------- /PTCtrl/PT1Ctrl.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTCtrl/PT1Ctrl.cpp -------------------------------------------------------------------------------- /PTCtrl/PT1Ctrl.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTCtrl/PT1Ctrl.ico -------------------------------------------------------------------------------- /PTCtrl/PT1Ctrl.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTCtrl/PT1Ctrl.rc -------------------------------------------------------------------------------- /PTCtrl/stdafx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTCtrl/stdafx.cpp -------------------------------------------------------------------------------- /PTCtrl/targetver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTCtrl/targetver.h -------------------------------------------------------------------------------- /PTwCtrl/DataIO.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTwCtrl/DataIO.cpp -------------------------------------------------------------------------------- /PTwCtrl/PTwCtrl.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTwCtrl/PTwCtrl.cpp -------------------------------------------------------------------------------- /PTwCtrl/PTwCtrl.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTwCtrl/PTwCtrl.ico -------------------------------------------------------------------------------- /PTwCtrl/PTwCtrl.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTwCtrl/PTwCtrl.rc -------------------------------------------------------------------------------- /PTwCtrl/small.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTwCtrl/small.ico -------------------------------------------------------------------------------- /PTwCtrl/stdafx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTwCtrl/stdafx.cpp -------------------------------------------------------------------------------- /PTwCtrl/targetver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTwCtrl/targetver.h -------------------------------------------------------------------------------- /PTxCtrl/PTxCtrl.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTxCtrl/PTxCtrl.cpp -------------------------------------------------------------------------------- /PTxCtrl/PTxCtrl.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTxCtrl/PTxCtrl.ico -------------------------------------------------------------------------------- /PTxCtrl/PTxCtrl.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTxCtrl/PTxCtrl.rc -------------------------------------------------------------------------------- /PTxCtrl/small.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTxCtrl/small.ico -------------------------------------------------------------------------------- /PTxCtrl/stdafx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTxCtrl/stdafx.cpp -------------------------------------------------------------------------------- /PTxCtrl/targetver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTxCtrl/targetver.h -------------------------------------------------------------------------------- /PTxScanS/resource.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTxScanS/resource.h -------------------------------------------------------------------------------- /PTxScanS/stdafx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTxScanS/stdafx.cpp -------------------------------------------------------------------------------- /PTxScanS/stdafx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTxScanS/stdafx.h -------------------------------------------------------------------------------- /BonDriver_PTx-ST.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/BonDriver_PTx-ST.ini -------------------------------------------------------------------------------- /Common/IBonDriver2.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Common/IBonDriver2.h -------------------------------------------------------------------------------- /Common/IBonDriver3.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Common/IBonDriver3.h -------------------------------------------------------------------------------- /Common/PTCtrlMain.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Common/PTCtrlMain.cpp -------------------------------------------------------------------------------- /Common/PTxManager.cxx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Common/PTxManager.cxx -------------------------------------------------------------------------------- /Common/PipeServer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Common/PipeServer.cpp -------------------------------------------------------------------------------- /Common/SharedMem.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Common/SharedMem.cpp -------------------------------------------------------------------------------- /Common/StringUtil.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Common/StringUtil.cpp -------------------------------------------------------------------------------- /PT1Mgr/inc/EARTH_PT.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT1Mgr/inc/EARTH_PT.h -------------------------------------------------------------------------------- /PTxScanS/PTxScanS.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTxScanS/PTxScanS.cpp -------------------------------------------------------------------------------- /PTxScanS/PTxScanS.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTxScanS/PTxScanS.rc -------------------------------------------------------------------------------- /PTxScanS/targetver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTxScanS/targetver.h -------------------------------------------------------------------------------- /BonDriver_PTx/BonTuner.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/BonDriver_PTx/BonTuner.h -------------------------------------------------------------------------------- /BonDriver_PTx/resource.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/BonDriver_PTx/resource.h -------------------------------------------------------------------------------- /BonDriver_PTx/stdafx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/BonDriver_PTx/stdafx.cpp -------------------------------------------------------------------------------- /BonDriver_PTx/stdafx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/BonDriver_PTx/stdafx.h -------------------------------------------------------------------------------- /Common/IBonTransponder.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Common/IBonTransponder.h -------------------------------------------------------------------------------- /PT3Mgr/inc/EARTH_PT3.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT3Mgr/inc/EARTH_PT3.h -------------------------------------------------------------------------------- /PT3Mgr/inc/EX_Buffer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT3Mgr/inc/EX_Buffer.h -------------------------------------------------------------------------------- /PT3Mgr/inc/EX_Utility.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT3Mgr/inc/EX_Utility.h -------------------------------------------------------------------------------- /PTwCtrl/PTwManager.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTwCtrl/PTwManager.cpp -------------------------------------------------------------------------------- /PTwCtrl/PTxWDMCmdSrv.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTwCtrl/PTxWDMCmdSrv.cpp -------------------------------------------------------------------------------- /PTwCtrl/inc/readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTwCtrl/inc/readme.txt -------------------------------------------------------------------------------- /PTwCtrl/lib/readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTwCtrl/lib/readme.txt -------------------------------------------------------------------------------- /BonDriver_PTx/BonTuner.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/BonDriver_PTx/BonTuner.cpp -------------------------------------------------------------------------------- /BonDriver_PTx/ParseChSet.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/BonDriver_PTx/ParseChSet.h -------------------------------------------------------------------------------- /BonDriver_PTx/dllmain.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/BonDriver_PTx/dllmain.cpp -------------------------------------------------------------------------------- /BonDriver_PTx/targetver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/BonDriver_PTx/targetver.h -------------------------------------------------------------------------------- /PT1Mgr/MicroPacketUtil.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PT1Mgr/MicroPacketUtil.cpp -------------------------------------------------------------------------------- /RiserProblem/Images/0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/0.png -------------------------------------------------------------------------------- /RiserProblem/Images/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/1.png -------------------------------------------------------------------------------- /RiserProblem/Images/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/2.png -------------------------------------------------------------------------------- /RiserProblem/Images/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/3.png -------------------------------------------------------------------------------- /RiserProblem/Images/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/4.png -------------------------------------------------------------------------------- /RiserProblem/Images/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/5.png -------------------------------------------------------------------------------- /RiserProblem/Images/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/6.png -------------------------------------------------------------------------------- /RiserProblem/Images/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/7.png -------------------------------------------------------------------------------- /RiserProblem/Images/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/8.png -------------------------------------------------------------------------------- /RiserProblem/Images/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/9.png -------------------------------------------------------------------------------- /RiserProblem/Images/A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/A.png -------------------------------------------------------------------------------- /RiserProblem/Images/B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/B.png -------------------------------------------------------------------------------- /RiserProblem/Images/C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/C.png -------------------------------------------------------------------------------- /BonDriver_PTx/ParseChSet.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/BonDriver_PTx/ParseChSet.cpp -------------------------------------------------------------------------------- /Common/PTOutsideCtrlCmdDef.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Common/PTOutsideCtrlCmdDef.h -------------------------------------------------------------------------------- /Common/PTSendCtrlCmdUtil.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Common/PTSendCtrlCmdUtil.cpp -------------------------------------------------------------------------------- /Extra/BonDriver_PTx-ST.ch.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Extra/BonDriver_PTx-ST.ch.txt -------------------------------------------------------------------------------- /PTwCtrl/MicroPacketUtil.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/PTwCtrl/MicroPacketUtil.cpp -------------------------------------------------------------------------------- /RiserProblem/Images/4-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/4-1.png -------------------------------------------------------------------------------- /RiserProblem/Images/5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/5-1.png -------------------------------------------------------------------------------- /RiserProblem/Images/6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/6-1.png -------------------------------------------------------------------------------- /RiserProblem/Images/9-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/9-1.png -------------------------------------------------------------------------------- /BonDriver_PTx/BonDriver_PTx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/BonDriver_PTx/BonDriver_PTx.cpp -------------------------------------------------------------------------------- /BonDriver_PTx/BonDriver_PTx.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/BonDriver_PTx/BonDriver_PTx.rc -------------------------------------------------------------------------------- /Extra/BonDriver_PTx-S.ChSet.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Extra/BonDriver_PTx-S.ChSet.txt -------------------------------------------------------------------------------- /Extra/BonDriver_PTx-T.ChSet.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Extra/BonDriver_PTx-T.ChSet.txt -------------------------------------------------------------------------------- /RiserProblem/Images/AdminPC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/AdminPC.png -------------------------------------------------------------------------------- /RiserProblem/Images/DevMngr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/DevMngr.png -------------------------------------------------------------------------------- /RiserProblem/Images/ResetBat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/RiserProblem/Images/ResetBat.png -------------------------------------------------------------------------------- /Extra/BonDriver_PTx-ST.ch - MHz.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Extra/BonDriver_PTx-ST.ch - MHz.txt -------------------------------------------------------------------------------- /Extra/BonDriver_PTx-ST.ch - TSID.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Extra/BonDriver_PTx-ST.ch - TSID.txt -------------------------------------------------------------------------------- /Extra/BonDriver_PTx-S.ChSet - TSID.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Extra/BonDriver_PTx-S.ChSet - TSID.txt -------------------------------------------------------------------------------- /Extra/BonDriver_PTx-ST.ch - BSAlmighty.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hyrolean/BonDriver_PTx-ST_mod/HEAD/Extra/BonDriver_PTx-ST.ch - BSAlmighty.txt -------------------------------------------------------------------------------- /PT1Mgr/PT1Manager.cpp: -------------------------------------------------------------------------------- 1 | #include "StdAfx.h" 2 | 3 | #include "PT1Manager.h" 4 | 5 | #include "../Common/PTxManager.cxx" 6 | 7 | extern "C" IPTManager* CreatePT1Manager(void) 8 | { 9 | return new CPT1Manager; 10 | } -------------------------------------------------------------------------------- /PT3Mgr/PT3Manager.cpp: -------------------------------------------------------------------------------- 1 | #include "StdAfx.h" 2 | 3 | #include "PT3Manager.h" 4 | 5 | #include "../Common/PTxManager.cxx" 6 | 7 | extern "C" IPTManager* CreatePT3Manager(void) 8 | { 9 | return new CPT3Manager; 10 | } 11 | -------------------------------------------------------------------------------- /PTCtrl/PT1Ctrl.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "resource.h" 4 | 5 | void WINAPI service_main(DWORD dwArgc, LPTSTR *lpszArgv); 6 | DWORD WINAPI service_ctrl(DWORD dwControl, DWORD dwEventType, LPVOID lpEventData, LPVOID lpContext); 7 | BOOL SendStatusScm(int iState, int iExitcode, int iProgress); 8 | 9 | void StartMain(BOOL bService); 10 | void StopMain(); -------------------------------------------------------------------------------- /PTwCtrl/PTwCtrl.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "resource.h" 4 | 5 | void WINAPI service_main(DWORD dwArgc, LPTSTR *lpszArgv); 6 | DWORD WINAPI service_ctrl(DWORD dwControl, DWORD dwEventType, LPVOID lpEventData, LPVOID lpContext); 7 | BOOL SendStatusScm(int iState, int iExitcode, int iProgress); 8 | 9 | void StartMain(BOOL bService); 10 | void StopMain(); -------------------------------------------------------------------------------- /PT3Ctrl/PT3Ctrl.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "resource.h" 4 | 5 | 6 | void WINAPI service_main(DWORD dwArgc, LPTSTR *lpszArgv); 7 | DWORD WINAPI service_ctrl(DWORD dwControl, DWORD dwEventType, LPVOID lpEventData, LPVOID lpContext); 8 | BOOL SendStatusScm(int iState, int iExitcode, int iProgress); 9 | 10 | void StartMain(BOOL bService); 11 | void StopMain(); 12 | -------------------------------------------------------------------------------- /PT3Mgr/inc/Prefix_Integer.h: -------------------------------------------------------------------------------- 1 | #ifndef _Prefix_Integer_H 2 | #define _Prefix_Integer_H 3 | 4 | namespace EARTH3 { 5 | typedef signed char sint8; 6 | typedef unsigned char uint8; 7 | 8 | typedef signed short sint16; 9 | typedef unsigned short uint16; 10 | 11 | typedef signed long sint32; 12 | typedef unsigned long uint32; 13 | 14 | typedef signed long long sint64; 15 | typedef unsigned long long uint64; 16 | 17 | typedef signed long status; 18 | } 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /Common/ServiceUtil.h: -------------------------------------------------------------------------------- 1 | #ifndef __SERVICE_UTIL_H__ 2 | #define __SERVICE_UTIL_H__ 3 | 4 | #include 5 | #include 6 | 7 | void InstallService(LPCWSTR lpcwszFilePath, LPCWSTR lpcwszName, LPCWSTR lpcwszViewName); 8 | void RemoveService(LPCWSTR lpcwszName); 9 | BOOL IsInstallService(LPCWSTR lpcwszName); 10 | BOOL IsStopService(LPCWSTR lpcwszName); 11 | BOOL StartServiceCtrl(LPCWSTR lpcwszName); 12 | BOOL StopServiceCtrl(LPCWSTR lpcwszName); 13 | DWORD GetServiceStatus(LPCWSTR lpcwszName); 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /PT1Mgr/MicroPacketUtil.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "inc/EARTH_PT.h" 4 | #include "inc/Prefix.h" 5 | #include "../Common/Util.h" 6 | 7 | using namespace EARTH; 8 | 9 | class CMicroPacketUtil 10 | { 11 | public: 12 | CMicroPacketUtil(void); 13 | ~CMicroPacketUtil(void); 14 | 15 | void Reset() 16 | { 17 | mCount = 0; 18 | mPacketOffset = 0; 19 | }; 20 | 21 | BOOL MicroPacket(BYTE* pbPacket); 22 | BYTE* Get1TS(){ return m_b1TS; }; 23 | 24 | protected: 25 | BYTE m_b1TS[188]; 26 | 27 | uint mCount; 28 | uint mPacketOffset; 29 | }; 30 | -------------------------------------------------------------------------------- /PTwCtrl/MicroPacketUtil.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "inc/Prefix.h" 4 | #include "inc/EarthPtIf.h" 5 | #include "../Common/Util.h" 6 | 7 | using namespace EARTH; 8 | 9 | class CMicroPacketUtil 10 | { 11 | public: 12 | CMicroPacketUtil(void); 13 | ~CMicroPacketUtil(void); 14 | 15 | void Reset() 16 | { 17 | mCount = 0; 18 | mPacketOffset = 0; 19 | }; 20 | 21 | BOOL MicroPacket(BYTE* pbPacket); 22 | BYTE* Get1TS(){ return m_b1TS; }; 23 | 24 | protected: 25 | BYTE m_b1TS[188]; 26 | 27 | uint mCount; 28 | uint mPacketOffset; 29 | }; 30 | -------------------------------------------------------------------------------- /PT1Mgr/inc/Prefix_Integer.h: -------------------------------------------------------------------------------- 1 | // ======================================================================================== 2 | // Prefix_Integer.h 3 | // ======================================================================================== 4 | 5 | #ifndef _Prefix_Integer_H 6 | #define _Prefix_Integer_H 7 | 8 | namespace EARTH { 9 | typedef signed char sbyte; 10 | typedef unsigned char byte; 11 | 12 | typedef unsigned short ushort; 13 | 14 | typedef unsigned long uint; 15 | 16 | typedef signed long long slong; 17 | typedef unsigned long long ulong; 18 | 19 | typedef signed long status; 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /PTwCtrl/inc/Prefix.h: -------------------------------------------------------------------------------- 1 | // ======================================================================================== 2 | // Prefix.h 3 | // ======================================================================================== 4 | 5 | #ifndef _Prefix_H 6 | #define _Prefix_H 7 | 8 | #pragma warning(disable : 4127) 9 | #pragma warning(disable : 4512) 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | #define delete_(p) { delete p; p = NULL; } 19 | 20 | #define BIT_SHIFT_MASK(value, shift, mask) (((value) >> (shift)) & ((1<<(mask))-1)) 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /PT1Mgr/inc/Prefix.h: -------------------------------------------------------------------------------- 1 | // ======================================================================================== 2 | // Prefix.h 3 | // ======================================================================================== 4 | 5 | #ifndef _Prefix_H 6 | #define _Prefix_H 7 | 8 | #pragma warning(disable : 4127) 9 | #pragma warning(disable : 4512) 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | #include "Prefix_Integer.h" 19 | 20 | #define delete_(p) { delete p; p = NULL; } 21 | 22 | #define BIT_SHIFT_MASK(value, shift, mask) (((value) >> (shift)) & ((1<<(mask))-1)) 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | *.d 3 | 4 | # Compiled Object files 5 | *.slo 6 | *.lo 7 | *.o 8 | *.obj 9 | 10 | # Precompiled Headers 11 | *.gch 12 | *.pch 13 | 14 | # Compiled Dynamic libraries 15 | *.so 16 | *.dylib 17 | *.dll 18 | 19 | # Fortran module files 20 | *.mod 21 | *.smod 22 | 23 | # Compiled Static libraries 24 | *.lai 25 | *.la 26 | *.a 27 | *.lib 28 | 29 | # Executables 30 | *.exe 31 | *.out 32 | *.app 33 | 34 | # Dummy files 35 | *.~* 36 | *.ec? 37 | *.BAT 38 | Thumbs.db 39 | 40 | # VC++ files 41 | .vs/ 42 | ipch/ 43 | Debug/ 44 | LibOut/ 45 | Release/ 46 | Intermediate/ 47 | *.user 48 | *.sdf 49 | *.VC.db 50 | *.aps 51 | 52 | # pt2wdm files 53 | PTwCtrl/inc/*.h 54 | PTwCtrl/lib/*.lib 55 | !PTwCtrl/inc/Prefix.h 56 | -------------------------------------------------------------------------------- /PT3Mgr/inc/OS_Memory.h: -------------------------------------------------------------------------------- 1 | #ifndef _OS_Memory_H 2 | #define _OS_Memory_H 3 | 4 | #include "Prefix.h" 5 | #include 6 | 7 | namespace EARTH3 { 8 | namespace OS { 9 | class Memory { 10 | public: 11 | enum { 12 | PAGE_SIZE = (4)*1024 13 | }; 14 | 15 | Memory(size_t size) 16 | { 17 | _ASSERT((size % PAGE_SIZE) == 0); 18 | mPtr = ::VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_READWRITE); 19 | } 20 | 21 | ~Memory() 22 | { 23 | if (mPtr) { 24 | BOOL b = ::VirtualFree(mPtr, 0, MEM_RELEASE); 25 | if (b) { 26 | mPtr = NULL; 27 | } 28 | _ASSERT(b); 29 | } 30 | } 31 | 32 | void *Ptr() const 33 | { 34 | return mPtr; 35 | } 36 | 37 | protected: 38 | void *mPtr; 39 | }; 40 | } 41 | } 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /PTCtrl/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by PT1Ctrl.rc 4 | // 5 | #define IDD_PT1CTRL_DIALOG 102 6 | #define IDI_PT1CTRL 107 7 | #define IDI_SMALL 108 8 | #define IDR_MAINFRAME 128 9 | #define IDC_STATIC -1 10 | 11 | // Next default values for new objects 12 | // 13 | #ifdef APSTUDIO_INVOKED 14 | #ifndef APSTUDIO_READONLY_SYMBOLS 15 | #define _APS_NO_MFC 1 16 | #define _APS_NEXT_RESOURCE_VALUE 129 17 | #define _APS_NEXT_COMMAND_VALUE 32771 18 | #define _APS_NEXT_CONTROL_VALUE 1000 19 | #define _APS_NEXT_SYMED_VALUE 110 20 | #endif 21 | #endif 22 | -------------------------------------------------------------------------------- /PTwCtrl/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by PTwCtrl.rc 4 | // 5 | #define IDD_PT1CTRL_DIALOG 102 6 | #define IDI_PT1CTRL 107 7 | #define IDI_SMALL 108 8 | #define IDR_MAINFRAME 128 9 | #define IDC_STATIC -1 10 | 11 | // Next default values for new objects 12 | // 13 | #ifdef APSTUDIO_INVOKED 14 | #ifndef APSTUDIO_READONLY_SYMBOLS 15 | #define _APS_NO_MFC 1 16 | #define _APS_NEXT_RESOURCE_VALUE 129 17 | #define _APS_NEXT_COMMAND_VALUE 32771 18 | #define _APS_NEXT_CONTROL_VALUE 1000 19 | #define _APS_NEXT_SYMED_VALUE 110 20 | #endif 21 | #endif 22 | -------------------------------------------------------------------------------- /Common/PTCreateCtrlCmdUtil.h: -------------------------------------------------------------------------------- 1 | #ifndef __PT1_CREATE_CTRL_CMD_UTIL_H__ 2 | #define __PT1_CREATE_CTRL_CMD_UTIL_H__ 3 | 4 | #include "PTOutsideCtrlCmdDef.h" 5 | 6 | BOOL CreateDefStream(DWORD dwValue, CMD_STREAM* pCmd); 7 | BOOL CopyDefData(DWORD* pdwValue, BYTE* pBuff); 8 | 9 | BOOL CreateDefStream2(DWORD dwValue, DWORD dwValue2, CMD_STREAM* pCmd); 10 | BOOL CopyDefData2(DWORD* pdwValue, DWORD* pdwValue2, BYTE* pBuff); 11 | 12 | BOOL CreateDefStream3(DWORD dwValue, DWORD dwValue2, DWORD dwValue3, CMD_STREAM* pCmd); 13 | BOOL CopyDefData3(DWORD* pdwValue, DWORD* pdwValue2, DWORD* pdwValue3, BYTE* pBuff); 14 | 15 | BOOL CreateDefStreamN(const DWORD *pcdwValueN, DWORD dwNum, CMD_STREAM* pCmd); 16 | BOOL CopyDefDataN(DWORD* pdwValueN, DWORD dwNum, BYTE* pBuff); 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /Common/PipeServer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "StringUtil.h" 4 | #include "PTOutsideCtrlCmdDef.h" 5 | 6 | typedef int (CALLBACK *CMD_CALLBACK_PROC)(void* pParam, CMD_STREAM* pCmdParam, CMD_STREAM* pResParam, BOOL* pbResDataAbandon); 7 | 8 | class CPipeServer 9 | { 10 | public: 11 | CPipeServer(LPCWSTR lpwszGlobalLockMutex=L""); 12 | ~CPipeServer(void); 13 | 14 | BOOL StartServer(LPCWSTR lpwszEventName, LPCWSTR lpwszPipeName, CMD_CALLBACK_PROC pfnCmdProc, void* pParam, int iThreadPriority = THREAD_PRIORITY_NORMAL); 15 | void StopServer(); 16 | 17 | protected: 18 | CMD_CALLBACK_PROC m_pCmdProc; 19 | void* m_pParam; 20 | wstring m_strGlobalLockMutex; 21 | wstring m_strEventName; 22 | wstring m_strPipeName; 23 | 24 | int m_iThreadPriority; 25 | 26 | HANDLE m_hThread; 27 | HANDLE m_hPipe; 28 | HANDLE m_hEventConnect; 29 | OVERLAPPED m_stOver; 30 | HANDLE m_hEventArray[2]; 31 | #define m_hStopEvent_PS m_hEventArray[0] 32 | #define m_hCmdRcvEvent_PS m_hEventArray[1] 33 | 34 | protected: 35 | static UINT WINAPI ServerThread(LPVOID pParam); 36 | 37 | }; 38 | -------------------------------------------------------------------------------- /PTxCtrl/PTxCtrl.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "resource.h" 4 | #include "../Common/PTxCtrlCmd.h" 5 | 6 | void WINAPI service_main(DWORD dwArgc, LPTSTR *lpszArgv); 7 | DWORD WINAPI service_ctrl(DWORD dwControl, DWORD dwEventType, LPVOID lpEventData, LPVOID lpContext); 8 | BOOL SendStatusScm(int iState, int iExitcode, int iProgress); 9 | 10 | void StartMain(BOOL bService); 11 | void StopMain(); 12 | 13 | 14 | // CPTxCtrlCmdServiceOperator 15 | 16 | class CPTxCtrlCmdServiceOperator : public CPTxCtrlCmdOperator 17 | { 18 | IPTManager *Pt1Manager, *Pt3Manager ; 19 | CPipeServer *PtPipeServer1, *PtPipeServer3 ; 20 | DWORD Pt1Tuners, Pt3Tuners; 21 | BOOL PtService; 22 | DWORD PtSupported; 23 | DWORD PtActivated; 24 | DWORD LastActivated; 25 | static BOOL PtTerminated; 26 | public: 27 | CPTxCtrlCmdServiceOperator(std::wstring name, BOOL bService); 28 | virtual ~CPTxCtrlCmdServiceOperator(); 29 | protected: 30 | // for Server Operations (override) 31 | BOOL ResIdle(); 32 | BOOL ResSupported(DWORD &PtBits); 33 | BOOL ResActivatePt(DWORD PtVer); 34 | BOOL ResGetTunerCount(DWORD PtVer, DWORD &TunerCount); 35 | public: 36 | void Main(); 37 | static void Stop(); 38 | }; 39 | 40 | -------------------------------------------------------------------------------- /Common/HRTimer.h: -------------------------------------------------------------------------------- 1 | //=========================================================================== 2 | #pragma once 3 | 4 | #ifndef _HRTIMER_187BE8C9_0DB1_4F50_B02E_B271FCB3B274_H_INCLUDED_ 5 | #define _HRTIMER_187BE8C9_0DB1_4F50_B02E_B271FCB3B274_H_INCLUDED_ 6 | //--------------------------------------------------------------------------- 7 | 8 | //=========================================================================== 9 | namespace PRY8EAlByw { 10 | //--------------------------------------------------------------------------- 11 | 12 | #define PRY8EAlByw_HRTIMER 13 | 14 | // High Resolution Timer functions 15 | 16 | void SetHRTimerMode(BOOL useHighResolution) ; 17 | void HRSleep(DWORD msec, DWORD usec=0) ; 18 | DWORD HRWaitForSingleObject(HANDLE hObj, DWORD msec, DWORD usec=0); 19 | DWORD HRWaitForMultipleObjects(DWORD numObjs, const HANDLE *hObjs, BOOL waitAll, 20 | DWORD msec, DWORD usec=0); 21 | 22 | //--------------------------------------------------------------------------- 23 | } // End of namespace PRY8EAlByw 24 | //=========================================================================== 25 | using namespace PRY8EAlByw ; 26 | //=========================================================================== 27 | #endif // _HRTIMER_187BE8C9_0DB1_4F50_B02E_B271FCB3B274_H_INCLUDED_ 28 | -------------------------------------------------------------------------------- /Common/StringUtil.h: -------------------------------------------------------------------------------- 1 | #ifndef __STRING_UTIL_H__ 2 | #define __STRING_UTIL_H__ 3 | 4 | #include "Util.h" 5 | 6 | void Format(string& strBuff, const char *format, ...); 7 | 8 | void Format(wstring& strBuff, const WCHAR *format, ...); 9 | 10 | void Replace(string& strBuff, const string strOld, const string strNew); 11 | 12 | void Replace(wstring& strBuff, const wstring strOld, const wstring strNew); 13 | 14 | void WtoA(wstring strIn, string& strOut); 15 | 16 | void WtoUTF8(wstring strIn, string& strOut); 17 | 18 | void AtoW(string strIn, wstring& strOut); 19 | 20 | void UTF8toW(string strIn, wstring& strOut); 21 | 22 | BOOL Separate(string strIn, string strSep, string& strLeft, string& strRight); 23 | 24 | BOOL Separate(wstring strIn, wstring strSep, wstring& strLeft, wstring& strRight); 25 | 26 | void ChkFolderPath(string& strPath); 27 | 28 | void ChkFolderPath(wstring& strPath); 29 | 30 | void ChkFileName(string& strPath); 31 | 32 | void ChkFileName(wstring& strPath); 33 | 34 | int CompareNoCase(string str1, string str2); 35 | 36 | int CompareNoCase(wstring str1, wstring str2); 37 | 38 | string __inline wcs2mbcs(wstring wcsStr) { 39 | string mbcsStr; 40 | WtoA(wcsStr, mbcsStr); 41 | return mbcsStr; 42 | } 43 | 44 | wstring __inline mbcs2wcs(string mbcsStr) { 45 | wstring wcsStr; 46 | AtoW(mbcsStr, wcsStr); 47 | return wcsStr; 48 | } 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /PTxCtrl/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by PTxCtrl.rc 4 | // 5 | #define IDC_MYICON 2 6 | #define IDD_PTXCTRL_DIALOG 102 7 | #define IDM_ABOUT 104 8 | #define IDI_PTXCTRL 107 9 | #define IDI_SMALL 108 10 | #define IDR_MAINFRAME 128 11 | #define IDC_STATIC -1 12 | 13 | // Next default values for new objects 14 | // 15 | #ifdef APSTUDIO_INVOKED 16 | #ifndef APSTUDIO_READONLY_SYMBOLS 17 | #define _APS_NO_MFC 1 18 | #define _APS_NEXT_RESOURCE_VALUE 129 19 | #define _APS_NEXT_COMMAND_VALUE 32771 20 | #define _APS_NEXT_CONTROL_VALUE 1000 21 | #define _APS_NEXT_SYMED_VALUE 110 22 | #endif 23 | #endif 24 | -------------------------------------------------------------------------------- /Common/PTManager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | enum PTSTREAMING : DWORD { 4 | PTSTREAMING_PIPEIO=0, 5 | PTSTREAMING_SHAREDMEM=1 6 | }; 7 | 8 | struct PTTSIDLIST { DWORD dwId[8]; }; 9 | 10 | class IPTManager 11 | { 12 | public: 13 | 14 | virtual ~IPTManager(void) { FreeSDK(); } 15 | 16 | public: 17 | 18 | virtual BOOL LoadSDK() = 0 ; 19 | virtual void FreeDevice() = 0 ; 20 | virtual BOOL Init() = 0 ; 21 | virtual void UnInit() = 0 ; 22 | 23 | virtual PTSTREAMING GetStreamingMethod() 24 | { return m_bMemStreaming? PTSTREAMING_SHAREDMEM: PTSTREAMING_PIPEIO; } 25 | 26 | virtual DWORD GetTotalTunerCount() = 0 ; 27 | virtual DWORD GetActiveTunerCount(BOOL bSate) = 0 ; 28 | virtual BOOL SetLnbPower(int iID, BOOL bEnabled) = 0 ; 29 | 30 | virtual int OpenTuner(BOOL bSate) = 0 ; 31 | virtual int OpenTuner2(BOOL bSate, int iTunerID) = 0 ; 32 | virtual BOOL CloseTuner(int iID) = 0 ; 33 | 34 | virtual BOOL SetCh(int iID, unsigned long ulCh, DWORD dwTSID, BOOL &hasStream) = 0 ; 35 | virtual DWORD GetSignal(int iID) = 0 ; 36 | 37 | virtual BOOL SetFreq(int iID, unsigned long ulCh) = 0 ; 38 | virtual BOOL GetIdListS(int iID, PTTSIDLIST* pPtTSIDList) = 0 ; 39 | virtual BOOL GetIdS(int iID, DWORD *pdwTSID) = 0 ; 40 | virtual BOOL SetIdS(int iID, DWORD dwTSID) = 0 ; 41 | 42 | virtual BOOL IsFindOpen() = 0 ; 43 | 44 | virtual BOOL CloseChk() = 0 ; 45 | 46 | protected: 47 | 48 | BOOL m_bUseLNB; 49 | BOOL m_bLNB11V; 50 | UINT m_uiVirtualCount; 51 | BOOL m_bMemStreaming; 52 | 53 | DWORD m_dwMaxDurFREQ; 54 | DWORD m_dwMaxDurTMCC, m_dwMaxDurTMCC_S; 55 | DWORD m_dwMaxDurTSID; 56 | 57 | BOOL m_bNoCheckFREQ; 58 | BOOL m_bNoCheckTSID; 59 | 60 | DWORD m_dwOverFlowLimit; 61 | 62 | virtual void FreeSDK() {} 63 | }; 64 | 65 | -------------------------------------------------------------------------------- /PT1Mgr/PT1Manager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "inc/EARTH_PT.h" 4 | #include "inc/OS_Library.h" 5 | #include "../Common/Util.h" 6 | #include "../Common/PTManager.h" 7 | #include "DataIO.h" 8 | 9 | using namespace EARTH; 10 | 11 | class CPT1Manager : public IPTManager 12 | { 13 | public: 14 | CPT1Manager(void); 15 | 16 | BOOL LoadSDK(); 17 | void FreeDevice(); 18 | BOOL Init(); 19 | void UnInit(); 20 | 21 | DWORD GetTotalTunerCount() { return DWORD(m_EnumDev.size()<<1) ; } 22 | DWORD GetActiveTunerCount(BOOL bSate); 23 | BOOL SetLnbPower(int iID, BOOL bEnabled); 24 | 25 | int OpenTuner(BOOL bSate); 26 | int OpenTuner2(BOOL bSate, int iTunerID); 27 | BOOL CloseTuner(int iID); 28 | 29 | BOOL SetCh(int iID, unsigned long ulCh, DWORD dwTSID, BOOL &hasStream); 30 | DWORD GetSignal(int iID); 31 | 32 | BOOL SetFreq(int iID, unsigned long ulCh); 33 | BOOL GetIdListS(int iID, PTTSIDLIST* pPtTSIDList); 34 | BOOL GetIdS(int iID, DWORD *pdwTSID); 35 | BOOL SetIdS(int iID, DWORD dwTSID); 36 | 37 | BOOL IsFindOpen(); 38 | 39 | BOOL CloseChk(); 40 | 41 | protected: 42 | OS::Library* m_cLibrary; 43 | PT::Bus* m_cBus; 44 | 45 | typedef struct _DEV_STATUS{ 46 | PT::Bus::DeviceInfo stDevInfo; 47 | PT::Device* pcDevice; 48 | BOOL bOpen; 49 | BOOL bUseT0; 50 | BOOL bUseT1; 51 | BOOL bUseS0; 52 | BOOL bUseS1; 53 | BOOL bLnbS0; 54 | BOOL bLnbS1; 55 | CDataIO cDataIO; 56 | _DEV_STATUS(BOOL bMemStreaming=FALSE) : cDataIO(bMemStreaming) { 57 | bOpen = FALSE; 58 | pcDevice = NULL; 59 | bUseT0 = FALSE; 60 | bUseT1 = FALSE; 61 | bUseS0 = FALSE; 62 | bUseS1 = FALSE; 63 | bLnbS0 = FALSE; 64 | bLnbS1 = FALSE; 65 | } 66 | }DEV_STATUS; 67 | vector m_EnumDev; 68 | 69 | protected: 70 | void FreeSDK(); 71 | }; 72 | -------------------------------------------------------------------------------- /PT3Mgr/PT3Manager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "inc/EARTH_PT3.h" 4 | #include "inc/OS_Library.h" 5 | #include "../Common/Util.h" 6 | #include "../Common/PTManager.h" 7 | #include "DataIO3.h" 8 | 9 | using namespace EARTH3; 10 | 11 | class CPT3Manager : public IPTManager 12 | { 13 | public: 14 | CPT3Manager(void); 15 | 16 | BOOL LoadSDK(); 17 | void FreeDevice(); 18 | BOOL Init(); 19 | void UnInit(); 20 | 21 | DWORD GetTotalTunerCount() { return DWORD(m_EnumDev.size()<<1) ; } 22 | DWORD GetActiveTunerCount(BOOL bSate); 23 | BOOL SetLnbPower(int iID, BOOL bEnabled); 24 | 25 | int OpenTuner(BOOL bSate); 26 | int OpenTuner2(BOOL bSate, int iTunerID); 27 | BOOL CloseTuner(int iID); 28 | 29 | BOOL SetCh(int iID, unsigned long ulCh, DWORD dwTSID, BOOL &hasStream); 30 | DWORD GetSignal(int iID); 31 | 32 | BOOL SetFreq(int iID, unsigned long ulCh); 33 | BOOL GetIdListS(int iID, PTTSIDLIST* pPtTSIDList); 34 | BOOL GetIdS(int iID, DWORD *pdwTSID); 35 | BOOL SetIdS(int iID, DWORD dwTSID); 36 | 37 | BOOL IsFindOpen(); 38 | 39 | BOOL CloseChk(); 40 | 41 | protected: 42 | OS::Library* m_cLibrary; 43 | PT::Bus* m_cBus; 44 | 45 | typedef struct _DEV_STATUS{ 46 | PT::Bus::DeviceInfo stDevInfo; 47 | PT::Device* pcDevice; 48 | BOOL bOpen; 49 | BOOL bUseT0; 50 | BOOL bUseT1; 51 | BOOL bUseS0; 52 | BOOL bUseS1; 53 | BOOL bLnbS0; 54 | BOOL bLnbS1; 55 | CDataIO3 cDataIO; 56 | _DEV_STATUS(BOOL bMemStreaming=FALSE) : cDataIO(bMemStreaming) { 57 | bOpen = FALSE; 58 | pcDevice = NULL; 59 | bUseT0 = FALSE; 60 | bUseT1 = FALSE; 61 | bUseS0 = FALSE; 62 | bUseS1 = FALSE; 63 | bLnbS0 = FALSE; 64 | bLnbS1 = FALSE; 65 | } 66 | }DEV_STATUS; 67 | vector m_EnumDev; 68 | 69 | protected: 70 | void FreeSDK(); 71 | }; 72 | -------------------------------------------------------------------------------- /PT3Mgr/inc/OS_Library.h: -------------------------------------------------------------------------------- 1 | #ifndef _OS_Library_H 2 | #define _OS_Library_H 3 | 4 | #include "Prefix.h" 5 | #include "EARTH_PT3.h" 6 | #include 7 | 8 | namespace EARTH3 { 9 | namespace OS { 10 | class Library { 11 | public: 12 | Library() 13 | { 14 | ::wsprintf(mPath, L""); 15 | mModule = NULL; 16 | mFunction = NULL; 17 | 18 | #if PUBLIC_LEVEL <= 1 19 | ::wsprintf(mPath, L"SDK_EARTHSOFT_PT3.dll"); 20 | #elif PUBLIC_LEVEL == 2 && !defined(_DEBUG) 21 | ::wsprintf(mPath, L"Update_PT3_20120704.dll"); 22 | #else 23 | const wchar_t *bit; 24 | #if !defined(_WIN64) 25 | bit = L"Win32"; 26 | #else 27 | bit = L"x64"; 28 | #endif 29 | 30 | const wchar_t *configuration; 31 | #if defined(_DEBUG) 32 | configuration = L"Debug"; 33 | #else 34 | configuration = L"Release"; 35 | #endif 36 | 37 | ::wsprintf(mPath, L"..\\..\\..\\..\\SDK\\Output\\%s\\%s\\SDK.dll", bit, configuration); 38 | #endif 39 | 40 | _ASSERT(mModule == NULL); 41 | mModule = ::LoadLibrary(mPath); 42 | if (mModule == NULL) return; 43 | 44 | mFunction = reinterpret_cast(::GetProcAddress(mModule, "_")); 45 | if (mFunction == NULL) return; 46 | } 47 | 48 | ~Library() 49 | { 50 | if (mModule) { 51 | BOOL b = ::FreeLibrary(mModule); 52 | if (b) { 53 | mModule = NULL; 54 | } 55 | } 56 | 57 | mFunction = NULL; 58 | } 59 | 60 | const wchar_t *Path() const 61 | { 62 | return mPath; 63 | } 64 | 65 | PT::Bus::NewBusFunction Function() const 66 | { 67 | return mFunction; 68 | } 69 | 70 | protected: 71 | wchar_t mPath[MAX_PATH]; 72 | HMODULE mModule; 73 | PT::Bus::NewBusFunction mFunction; 74 | }; 75 | } 76 | } 77 | 78 | #endif 79 | -------------------------------------------------------------------------------- /PT1Mgr/inc/OS_Library.h: -------------------------------------------------------------------------------- 1 | #ifndef _OS_Library_H 2 | #define _OS_Library_H 3 | 4 | #include "Prefix.h" 5 | #include "EARTH_PT.h" 6 | #include 7 | 8 | namespace EARTH { 9 | namespace OS { 10 | class Library { 11 | public: 12 | Library() 13 | { 14 | mModule = NULL; 15 | mFunction = NULL; 16 | 17 | wchar_t path[MAX_PATH]; 18 | 19 | #if defined(ENV_EARTHSOFT) || defined(ENV_FACTORY) 20 | const wchar_t *configuration; 21 | #if defined(_DEBUG) 22 | configuration = L"Debug"; 23 | #else 24 | configuration = L"Release"; 25 | #endif 26 | 27 | const wchar_t *bit; 28 | #if !defined(_WIN64) 29 | bit = L"32bit"; 30 | #else 31 | bit = L"64bit"; 32 | #endif 33 | 34 | #if defined(ENV_EARTHSOFT) 35 | ::wsprintf(path, L"E:\\Software\\PT\\Package\\%s\\%s\\SDK\\SDK.dll", configuration, bit); 36 | #else 37 | ::wsprintf(path, L"C:\\Software\\PT\\Package\\%s\\%s\\SDK\\SDK.dll", configuration, bit); 38 | #endif 39 | #else 40 | ::wsprintf(path, L"SDK_EARTHSOFT_PT1_PT2.dll"); 41 | #endif 42 | 43 | _ASSERTE(mModule == NULL); 44 | mModule = ::LoadLibrary(path); 45 | if (mModule == NULL) { _ASSERTE(false); return; } 46 | 47 | mFunction = reinterpret_cast(::GetProcAddress(mModule, "_")); 48 | if (mFunction == NULL) { _ASSERTE(false); return; } 49 | } 50 | 51 | ~Library() 52 | { 53 | if (mModule) { 54 | BOOL b = ::FreeLibrary(mModule); 55 | if (b) { 56 | mModule = NULL; 57 | } 58 | } 59 | 60 | mFunction = NULL; 61 | } 62 | 63 | PT::Bus::NewBusFunction Function() const 64 | { 65 | return mFunction; 66 | } 67 | 68 | protected: 69 | HMODULE mModule; 70 | PT::Bus::NewBusFunction mFunction; 71 | }; 72 | } 73 | } 74 | 75 | #endif 76 | -------------------------------------------------------------------------------- /PT1Mgr/DataIO.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | //#define USE_DEQUE 4 | 5 | #include "inc/EARTH_PT.h" 6 | #include "inc/Prefix.h" 7 | #include "../Common/BaseIO.h" 8 | #include "MicroPacketUtil.h" 9 | 10 | #define TRANSFER_SIZE (4096*PT::Device::BUFFER_PAGE_COUNT) 11 | #define VIRTUAL_IMAGE_COUNT 4 12 | //#define VIRTUAL_COUNT 8 13 | #define LOCK_SIZE 4 14 | #define READ_BLOCK_COUNT 8 15 | #define READ_BLOCK_SIZE (TRANSFER_SIZE / READ_BLOCK_COUNT) 16 | 17 | using namespace EARTH; 18 | 19 | class CDataIO : public CBaseIO 20 | { 21 | public: 22 | CDataIO(BOOL bMemStreaming=FALSE); 23 | virtual ~CDataIO(void); 24 | 25 | void SetDevice(PT::Device* pcDevice){ m_pcDevice = pcDevice; }; 26 | void SetVirtualCount(UINT uiVirtualCount){ VIRTUAL_COUNT = uiVirtualCount; }; 27 | void Run(int iID); 28 | void Stop(); 29 | void EnableTuner(int iID, BOOL bEnable); 30 | void ClearBuff(int iID); 31 | 32 | DWORD GetOverFlowCount(int iID); 33 | 34 | protected: 35 | UINT VIRTUAL_COUNT; 36 | PT::Device* m_pcDevice; 37 | 38 | uint mVirtualIndex; 39 | uint mImageIndex; 40 | uint mBlockIndex; 41 | volatile bool mQuit; 42 | 43 | HANDLE m_hStopEvent; 44 | HANDLE m_hThread; 45 | 46 | CMicroPacketUtil m_cT0Micro; 47 | CMicroPacketUtil m_cT1Micro; 48 | CMicroPacketUtil m_cS0Micro; 49 | CMicroPacketUtil m_cS1Micro; 50 | CMicroPacketUtil &Micro(DWORD dwID) { 51 | switch(dwID) { 52 | case 1: return m_cT1Micro; 53 | case 2: return m_cS0Micro; 54 | case 3: return m_cS1Micro; 55 | default: return m_cT0Micro; 56 | } 57 | } 58 | 59 | BYTE* m_bDMABuff; 60 | 61 | protected: 62 | static UINT WINAPI RecvThreadProc(LPVOID pParam); 63 | 64 | bool WaitBlock(); 65 | void CopyBlock(); 66 | bool DispatchBlock(); 67 | void Clear(uint virtualIndex, uint imageIndex, uint blockIndex); 68 | uint Read(uint virtualIndex, uint imageIndex, uint blockIndex) const; 69 | uint Offset(uint imageIndex, uint blockIndex, uint additionalOffset = 0) const; 70 | void MicroPacket(BYTE* pbPacket); 71 | 72 | void ResetDMA(); 73 | 74 | }; 75 | -------------------------------------------------------------------------------- /PTwCtrl/DataIO.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | //#define USE_DEQUE 4 | 5 | #include "inc/EarthPtIf.h" 6 | #include "inc/Prefix.h" 7 | #include "../Common/BaseIO.h" 8 | #include "MicroPacketUtil.h" 9 | 10 | #define TRANSFER_SIZE (4096*PT::Device::BUFFER_PAGE_COUNT) 11 | #define VIRTUAL_IMAGE_COUNT 4 12 | //#define VIRTUAL_COUNT 8 13 | #define LOCK_SIZE 4 14 | #define READ_BLOCK_COUNT 8 15 | #define READ_BLOCK_SIZE (TRANSFER_SIZE / READ_BLOCK_COUNT) 16 | 17 | using namespace EARTH; 18 | 19 | class CDataIO : public CBaseIO 20 | { 21 | public: 22 | CDataIO(BOOL bMemStreaming=FALSE); 23 | virtual ~CDataIO(void); 24 | 25 | void SetDevice(PT::Device* pcDevice){ m_pcDevice = pcDevice; }; 26 | void SetVirtualCount(UINT uiVirtualCount){ VIRTUAL_COUNT = uiVirtualCount; }; 27 | void Run(int iID); 28 | void Stop(); 29 | void EnableTuner(int iID, BOOL bEnable); 30 | void ClearBuff(int iID); 31 | 32 | DWORD GetOverFlowCount(int iID); 33 | 34 | protected: 35 | UINT VIRTUAL_COUNT; 36 | PT::Device* m_pcDevice; 37 | 38 | uint mVirtualIndex; 39 | uint mImageIndex; 40 | uint mBlockIndex; 41 | volatile bool mQuit; 42 | 43 | HANDLE m_hStopEvent; 44 | HANDLE m_hThread; 45 | 46 | CMicroPacketUtil m_cT0Micro; 47 | CMicroPacketUtil m_cT1Micro; 48 | CMicroPacketUtil m_cS0Micro; 49 | CMicroPacketUtil m_cS1Micro; 50 | CMicroPacketUtil &Micro(DWORD dwID) { 51 | switch(dwID) { 52 | case 1: return m_cT1Micro; 53 | case 2: return m_cS0Micro; 54 | case 3: return m_cS1Micro; 55 | default: return m_cT0Micro; 56 | } 57 | } 58 | 59 | BYTE* m_bDMABuff; 60 | 61 | protected: 62 | static UINT WINAPI RecvThreadProc(LPVOID pParam); 63 | 64 | bool WaitBlock(); 65 | void CopyBlock(); 66 | bool DispatchBlock(); 67 | void Clear(uint virtualIndex, uint imageIndex, uint blockIndex); 68 | uint Read(uint virtualIndex, uint imageIndex, uint blockIndex) const; 69 | uint Offset(uint imageIndex, uint blockIndex, uint additionalOffset = 0) const; 70 | void MicroPacket(BYTE* pbPacket); 71 | 72 | void ResetDMA(); 73 | 74 | }; 75 | -------------------------------------------------------------------------------- /PTxScanS/PTxScanS.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav 15 | 16 | 17 | {50fab3ba-6746-4ef3-b16c-9b09aeafeaa8} 18 | 19 | 20 | 21 | 22 | ソース ファイル 23 | 24 | 25 | ソース ファイル 26 | 27 | 28 | 29 | 30 | ヘッダー ファイル 31 | 32 | 33 | ヘッダー ファイル 34 | 35 | 36 | ヘッダー ファイル\Common 37 | 38 | 39 | ヘッダー ファイル\Common 40 | 41 | 42 | ヘッダー ファイル\Common 43 | 44 | 45 | ヘッダー ファイル\Common 46 | 47 | 48 | ヘッダー ファイル\Common 49 | 50 | 51 | ヘッダー ファイル 52 | 53 | 54 | 55 | 56 | リソース ファイル 57 | 58 | 59 | -------------------------------------------------------------------------------- /Common/PTSendCtrlCmdUtil.h: -------------------------------------------------------------------------------- 1 | #ifndef __PT1_SEND_CTRL_CMD_UTIL_H__ 2 | #define __PT1_SEND_CTRL_CMD_UTIL_H__ 3 | 4 | #include "PTOutsideCtrlCmdDef.h" 5 | #include "PTCreateCtrlCmdUtil.h" 6 | #include "StringUtil.h" 7 | #include "PTManager.h" 8 | 9 | #define CONNECT_TIMEOUT 30*1000 10 | 11 | class CPTSendCtrlCmdBase 12 | { 13 | public: 14 | CPTSendCtrlCmdBase(int iPT,DWORD Timeout__ = CONNECT_TIMEOUT); 15 | virtual ~CPTSendCtrlCmdBase(){} 16 | protected: 17 | int m_iPT; 18 | DWORD Timeout_; 19 | virtual DWORD SendCmd(CMD_STREAM &stSend, CMD_STREAM &stRes) = 0; 20 | public: 21 | int PTKind() {return m_iPT;} 22 | DWORD Timeout() { return Timeout_ ; } 23 | void SetTimeout(DWORD Timeout__) { Timeout_ = Timeout__ ; } 24 | // main commands 25 | DWORD KeepAlive(); 26 | DWORD CloseExe(); 27 | DWORD GetTotalTunerCount(DWORD* pdwNumTuner); 28 | DWORD GetActiveTunerCount(BOOL bSate, DWORD* pdwNumTuner); 29 | DWORD SetLnbPower(int iID, BOOL bEnabled); 30 | DWORD OpenTuner(BOOL bSate, int* piID); 31 | DWORD OpenTuner2(BOOL bSate, int iTunerID, int* piID); 32 | DWORD CloseTuner(int iID); 33 | DWORD SetCh(int iID, DWORD dwCh, DWORD dwTSID); 34 | DWORD GetSignal(int iID, DWORD* pdwCn100); 35 | DWORD GetStreamingMethod(PTSTREAMING *pPTStreaming); 36 | // data transmitter 37 | virtual DWORD SendData(int iID, BYTE** pbData, DWORD* pdwSize) = 0; 38 | virtual DWORD SendBufferObject(int iID, PTBUFFER_OBJECT *pPtBuffObj) = 0 ; 39 | // for IBonTransponder 40 | DWORD SetFreq(int iID, DWORD dwCh); 41 | DWORD GetIdListS(int iID, PTTSIDLIST *pPtTSIDList); 42 | DWORD GetIdS(int iID, DWORD *pdwTSID); 43 | DWORD SetIdS(int iID, DWORD dwTSID); 44 | }; 45 | 46 | 47 | class CPTSendCtrlCmdPipe : public CPTSendCtrlCmdBase 48 | { 49 | public: 50 | /* 51 | CPTSendCtrlCmdUtil( 52 | int iPT, wstring strCmdEvent=CMD_PT_CTRL_EVENT_WAIT_CONNECT, 53 | wstring strCmdPipe=CMD_PT_CTRL_PIPE) 54 | : m_iPT(iPT), m_strCmdEvent(strCmdEvent), m_strCmdPipe(strCmdPipe) {} 55 | */ 56 | CPTSendCtrlCmdPipe(int iPT, DWORD Timeout__ = CONNECT_TIMEOUT); 57 | 58 | protected: 59 | wstring m_strCmdEvent, m_strCmdPipe; 60 | DWORD SendCmd(CMD_STREAM &stSend, CMD_STREAM &stRes) ; 61 | public: 62 | DWORD SendData(int iID, BYTE** pbData, DWORD* pdwSize); 63 | DWORD SendBufferObject(int iID, PTBUFFER_OBJECT *pPtBuffObj); 64 | }; 65 | 66 | #endif 67 | -------------------------------------------------------------------------------- /HowToBuilding.MD: -------------------------------------------------------------------------------- 1 | # How to build BonDriver_PTx-ST_mod series' solution packages. 2 | 3 | ## ■ソリューションファイルの種類とその関係 4 | 5 | ターゲットの種類と環境に応じて構築するソリューションを選択してください。 6 | (※すべてのソリューションを無理に構築する必要はないです。) 7 | 8 | 各種ソリューションファイルは、ルートフォルダに位置しています。 9 | 10 | - BonDriver_PTx.sln 11 | - 構築環境: VisualStudio 2015 以降でサポートされるVC++構築環境 12 | - ターゲット: BonDriver_PTx.dll/PT3Ctrl.exe/PTCtrl.exe/PTxCtrl.exe/PTxScanS.exe 13 | - 概要: EARTH SOFT 純正ドライバのみ対応 [要:WindowsVistaSP2以降のOS] 14 | 15 | - BonDriver_PTx+PTw.sln 16 | - 構築環境: VisualStudio 2015 以降でサポートされるVC++構築環境 17 | - ターゲット: BonDriver_PTx.dll/PT3Ctrl.exe/PTCtrl.exe/PTwCtrl.exe/PTxCtrl.exe/PTxScanS.exe 18 | - 概要: EARTH SOFT 純正ドライバ / pt2wdm ドライバ両対応 [要:WindowsVistaSP2以降のOS] 19 | - 備考: pt2wdm ドライバのインストールと使い方については、[こちら](./PTwCtrl/)を参照してください 20 | 21 | 22 | ## ■ターゲットの構築 23 | 24 | 各種ソリューションからターゲットとなる.EXE/.DLLを構築/生成する手順を説明します。 25 | 26 | 構築する前に、Microsoft VisualStudio のインストールを済ませておいてください。 27 | VisualStudio は、以下のURLから手に入ります。インストールする際には、MSVC C++ 28 | の機能を選択してからインストールすることを忘れないでください。 29 | 30 | URL: https://visualstudio.microsoft.com/ja/downloads/ 31 | (コミュニティ版[無料]で構築出来ます) 32 | 33 | - ※ これはVisualStudio2019の場合ですが、インストールする項目を選択する際に、ワークロードの欄から "C++によるデスクトップ開発" 項目にチェックを入れてからインストールしてください。 34 | "MSVCv142 VS2019 C++ x64/x86 ビルドツール" が右欄インストールの詳細に選択されていればおkです。 35 | 36 | ① 構築するソリューション.slnをダブルクリックして VisualStudio を立ち上げる 37 | (なにか聴かれたら、すべて「はい」または「OK」で答え、既定値のまま押通す) 38 | 39 | ② 上部ツールバーに Debug と表示されてたら、クリックして Release を選択する 40 | (Debugは、開発者用のソリューション構成なので、必ずReleaseを選択すること) 41 | 42 | ③ ターゲットの種類に応じ、②の右隣の x〇〇 と表示されている部分を切り替える 43 | 44 | Win32 → 32ビットで動作するDLLを生成する ( 通常はこちらを選択 ) 45 | x64 → 64ビットで動作するDLLを生成する ( 64ビットアプリで使用する場合 ) 46 | 47 | ④ 上部|ビルド|メニューから|ソリューションをビルド|を選択してビルドを完了する 48 | 49 | - ※生成物[ターゲット]は、ルートフォルダ直下のReleaseフォルダ配下にWin32とx64にそれぞれターゲットの種類に分別されて作成されます。 50 | 51 | - ※生成物で必要なものは、.EXEと.DLLだけです。同時に生成された.EXPや.LIBなどのファイル群は、動作に必要ではない為、消去してしまっても支障ありません。 52 | 53 | - ※Windows8.1SDKが必要など、ビルド時にエラーが表示される場合は、ソリューションの再ターゲットを行う必要があります。 54 | 右側のソリューションエクスプローラの一覧から「ソリューション'XXXXXXX'」を選択し、右クリックのスピードメニューから"ソリューションの再ターゲット"を選択すると"ソリューション操作の再ターゲット"ダイアログが表示されます。 55 | 指示に従ってプロジェクトをアップグレードしてから構築してみてください。(アップグレードの項目は既定値のままでおkの筈です。) 56 | 57 | - ※構築したDLLを他のPCで動かす際には、ランタイムパッケージが必要になります。 58 | たとえば、VisualStudio2019で構築した場合は、VC++2019のランタイムパッケージを構築したDLLを動作させるターゲットPCに別途インストールする必要があります。 59 | VC++ランタイムパッケージについては、以下のURLからも取得可能なようです。 60 | 61 | URL: https://support.microsoft.com/ja-jp/help/2977003/the-latest-supported-visual-c-downloads 62 | 63 | 64 | 以上ノシ 65 | -------------------------------------------------------------------------------- /RiserProblem/README.md: -------------------------------------------------------------------------------- 1 | # ● システム復帰時ライザー経由PT2認識不良の自動修復 2 | 3 | システムサスペンド状態から復帰したライザー経由で設置したPT2デバイスを開こうとするとエラーを表示することがある。 4 | 5 | ![0](Images/0.png) 6 | 7 | BIOS側がライザーを事前に把握していない環境では、PCIブリッジのライザー下の初期化に時間がかかるデバイスをすっ飛ばすことで起こる可能性の高い事案であると予測できる。 8 | なので、システム復帰時にそのすっ飛ばされたデバイス(PT2)を再認識させて改修することについてまとめてみることにしてみた。 9 | 10 | まず、デバイスマネージャを開く。 11 | 左下のルーペマークをクリックして検索欄に"デバイス"と入力して"開く"を選択。 12 | 13 | ![デバマネ表示](Images/DevMngr.png) 14 | 15 | "サウンド、ビデオ、およびゲームコントローラー" 欄に "EARTH SOFT PT2" が居る事を確認。 16 | 17 | ![1](Images/1.png) 18 | 19 | "EARTH SOFT PT2" を選択して右クリックしてスピードメニューから "プロパティ" を選択。 20 | 21 | ![2](Images/2.png) 22 | 23 | プロパティ画面が開いたら、上のタブから "詳細" を選択し、プロパティ欄から "デバイスインスタンスパス" を選択し、表示された値欄を右クリックしてスピードメニューから "コピー" を選択。 24 | 25 | ![3](Images/3.png) 26 | 27 | Cドライブのルートに "ResetRiser" フォルダを作成し、そのフォルダーの中に "ResetPT2.bat" を作成する。 28 | 29 | ![バッチ作成](Images/ResetBat.png) 30 | 31 | ResetPT2.bat の中身は下記の様に記述する。 32 | ```sh 33 | pnputil /restart-device "<先程コピーした EARTH SOFT PT2 のデバイスインスパスをココへペースト>" 34 | ``` 35 | 上記は、応答不能になったデバイスを再始動するコマンド。 36 | これをシステム復帰時毎に起動することを目的にタスクスケジューラに登録する。 37 | 38 | タスクスケジューラを開く。 39 | 左下のルーペマークをクリックして検索欄に"PC"と入力して"管理"を選択。 40 | 41 | ![PCの管理表示](Images/AdminPC.png) 42 | 43 | システムツール > タスクスケジューラ > タスクスケジューラライブラリ を選択。 44 | 右側の操作欄から "タスクの作成" をクリック 45 | 46 | ![4-1](Images/4-1.png) 47 | 48 | タスクの作成が表示されたら"全般" 欄が表示されていると思うので、下記のように編集する。 49 | - 名前: ``` PT2のリセット ``` 50 | - 説明: 適当(``` PT2スタンバイ復帰処理 ```等) 51 | - ``` 最上位の特権で実行する ``` にチェック 52 | 53 | ![5-1](Images/5-1.png) 54 | 55 | 次に、"トリガー" 欄を上のタブから選択し、"新規" をクリック。 56 | 57 | ![6-1](Images/6-1.png) 58 | 59 | 新しいトリガーが表示されたら、下記のように編集して、"OK" ボタンをクリックして画面を閉じる。 60 | - タスクの開始: ``` イベント時 ``` 61 | - ログ: ``` システム ``` 62 | - ソース: ``` Power-Troubleshooter ``` (この項目編集欄の右端下矢印をクリックして表示されるリストから選択) 63 | - イベントID: ``` 1 ``` 64 | - ``` 遅延時間を指定する ``` をチェックして ``` 20 秒間 ``` にセット 65 | 66 | ![7](Images/7.png) 67 | 68 | すると、サスペンドからのシステム復帰時20秒後に発動するトリガーがこのように登録される。 69 | 70 | ![8](Images/8.png) 71 | 72 | 次に、"操作" 欄を上のタブから選択し、"新規" をクリック。 73 | 74 | ![9-1](Images/9-1.png) 75 | 76 | 新しい操作が表示されたら、"プログラム/スクリプト" 欄に先程作成したバッチファイルのパス ``` C:\ResetRiser\ResetPT2.bat ``` を書いて、"OK" ボタンをクリックして画面を閉じる。 77 | 78 | ![A](Images/A.png) 79 | 80 | すると、トリガー時(サスペンドからの復帰時)に自動的に開始されるプログラムとして "C:\ResetRiser\ResetPT2.bat" がこのように登録される。 81 | 82 | ![B](Images/B.png) 83 | 84 | "OKボタン" を押すとこのように "PT2のリセット" がタスクとして登録され、システム復帰時毎にPT2デバイスの再始動が以後、自動的に行われるようになる。 85 | 86 | ![C](Images/C.png) 87 | 88 | 筆者の環境では、ASM1083チップを搭載したライザーカード経由でPT2を動作させているのですが、このタスクを登録してからは、システム復帰時にPT2デバイスを見失うことはなくなりました。 89 | 90 | *※ pnputil /restart-device コマンドは、Windows10 2004 以降の環境が必要なことに注意。* 91 | 92 | 以上ノシ 93 | -------------------------------------------------------------------------------- /Common/PTxCtrlCmd.h: -------------------------------------------------------------------------------- 1 | //=========================================================================== 2 | #pragma once 3 | #ifndef _PTXCTRLCMD_20210331112723813_H_INCLUDED_ 4 | #define _PTXCTRLCMD_20210331112723813_H_INCLUDED_ 5 | //--------------------------------------------------------------------------- 6 | 7 | #include "../Common/SharedMem.h" 8 | //=========================================================================== 9 | namespace PRY8EAlByw { 10 | //--------------------------------------------------------------------------- 11 | 12 | #define PTXCTRLCMDMAXDATA 1 13 | #define PTXCTRLCMDTIMEOUT 30000 14 | 15 | enum PTXCTRLCMD : DWORD { 16 | PTXCTRLCMD_IDLE, 17 | PTXCTRLCMD_SUPPORTED, 18 | PTXCTRLCMD_ACTIVATEPT, 19 | PTXCTRLCMD_GETTUNERCOUNT, 20 | }; 21 | 22 | class CPTxCtrlCmdOperator : public CSharedCmdOperator 23 | { 24 | protected: 25 | bool ServerMode; 26 | struct OP { 27 | DWORD id; 28 | union { 29 | PTXCTRLCMD cmd; 30 | BOOL res; 31 | }; 32 | DWORD data[PTXCTRLCMDMAXDATA]; 33 | }; 34 | DWORD StaticId; 35 | HANDLE HXferMutex; 36 | bool XferLock(DWORD timeout=PTXCTRLCMDTIMEOUT) const ; 37 | bool XferUnlock() const ; 38 | BOOL Xfer(OP &cmd, OP &res, DWORD timeout=PTXCTRLCMDTIMEOUT); 39 | public: 40 | CPTxCtrlCmdOperator(std::wstring name, bool server=false); 41 | virtual ~CPTxCtrlCmdOperator(); 42 | public: 43 | // for Client Operations 44 | BOOL CmdIdle(DWORD timeout=PTXCTRLCMDTIMEOUT); 45 | BOOL CmdSupported(DWORD &PtSupportedBits, DWORD timeout=PTXCTRLCMDTIMEOUT); 46 | BOOL CmdActivatePt(DWORD PtVer, DWORD timeout=PTXCTRLCMDTIMEOUT); 47 | BOOL CmdGetTunerCount(DWORD PtVer, DWORD &TunerCount, DWORD timeout=PTXCTRLCMDTIMEOUT); 48 | protected: 49 | // for Server Operations 50 | virtual BOOL ResIdle() { return TRUE ; } 51 | virtual BOOL ResSupported(DWORD &PtSupportedBits) { return FALSE ; } 52 | virtual BOOL ResActivatePt(DWORD PtVer) { return FALSE ; } 53 | virtual BOOL ResGetTunerCount(DWORD PtVer, DWORD &TunerCount) { return FALSE ; } 54 | public: 55 | // Service Reaction ( It will be called from the server after Listen() ) 56 | BOOL ServiceReaction(DWORD timeout=PTXCTRLCMDTIMEOUT); 57 | }; 58 | 59 | //--------------------------------------------------------------------------- 60 | } // End of namespace PRY8EAlByw 61 | //=========================================================================== 62 | using namespace PRY8EAlByw ; 63 | //=========================================================================== 64 | #endif // _PTXCTRLCMD_20210331112723813_H_INCLUDED_ 65 | -------------------------------------------------------------------------------- /PTwCtrl/PTxWDMCmdSrv.h: -------------------------------------------------------------------------------- 1 | //=========================================================================== 2 | 3 | #ifndef _PTXWDMCMDSRV_20210304223243864_H_INCLUDED_ 4 | #define _PTXWDMCMDSRV_20210304223243864_H_INCLUDED_ 5 | //--------------------------------------------------------------------------- 6 | 7 | #include "PTxWDMCmd.h" 8 | #include "PtDrvWrap.h" 9 | //=========================================================================== 10 | namespace PRY8EAlByw { 11 | //--------------------------------------------------------------------------- 12 | 13 | // CPTxWDMCmdServiceOperator (PTxWDM Command Operator for Server) 14 | 15 | class CPTxWDMCmdServiceOperator : public CPTxWDMCmdOperator 16 | { 17 | protected: 18 | CRITICAL_SECTION Critical_; 19 | class critical_lock { 20 | CRITICAL_SECTION *obj_; 21 | public: 22 | critical_lock(CRITICAL_SECTION *obj) : obj_(obj) 23 | { EnterCriticalSection(obj_); } 24 | ~critical_lock() 25 | { LeaveCriticalSection(obj_); } 26 | }; 27 | DWORD LastAlive_; 28 | BOOL Sate_; 29 | CPtDrvWrapper *Tuner_; 30 | BOOL Terminated_; 31 | BOOL StreamingEnabled_; 32 | SERVER_SETTINGS Settings_; 33 | public: 34 | CPTxWDMCmdServiceOperator(std::wstring name); 35 | virtual ~CPTxWDMCmdServiceOperator(); 36 | protected: 37 | // for Server Operations (override) 38 | BOOL ResTerminate(); 39 | BOOL ResOpenTuner(BOOL Sate, DWORD TunerID); 40 | BOOL ResCloseTuner(); 41 | BOOL ResGetTunerCount(DWORD &Count); 42 | BOOL ResSetTunerSleep(BOOL Sleep); 43 | BOOL ResSetStreamEnable(BOOL Enable); 44 | BOOL ResIsStreamEnabled(BOOL &Enable); 45 | BOOL ResSetChannel(BOOL &Tuned, DWORD Freq, DWORD TSID, DWORD Stream); 46 | BOOL ResSetFreq(DWORD Freq); 47 | BOOL ResCurFreq(DWORD &Freq); 48 | BOOL ResGetIdListS(TSIDLIST &TSIDList); 49 | BOOL ResGetIdS(DWORD &TSID); 50 | BOOL ResSetIdS(DWORD TSID); 51 | BOOL ResSetLnbPower(BOOL Power); 52 | BOOL ResGetCnAgc(DWORD &Cn100, DWORD &CurAgc, DWORD &MaxAgc); 53 | BOOL ResPurgeStream(); 54 | BOOL ResSetupServer(const SERVER_SETTINGS *Options); 55 | public: 56 | CPtDrvWrapper *Tuner() { return Tuner_; } 57 | VOID KeepAlive() { LastAlive_ = GetTickCount(); } 58 | DWORD LastAlive() { return LastAlive_; } 59 | BOOL Terminated() { return Terminated_; } 60 | BOOL StreamingEnabled() { return StreamingEnabled_; } 61 | int StreamerThreadPriority() { return Settings_.StreamerThreadPriority; } 62 | DWORD StreamerPacketSize() { return Settings_.StreamerPacketSize; } 63 | DWORD CtrlPackets() { return Settings_.CtrlPackets; } 64 | BOOL PipeStreaming() { return Settings_.PipeStreaming; } 65 | DWORD CurStreamSize(); 66 | BOOL GetStreamData(LPVOID data, DWORD &size); 67 | }; 68 | 69 | //--------------------------------------------------------------------------- 70 | } // End of namespace PRY8EAlByw 71 | //=========================================================================== 72 | using namespace PRY8EAlByw ; 73 | //=========================================================================== 74 | #endif // _PTXWDMCMDSRV_20210304223243864_H_INCLUDED_ 75 | -------------------------------------------------------------------------------- /PT3Mgr/DataIO3.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "inc/EARTH_PT3.h" 4 | #include "inc/Prefix.h" 5 | #include "inc/EX_Buffer.h" 6 | #include "../Common/BaseIO.h" 7 | 8 | using namespace EARTH3; 9 | 10 | class CDataIO3 : public CBaseIO 11 | { 12 | public: 13 | CDataIO3(BOOL bMemStreaming=FALSE); 14 | virtual ~CDataIO3(void); 15 | 16 | void SetDevice(PT::Device* pcDevice){ m_pcDevice = pcDevice; }; 17 | void SetVirtualCount(UINT uiVirtualCount){ VIRTUAL_COUNT = uiVirtualCount*8; }; 18 | void Run(int iID); 19 | void Stop(); 20 | BOOL EnableTuner(int iID, BOOL bEnable); 21 | void StartPipeServer(int iID); 22 | void StopPipeServer(int iID); 23 | void ClearBuff(int iID); 24 | 25 | DWORD GetOverFlowCount(int iID); 26 | 27 | protected: 28 | UINT VIRTUAL_COUNT; 29 | PT::Device* m_pcDevice; 30 | 31 | BOOL m_bThTerm; 32 | HANDLE m_hWakeupEvent; 33 | 34 | HANDLE m_hThread1; 35 | HANDLE m_hThread2; 36 | HANDLE m_hThread3; 37 | HANDLE m_hThread4; 38 | 39 | EARTH3::EX::Buffer* m_T0SetBuff; 40 | EARTH3::EX::Buffer* m_T1SetBuff; 41 | EARTH3::EX::Buffer* m_S0SetBuff; 42 | EARTH3::EX::Buffer* m_S1SetBuff; 43 | EARTH3::EX::Buffer* &SetBuff(DWORD dwID) { 44 | switch(dwID) { 45 | case 1: return m_T1SetBuff; 46 | case 2: return m_S0SetBuff; 47 | case 3: return m_S1SetBuff; 48 | default: return m_T0SetBuff; 49 | } 50 | } 51 | 52 | uint32 m_T0WriteIndex; 53 | uint32 m_T1WriteIndex; 54 | uint32 m_S0WriteIndex; 55 | uint32 m_S1WriteIndex; 56 | uint32 &WriteIndex(DWORD dwID) { 57 | switch(dwID) { 58 | case 1: return m_T1WriteIndex; 59 | case 2: return m_S0WriteIndex; 60 | case 3: return m_S1WriteIndex; 61 | default: return m_T0WriteIndex; 62 | } 63 | } 64 | 65 | HANDLE m_hSetBuffEvent1; 66 | HANDLE m_hSetBuffEvent2; 67 | HANDLE m_hSetBuffEvent3; 68 | HANDLE m_hSetBuffEvent4; 69 | 70 | protected: 71 | struct RECVTHREAD_PARAM { 72 | CDataIO3 *pSys; 73 | DWORD dwID; 74 | RECVTHREAD_PARAM(CDataIO3 *pSys_, DWORD dwID_) 75 | : pSys(pSys_), dwID(dwID_) {} 76 | }; 77 | static UINT WINAPI RecvThreadProc(LPVOID pParam); 78 | 79 | bool SetBuffLock1(DWORD timeout=IO_DEFAULT_TIMEOUT); 80 | void SetBuffUnLock1(); 81 | bool SetBuffLock2(DWORD timeout=IO_DEFAULT_TIMEOUT); 82 | void SetBuffUnLock2(); 83 | bool SetBuffLock3(DWORD timeout=IO_DEFAULT_TIMEOUT); 84 | void SetBuffUnLock3(); 85 | bool SetBuffLock4(DWORD timeout=IO_DEFAULT_TIMEOUT); 86 | void SetBuffUnLock4(); 87 | bool SetBuffLock(DWORD dwID, DWORD timeout=IO_DEFAULT_TIMEOUT) { 88 | switch(dwID) { 89 | case 1: return SetBuffLock2(timeout); 90 | case 2: return SetBuffLock3(timeout); 91 | case 3: return SetBuffLock4(timeout); 92 | default: return SetBuffLock1(timeout); 93 | } 94 | } 95 | void SetBuffUnLock(DWORD dwID) { 96 | switch(dwID) { 97 | case 1: SetBuffUnLock2(); break; 98 | case 2: SetBuffUnLock3(); break; 99 | case 3: SetBuffUnLock4(); break; 100 | default: SetBuffUnLock1(); break; 101 | } 102 | } 103 | 104 | void ChkTransferInfo(); 105 | 106 | bool CheckReady(DWORD dwID); 107 | bool ReadAddBuff(DWORD dwID); 108 | 109 | }; 110 | -------------------------------------------------------------------------------- /PTwCtrl/readme.md: -------------------------------------------------------------------------------- 1 | # pt2wdm 暫定対応β版 2 | 3 | ## 構築と動作確認 4 | 5 | ソリューションBonDriver_PTx+PTw.slnを構築する前に以下のファイルを配置する必要があります。 6 | 7 | - PTwCtrl/inc フォルダに以下のファイルを配置 8 | - EarthPtIf.h ([pt2wdmドライバ](https://www.vector.co.jp/soft/winnt/hardware/se507005.html)に同封されているもの) 9 | - PtDrvIfLib.h ([pt2wdmドライバ](https://www.vector.co.jp/soft/winnt/hardware/se507005.html)に同封されているもの) 10 | 11 | - PTwCtrl/lib フォルダに以下のファイルを配置 12 | - EarthIfLib.lib ([pt2wdmドライバ](https://www.vector.co.jp/soft/winnt/hardware/se507005.html)に同封されているもの) 13 | - EarthIfLib64.lib ([pt2wdmドライバ](https://www.vector.co.jp/soft/winnt/hardware/se507005.html)に同封されているもの) 14 | - PtDrvIfLib.lib ([pt2wdmドライバ](https://www.vector.co.jp/soft/winnt/hardware/se507005.html)に同封されているもの) 15 | - PtDrvIfLib64.lib ([pt2wdmドライバ](https://www.vector.co.jp/soft/winnt/hardware/se507005.html)に同封されているもの) 16 | 17 | ソリューションBonDriver_PTx+PTw.slnをコンパイルして出来上がったPTwCtrl.exeと以下のファイル群をアプリ側のBonDriverフォルダに配置して動作確認… 18 | ``` 19 | BonDriver_PTw-S.dll ← pt2wdm BS/CS110 複合チューナー S側ID自動判別 (BonDriver_PTx.dllをリネームしたもの) 20 | BonDriver_PTw-T.dll ← pt2wdm 地デジ 複合チューナー T側ID自動判別 (BonDriver_PTx.dllをリネームしたもの) 21 | BonDriver_PTw-ST.ini ← pt2wdm用設定ファイル (BonDriver_PTx-ST.iniをリネームしたもの) 22 | PTwCtrl.exe ← pt2wdm 制御実行ファイル (PTwCtrl.vcxprojをコンパイルして出来上がったファイル) 23 | ``` 24 | 25 | 自動判別ではなく、IDで指定する場合は、次のように連番で記述してください。 26 | BonDriver_PTwで連番を利用する場合は以下の通りです。 27 | ``` 28 | BonDriver_PTw-S0.dll ← BS/CS110 複合チューナーの最初のチューナーのS1端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 29 | BonDriver_PTw-T0.dll ← 地デジ 複合チューナーの最初のチューナーのT1端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 30 | BonDriver_PTw-S1.dll ← BS/CS110 複合チューナーの最初のチューナーのS2端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 31 | BonDriver_PTw-T1.dll ← 地デジ 複合チューナーの最初のチューナーのT2端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 32 | BonDriver_PTw-S2.dll ← BS/CS110 複合チューナーの二枚目のチューナーのS1端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 33 | BonDriver_PTw-T2.dll ← 地デジ 複合チューナーの二枚目のチューナーのT1端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 34 | BonDriver_PTw-S3.dll ← BS/CS110 複合チューナーの二枚目のチューナーのS2端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 35 | BonDriver_PTw-T3.dll ← 地デジ 複合チューナーの二枚目のチューナーのT2端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 36 | BonDriver_PTw-S4.dll ← BS/CS110 複合チューナーの三枚目のチューナーのS1端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 37 | BonDriver_PTw-T4.dll ← 地デジ 複合チューナーの三枚目のチューナーのT1端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 38 | BonDriver_PTw-S5.dll ← BS/CS110 複合チューナーの三枚目のチューナーのS2端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 39 | BonDriver_PTw-T5.dll ← 地デジ 複合チューナーの三枚目のチューナーのT2端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 40 | ``` 41 | 42 | ***※ mod5.2 から、下記のような工程を施すことにより PTx の代替として PTw チューナーを容易にオープンすることも可能です。*** 43 | 44 | 以下のファイル群をアプリ側のBonDriverフォルダに配置… 45 | ``` 46 | BonDriver_PTx-S.dll ← BS/CS110 複合チューナー S側ID自動判別 (BonDriver_PTx.dllをリネームしたもの) 47 | BonDriver_PTx-T.dll ← 地デジ 複合チューナー T側ID自動判別 (BonDriver_PTx.dllをリネームしたもの) 48 | BonDriver_PTx-ST.ini 49 | PTxCtrl.exe ← PT1/PT2/PT3 自動判別PT制御実行ファイル(※pt2wdmだけ使用の場合は無くても可) 50 | PTwCtrl.exe ← pt2wdm 制御実行ファイル (PTwCtrl.vcxprojをコンパイルして出来上がったファイル) 51 | ``` 52 | そして、BonDriver_PTx-ST.ini ファイルの以下の部分を下記のように修正… 53 | ``` 54 | [SET] 55 | ; xSparePTw=0 を xSparePTw=1 に変更 56 | xSparePTw=1 57 | ``` 58 | すると、現在使用しているデバイスドライバが EARTHSOFT 純正であるか pt2wdm であるかに関わらず、適切なデバイスを自動判別して任意のチューナーを開くことが出来るようになります。 59 | EARTHSOFT純正ドライバからpt2wdmのドライバに対応したBonDriverに挿げ替える作業は、実質上記iniファイルの一か所を修正する作業だけで済むため、BonDriverの名前変更などの煩わしい一連の作業を省略できます。 60 | 61 | 62 | **※β版です。無保証( NO WARRANTY )です。テスト期間が短い為、潜在的なバグについては未知数です。** 63 | -------------------------------------------------------------------------------- /Common/PTCreateCtrlCmdUtil.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | #include "PTCreateCtrlCmdUtil.h" 3 | 4 | BOOL CreateDefStream(DWORD dwValue, CMD_STREAM* pCmd) 5 | { 6 | if( pCmd == NULL ){ 7 | return FALSE; 8 | } 9 | pCmd->dwSize = sizeof(DWORD); 10 | pCmd->bData = new BYTE[sizeof(DWORD)]; 11 | 12 | DWORD dwPos = 0; 13 | 14 | memcpy(pCmd->bData + dwPos, &dwValue, sizeof(DWORD)); 15 | // dwPos+=sizeof(DWORD); 16 | 17 | return TRUE; 18 | } 19 | 20 | BOOL CopyDefData(DWORD* pdwValue, BYTE* pBuff) 21 | { 22 | if( pdwValue == NULL || pBuff == NULL ){ 23 | return FALSE; 24 | } 25 | DWORD dwPos = 0; 26 | 27 | *pdwValue = *(DWORD*)(pBuff+dwPos); 28 | // dwPos+=sizeof(DWORD); 29 | 30 | return TRUE; 31 | } 32 | 33 | BOOL CreateDefStream2(DWORD dwValue, DWORD dwValue2, CMD_STREAM* pCmd) 34 | { 35 | if( pCmd == NULL ){ 36 | return FALSE; 37 | } 38 | pCmd->dwSize = sizeof(DWORD)*2; 39 | pCmd->bData = new BYTE[sizeof(DWORD)*2]; 40 | 41 | DWORD dwPos = 0; 42 | 43 | memcpy(pCmd->bData + dwPos, &dwValue, sizeof(DWORD)); 44 | dwPos+=sizeof(DWORD); 45 | 46 | memcpy(pCmd->bData + dwPos, &dwValue2, sizeof(DWORD)); 47 | // dwPos+=sizeof(DWORD); 48 | 49 | return TRUE; 50 | } 51 | 52 | BOOL CopyDefData2(DWORD* pdwValue, DWORD* pdwValue2, BYTE* pBuff) 53 | { 54 | if( pdwValue == NULL || pdwValue2 == NULL || pBuff == NULL ){ 55 | return FALSE; 56 | } 57 | DWORD dwPos = 0; 58 | 59 | *pdwValue = *(DWORD*)(pBuff+dwPos); 60 | dwPos+=sizeof(DWORD); 61 | 62 | *pdwValue2 = *(DWORD*)(pBuff+dwPos); 63 | // dwPos+=sizeof(DWORD); 64 | 65 | return TRUE; 66 | } 67 | 68 | BOOL CreateDefStream3(DWORD dwValue, DWORD dwValue2, DWORD dwValue3, CMD_STREAM* pCmd) 69 | { 70 | if( pCmd == NULL ){ 71 | return FALSE; 72 | } 73 | pCmd->dwSize = sizeof(DWORD)*3; 74 | pCmd->bData = new BYTE[sizeof(DWORD)*3]; 75 | 76 | DWORD dwPos = 0; 77 | 78 | memcpy(pCmd->bData + dwPos, &dwValue, sizeof(DWORD)); 79 | dwPos+=sizeof(DWORD); 80 | 81 | memcpy(pCmd->bData + dwPos, &dwValue2, sizeof(DWORD)); 82 | dwPos+=sizeof(DWORD); 83 | 84 | memcpy(pCmd->bData + dwPos, &dwValue3, sizeof(DWORD)); 85 | // dwPos+=sizeof(DWORD); 86 | 87 | return TRUE; 88 | } 89 | 90 | BOOL CopyDefData3(DWORD* pdwValue, DWORD* pdwValue2, DWORD* pdwValue3, BYTE* pBuff) 91 | { 92 | if( pdwValue == NULL || pdwValue2 == NULL || pdwValue3 == NULL || pBuff == NULL ){ 93 | return FALSE; 94 | } 95 | DWORD dwPos = 0; 96 | 97 | *pdwValue = *(DWORD*)(pBuff+dwPos); 98 | dwPos+=sizeof(DWORD); 99 | 100 | *pdwValue2 = *(DWORD*)(pBuff+dwPos); 101 | dwPos+=sizeof(DWORD); 102 | 103 | *pdwValue3 = *(DWORD*)(pBuff+dwPos); 104 | // dwPos+=sizeof(DWORD); 105 | 106 | return TRUE; 107 | } 108 | 109 | BOOL CreateDefStreamN(const DWORD *pcdwValueN, DWORD dwNum, CMD_STREAM* pCmd) 110 | { 111 | if( pcdwValueN == NULL || !dwNum || pCmd == NULL ){ 112 | return FALSE; 113 | } 114 | pCmd->dwSize = sizeof(DWORD)*dwNum; 115 | pCmd->bData = new BYTE[sizeof(DWORD)*dwNum]; 116 | 117 | DWORD dwPos = 0; 118 | 119 | for(size_t i=0;ibData + dwPos, &pcdwValueN[i], sizeof(DWORD)); 121 | dwPos+=sizeof(DWORD); 122 | } 123 | 124 | return TRUE; 125 | } 126 | 127 | BOOL CopyDefDataN(DWORD* pdwValueN, DWORD dwNum, BYTE* pBuff) 128 | { 129 | if( pdwValueN == NULL || !dwNum || pBuff == NULL ){ 130 | return FALSE; 131 | } 132 | DWORD dwPos = 0; 133 | 134 | for(size_t i=0;i 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav 15 | 16 | 17 | {895d6915-ec17-4b6b-bc27-74253e4f92a2} 18 | 19 | 20 | {f24b25bf-0770-402f-8bbe-470080517ccf} 21 | 22 | 23 | 24 | 25 | ソース ファイル 26 | 27 | 28 | ソース ファイル 29 | 30 | 31 | ソース ファイル 32 | 33 | 34 | ソース ファイル 35 | 36 | 37 | ヘッダー ファイル\Common 38 | 39 | 40 | 41 | 42 | ヘッダー ファイル 43 | 44 | 45 | ヘッダー ファイル 46 | 47 | 48 | ヘッダー ファイル 49 | 50 | 51 | ヘッダー ファイル 52 | 53 | 54 | ヘッダー ファイル\inc 55 | 56 | 57 | ヘッダー ファイル\inc 58 | 59 | 60 | ヘッダー ファイル\inc 61 | 62 | 63 | ヘッダー ファイル\inc 64 | 65 | 66 | ヘッダー ファイル\Common 67 | 68 | 69 | ヘッダー ファイル\Common 70 | 71 | 72 | ヘッダー ファイル\Common 73 | 74 | 75 | ヘッダー ファイル\Common 76 | 77 | 78 | ヘッダー ファイル\Common 79 | 80 | 81 | ヘッダー ファイル\Common 82 | 83 | 84 | ヘッダー ファイル\Common 85 | 86 | 87 | ヘッダー ファイル\Common 88 | 89 | 90 | ヘッダー ファイル\Common 91 | 92 | 93 | ヘッダー ファイル\Common 94 | 95 | 96 | ヘッダー ファイル\Common 97 | 98 | 99 | ヘッダー ファイル\Common 100 | 101 | 102 | ヘッダー ファイル\Common 103 | 104 | 105 | ヘッダー ファイル 106 | 107 | 108 | ヘッダー ファイル\Common 109 | 110 | 111 | -------------------------------------------------------------------------------- /PT3Mgr/PT3Mgr.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav 15 | 16 | 17 | {228d1778-c5a9-44cd-97ac-5a95b94b9f0e} 18 | 19 | 20 | {c3707534-92f6-4308-b696-3ce57d60092d} 21 | 22 | 23 | 24 | 25 | ソース ファイル 26 | 27 | 28 | ソース ファイル 29 | 30 | 31 | ソース ファイル 32 | 33 | 34 | 35 | 36 | ヘッダー ファイル 37 | 38 | 39 | ヘッダー ファイル 40 | 41 | 42 | ヘッダー ファイル\inc 43 | 44 | 45 | ヘッダー ファイル\inc 46 | 47 | 48 | ヘッダー ファイル\inc 49 | 50 | 51 | ヘッダー ファイル\inc 52 | 53 | 54 | ヘッダー ファイル\inc 55 | 56 | 57 | ヘッダー ファイル\inc 58 | 59 | 60 | ヘッダー ファイル\inc 61 | 62 | 63 | ヘッダー ファイル\Common 64 | 65 | 66 | ヘッダー ファイル\Common 67 | 68 | 69 | ヘッダー ファイル\Common 70 | 71 | 72 | ヘッダー ファイル\Common 73 | 74 | 75 | ヘッダー ファイル\Common 76 | 77 | 78 | ヘッダー ファイル\Common 79 | 80 | 81 | ヘッダー ファイル\Common 82 | 83 | 84 | ヘッダー ファイル\Common 85 | 86 | 87 | ヘッダー ファイル\Common 88 | 89 | 90 | ヘッダー ファイル\Common 91 | 92 | 93 | ヘッダー ファイル\Common 94 | 95 | 96 | ヘッダー ファイル\Common 97 | 98 | 99 | ヘッダー ファイル 100 | 101 | 102 | ヘッダー ファイル 103 | 104 | 105 | ヘッダー ファイル\Common 106 | 107 | 108 | ヘッダー ファイル\Common 109 | 110 | 111 | -------------------------------------------------------------------------------- /Common/BaseIO.h: -------------------------------------------------------------------------------- 1 | //=========================================================================== 2 | #pragma once 3 | 4 | #ifndef _BASEIO_A7E2875D_30EF_4185_AE03_67047135B8F7_H_INCLUDED_ 5 | #define _BASEIO_A7E2875D_30EF_4185_AE03_67047135B8F7_H_INCLUDED_ 6 | //--------------------------------------------------------------------------- 7 | 8 | #include "PTOutsideCtrlCmdDef.h" 9 | #include "PipeServer.h" 10 | #include "SharedMem.h" 11 | 12 | #define IO_DEFAULT_TIMEOUT (10*1000) 13 | 14 | class CBaseIO 15 | { 16 | protected: 17 | CBaseIO(BOOL bMemStreaming); 18 | virtual ~CBaseIO(void); 19 | 20 | CPipeServer m_cPipeT0; 21 | CPipeServer m_cPipeT1; 22 | CPipeServer m_cPipeS0; 23 | CPipeServer m_cPipeS1; 24 | CPipeServer &Pipe(DWORD dwID) { 25 | switch(dwID) { 26 | case 1: return m_cPipeT1; 27 | case 2: return m_cPipeS0; 28 | case 3: return m_cPipeS1; 29 | default: return m_cPipeT0; 30 | } 31 | } 32 | 33 | PTBUFFER m_T0Buff; 34 | PTBUFFER m_T1Buff; 35 | PTBUFFER m_S0Buff; 36 | PTBUFFER m_S1Buff; 37 | PTBUFFER &Buff(DWORD dwID) { 38 | switch(dwID) { 39 | case 1: return m_T1Buff; 40 | case 2: return m_S0Buff; 41 | case 3: return m_S1Buff; 42 | default: return m_T0Buff; 43 | } 44 | } 45 | 46 | DWORD m_dwT0OverFlowCount; 47 | DWORD m_dwT1OverFlowCount; 48 | DWORD m_dwS0OverFlowCount; 49 | DWORD m_dwS1OverFlowCount; 50 | DWORD &OverFlowCount(DWORD dwID) { 51 | switch(dwID) { 52 | case 1: return m_dwT1OverFlowCount; 53 | case 2: return m_dwS0OverFlowCount; 54 | case 3: return m_dwS1OverFlowCount; 55 | default: return m_dwT0OverFlowCount; 56 | } 57 | } 58 | 59 | std::wstring IdentStr(DWORD dwID, std::wstring suffix=L"") { 60 | switch(dwID) { 61 | case 1: return L"T1"+suffix; 62 | case 2: return L"S0"+suffix; 63 | case 3: return L"S1"+suffix; 64 | default: return L"T0"+suffix; 65 | } 66 | } 67 | 68 | HANDLE m_hBuffEvents[4]; 69 | 70 | bool m_fDataCarry[4]; 71 | 72 | protected: 73 | 74 | bool BuffLock(DWORD dwID, DWORD timeout=IO_DEFAULT_TIMEOUT); 75 | void BuffUnLock(DWORD dwID); 76 | 77 | static int CALLBACK OutsideCmdCallbackT0(void* pParam, CMD_STREAM* pCmdParam, CMD_STREAM* pResParam, BOOL* pbResDataAbandon); 78 | static int CALLBACK OutsideCmdCallbackT1(void* pParam, CMD_STREAM* pCmdParam, CMD_STREAM* pResParam, BOOL* pbResDataAbandon); 79 | static int CALLBACK OutsideCmdCallbackS0(void* pParam, CMD_STREAM* pCmdParam, CMD_STREAM* pResParam, BOOL* pbResDataAbandon); 80 | static int CALLBACK OutsideCmdCallbackS1(void* pParam, CMD_STREAM* pCmdParam, CMD_STREAM* pResParam, BOOL* pbResDataAbandon); 81 | CMD_CALLBACK_PROC OutsideCmdCallback(DWORD dwID) { 82 | switch(dwID) { 83 | case 1: return &OutsideCmdCallbackT1; 84 | case 2: return &OutsideCmdCallbackS0; 85 | case 3: return &OutsideCmdCallbackS1; 86 | default: return &OutsideCmdCallbackT0; 87 | } 88 | } 89 | 90 | void CmdSendData(DWORD dwID, CMD_STREAM* pCmdParam, CMD_STREAM* pResParam, BOOL* pbResDataAbandon); 91 | 92 | void Flush(PTBUFFER &buf, BOOL dispose = FALSE ); 93 | 94 | protected: 95 | // MemStreaming 96 | BOOL m_bMemStreaming; 97 | BOOL m_bMemStreamingTerm; 98 | CSharedTransportStreamer *m_T0MemStreamer; 99 | CSharedTransportStreamer *m_T1MemStreamer; 100 | CSharedTransportStreamer *m_S0MemStreamer; 101 | CSharedTransportStreamer *m_S1MemStreamer; 102 | CSharedTransportStreamer *&MemStreamer(DWORD dwID) { 103 | switch(dwID) { 104 | case 1: return m_T1MemStreamer; 105 | case 2: return m_S0MemStreamer; 106 | case 3: return m_S1MemStreamer; 107 | default: return m_T0MemStreamer; 108 | } 109 | } 110 | HANDLE m_hT0MemStreamingThread; 111 | HANDLE m_hT1MemStreamingThread; 112 | HANDLE m_hS0MemStreamingThread; 113 | HANDLE m_hS1MemStreamingThread; 114 | HANDLE &MemStreamingThread(DWORD dwID) { 115 | switch(dwID) { 116 | case 1: return m_hT1MemStreamingThread; 117 | case 2: return m_hS0MemStreamingThread; 118 | case 3: return m_hS1MemStreamingThread; 119 | default: return m_hT0MemStreamingThread; 120 | } 121 | } 122 | UINT MemStreamingThreadProcMain(DWORD dwID); 123 | struct MEMSTREAMINGTHREAD_PARAM { 124 | CBaseIO *pSys; 125 | DWORD dwID; 126 | MEMSTREAMINGTHREAD_PARAM(CBaseIO *pSys_, DWORD dwID_) 127 | : pSys(pSys_), dwID(dwID_) {} 128 | }; 129 | static UINT WINAPI MemStreamingThreadProc(LPVOID pParam); 130 | void StartMemStreaming(DWORD dwID); 131 | void StopMemStreaming(); 132 | }; 133 | 134 | 135 | //=========================================================================== 136 | #endif // _BASEIO_A7E2875D_30EF_4185_AE03_67047135B8F7_H_INCLUDED_ 137 | -------------------------------------------------------------------------------- /PT3Ctrl/PT3Ctrl.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | {5081ce6d-0e16-43fb-bcc4-09c8806e4a68} 18 | 19 | 20 | 21 | 22 | リソース ファイル 23 | 24 | 25 | 26 | 27 | ヘッダー ファイル 28 | 29 | 30 | ヘッダー ファイル 31 | 32 | 33 | ヘッダー ファイル 34 | 35 | 36 | ヘッダー ファイル 37 | 38 | 39 | Common 40 | 41 | 42 | Common 43 | 44 | 45 | Common 46 | 47 | 48 | Common 49 | 50 | 51 | Common 52 | 53 | 54 | Common 55 | 56 | 57 | Common 58 | 59 | 60 | Common 61 | 62 | 63 | Common 64 | 65 | 66 | Common 67 | 68 | 69 | Common 70 | 71 | 72 | Common 73 | 74 | 75 | Common 76 | 77 | 78 | Common 79 | 80 | 81 | 82 | 83 | ソース ファイル 84 | 85 | 86 | ソース ファイル 87 | 88 | 89 | Common 90 | 91 | 92 | Common 93 | 94 | 95 | Common 96 | 97 | 98 | Common 99 | 100 | 101 | Common 102 | 103 | 104 | Common 105 | 106 | 107 | Common 108 | 109 | 110 | Common 111 | 112 | 113 | Common 114 | 115 | 116 | Common 117 | 118 | 119 | 120 | 121 | リソース ファイル 122 | 123 | 124 | -------------------------------------------------------------------------------- /Common/PTxCtrlCmd.cpp: -------------------------------------------------------------------------------- 1 | //=========================================================================== 2 | #include "stdafx.h" 3 | 4 | #include "PTxCtrlCmd.h" 5 | #include "../Common/Util.h" 6 | #include "../Common/HRTimer.h" 7 | //--------------------------------------------------------------------------- 8 | 9 | using namespace std; 10 | 11 | //=========================================================================== 12 | namespace PRY8EAlByw { 13 | //--------------------------------------------------------------------------- 14 | //=========================================================================== 15 | // CPTxCtrlCmdOperator 16 | //--------------------------------------------------------------------------- 17 | CPTxCtrlCmdOperator::CPTxCtrlCmdOperator(wstring name, bool server) 18 | : CSharedCmdOperator(name, server, sizeof OP) 19 | { 20 | ServerMode = server; 21 | StaticId = 0 ; 22 | 23 | wstring xfer_mutex_name = Name() + L"_PTxCtrlCmdOperator_XferMutex"; 24 | HXferMutex = _CreateMutex(FALSE, xfer_mutex_name.c_str()); 25 | } 26 | //--------------------------------------------------------------------------- 27 | CPTxCtrlCmdOperator::~CPTxCtrlCmdOperator() 28 | { 29 | if(HXferMutex) CloseHandle(HXferMutex); 30 | } 31 | //--------------------------------------------------------------------------- 32 | bool CPTxCtrlCmdOperator::XferLock(DWORD timeout) const 33 | { 34 | if(!HXferMutex) return false ; 35 | return HRWaitForSingleObject(HXferMutex, timeout) == WAIT_OBJECT_0 ; 36 | } 37 | //--------------------------------------------------------------------------- 38 | bool CPTxCtrlCmdOperator::XferUnlock() const 39 | { 40 | if(!HXferMutex) return false ; 41 | return ReleaseMutex(HXferMutex) ? true : false ; 42 | } 43 | //--------------------------------------------------------------------------- 44 | BOOL CPTxCtrlCmdOperator::Xfer(OP &cmd, OP &res, DWORD timeout) 45 | { 46 | BOOL r=FALSE; 47 | if(XferLock(timeout)) { 48 | do { 49 | if(ServerMode) break; 50 | cmd.id = StaticId ; 51 | if(!Send(&cmd,timeout)) break; 52 | res.id = StaticId-1; 53 | res.res = FALSE; 54 | if(!Listen(timeout)) break; 55 | if(!Recv(&res,timeout)) break; 56 | if(res.id!=StaticId) break; 57 | StaticId++; 58 | r=TRUE; 59 | }while(0); 60 | if(!XferUnlock()) r=FALSE; 61 | } 62 | return r; 63 | } 64 | //--------------------------------------------------------------------------- 65 | BOOL CPTxCtrlCmdOperator::CmdIdle(DWORD timeout) 66 | { 67 | OP op; 68 | op.cmd = PTXCTRLCMD_IDLE ; 69 | if(!Xfer(op,op,timeout)) return FALSE; 70 | return op.res ; 71 | } 72 | //--------------------------------------------------------------------------- 73 | BOOL CPTxCtrlCmdOperator::CmdSupported(DWORD &PtSupportedBits, DWORD timeout) 74 | { 75 | OP op; 76 | op.cmd = PTXCTRLCMD_SUPPORTED ; 77 | if(!Xfer(op,op,timeout)) return FALSE; 78 | if(op.res) PtSupportedBits = op.data[0]; 79 | return op.res ; 80 | } 81 | //--------------------------------------------------------------------------- 82 | BOOL CPTxCtrlCmdOperator::CmdActivatePt(DWORD PtVer, DWORD timeout) 83 | { 84 | OP op; 85 | op.cmd = PTXCTRLCMD_ACTIVATEPT ; 86 | op.data[0] = PtVer ; 87 | if(!Xfer(op,op,timeout)) return FALSE; 88 | return op.res ; 89 | } 90 | //--------------------------------------------------------------------------- 91 | BOOL CPTxCtrlCmdOperator::CmdGetTunerCount(DWORD PtVer, DWORD &TunerCount, DWORD timeout) 92 | { 93 | OP op; 94 | op.cmd = PTXCTRLCMD_GETTUNERCOUNT ; 95 | op.data[0] = PtVer ; 96 | if(!Xfer(op,op,timeout)) return FALSE; 97 | if(op.res) TunerCount = op.data[0]; 98 | return op.res ; 99 | } 100 | //--------------------------------------------------------------------------- 101 | BOOL CPTxCtrlCmdOperator::ServiceReaction(DWORD timeout) 102 | { 103 | if(!ServerMode) return FALSE; 104 | OP cmd, res; 105 | if(!Recv(&cmd,timeout)) return FALSE ; 106 | BOOL result = TRUE ; 107 | DBGOUT("service reaction: cmd=%d\n",cmd.cmd); 108 | switch(cmd.cmd) { 109 | case PTXCTRLCMD_IDLE: 110 | res.res = ResIdle(); 111 | break; 112 | case PTXCTRLCMD_SUPPORTED: 113 | res.res = ResSupported(res.data[0]); 114 | break; 115 | case PTXCTRLCMD_ACTIVATEPT: 116 | res.res = ResActivatePt(cmd.data[0]); 117 | break; 118 | case PTXCTRLCMD_GETTUNERCOUNT: 119 | res.res = ResGetTunerCount(cmd.data[0], res.data[0]); 120 | break; 121 | default: 122 | result = res.res = FALSE ; 123 | } 124 | res.id = cmd.id ; 125 | if(!Send(&res,timeout)) result = FALSE ; 126 | return result ; 127 | } 128 | //--------------------------------------------------------------------------- 129 | } // End of namespace PRY8EAlByw 130 | //=========================================================================== 131 | -------------------------------------------------------------------------------- /PTxCtrl/PTxCtrl.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | {5081ce6d-0e16-43fb-bcc4-09c8806e4a68} 18 | 19 | 20 | 21 | 22 | リソース ファイル 23 | 24 | 25 | 26 | 27 | ヘッダー ファイル 28 | 29 | 30 | ヘッダー ファイル 31 | 32 | 33 | ヘッダー ファイル 34 | 35 | 36 | ヘッダー ファイル 37 | 38 | 39 | Common 40 | 41 | 42 | Common 43 | 44 | 45 | Common 46 | 47 | 48 | Common 49 | 50 | 51 | Common 52 | 53 | 54 | Common 55 | 56 | 57 | Common 58 | 59 | 60 | Common 61 | 62 | 63 | Common 64 | 65 | 66 | Common 67 | 68 | 69 | Common 70 | 71 | 72 | Common 73 | 74 | 75 | Common 76 | 77 | 78 | Common 79 | 80 | 81 | Common 82 | 83 | 84 | 85 | 86 | ソース ファイル 87 | 88 | 89 | ソース ファイル 90 | 91 | 92 | Common 93 | 94 | 95 | Common 96 | 97 | 98 | Common 99 | 100 | 101 | Common 102 | 103 | 104 | Common 105 | 106 | 107 | Common 108 | 109 | 110 | Common 111 | 112 | 113 | Common 114 | 115 | 116 | Common 117 | 118 | 119 | Common 120 | 121 | 122 | Common 123 | 124 | 125 | 126 | 127 | リソース ファイル 128 | 129 | 130 | -------------------------------------------------------------------------------- /BonDriver_PTx/BonDriver_PTx.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | {69b20510-dbae-4ff7-a9b3-9477f0a2be33} 18 | 19 | 20 | {6a9fc26e-1ac0-4660-981a-035fc0ca17af} 21 | 22 | 23 | 24 | 25 | ヘッダー ファイル 26 | 27 | 28 | ヘッダー ファイル 29 | 30 | 31 | ヘッダー ファイル 32 | 33 | 34 | ヘッダー ファイル 35 | 36 | 37 | Common 38 | 39 | 40 | Common 41 | 42 | 43 | Common 44 | 45 | 46 | Common 47 | 48 | 49 | Common 50 | 51 | 52 | Common 53 | 54 | 55 | ヘッダー ファイル 56 | 57 | 58 | Common 59 | 60 | 61 | Common 62 | 63 | 64 | Common 65 | 66 | 67 | Common 68 | 69 | 70 | Common 71 | 72 | 73 | Common 74 | 75 | 76 | Common 77 | 78 | 79 | Common 80 | 81 | 82 | Common 83 | 84 | 85 | 86 | 87 | ソース ファイル 88 | 89 | 90 | ソース ファイル 91 | 92 | 93 | ソース ファイル 94 | 95 | 96 | ソース ファイル 97 | 98 | 99 | ソース ファイル 100 | 101 | 102 | Common 103 | 104 | 105 | Common 106 | 107 | 108 | Common 109 | 110 | 111 | Common 112 | 113 | 114 | Common 115 | 116 | 117 | Common 118 | 119 | 120 | Common 121 | 122 | 123 | Common 124 | 125 | 126 | 127 | 128 | リソース ファイル 129 | 130 | 131 | -------------------------------------------------------------------------------- /PTCtrl/PT1Ctrl.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {58b153c5-9cc0-40f2-9d0d-1ee0cfe7ecd6} 10 | 11 | 12 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 13 | h;hpp;hxx;hm;inl;inc;xsd 14 | 15 | 16 | {a285f7a0-7bea-4747-aaf6-78d9f4845d0f} 17 | 18 | 19 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 20 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav 21 | 22 | 23 | 24 | 25 | ソース ファイル 26 | 27 | 28 | ソース ファイル 29 | 30 | 31 | ソース ファイル\Common 32 | 33 | 34 | ソース ファイル\Common 35 | 36 | 37 | ソース ファイル\Common 38 | 39 | 40 | ソース ファイル\Common 41 | 42 | 43 | ソース ファイル\Common 44 | 45 | 46 | ソース ファイル\Common 47 | 48 | 49 | ソース ファイル\Common 50 | 51 | 52 | ソース ファイル\Common 53 | 54 | 55 | ソース ファイル\Common 56 | 57 | 58 | ソース ファイル\Common 59 | 60 | 61 | 62 | 63 | ヘッダー ファイル 64 | 65 | 66 | ヘッダー ファイル 67 | 68 | 69 | ヘッダー ファイル 70 | 71 | 72 | ヘッダー ファイル\Common 73 | 74 | 75 | ヘッダー ファイル\Common 76 | 77 | 78 | ヘッダー ファイル\Common 79 | 80 | 81 | ヘッダー ファイル\Common 82 | 83 | 84 | ヘッダー ファイル\Common 85 | 86 | 87 | ヘッダー ファイル\Common 88 | 89 | 90 | ヘッダー ファイル\Common 91 | 92 | 93 | ヘッダー ファイル\Common 94 | 95 | 96 | ヘッダー ファイル\Common 97 | 98 | 99 | ソース ファイル\Common 100 | 101 | 102 | ヘッダー ファイル\Common 103 | 104 | 105 | ヘッダー ファイル\Common 106 | 107 | 108 | ヘッダー ファイル\Common 109 | 110 | 111 | ヘッダー ファイル 112 | 113 | 114 | ヘッダー ファイル\Common 115 | 116 | 117 | 118 | 119 | リソース ファイル 120 | 121 | 122 | リソース ファイル 123 | 124 | 125 | 126 | 127 | リソース ファイル 128 | 129 | 130 | -------------------------------------------------------------------------------- /PTwCtrl/PTxWDMCmd.h: -------------------------------------------------------------------------------- 1 | //=========================================================================== 2 | #pragma once 3 | #ifndef _PTXWDMCMD_20210301140612558_H_INCLUDED_ 4 | #define _PTXWDMCMD_20210301140612558_H_INCLUDED_ 5 | //--------------------------------------------------------------------------- 6 | 7 | #include 8 | #include "../Common/SharedMem.h" 9 | //=========================================================================== 10 | namespace PRY8EAlByw { 11 | //--------------------------------------------------------------------------- 12 | 13 | #define PTXWDMCMDMAXDATA (std::max(sizeof TSIDLIST,sizeof SERVER_SETTINGS)/sizeof DWORD) 14 | #define PTXWDMCMDTIMEOUT 30000 15 | 16 | enum PTXWDMCMD : DWORD { 17 | PTXWDMCMD_TERMINATE, 18 | PTXWDMCMD_OPEN_TUNER, 19 | PTXWDMCMD_CLOSE_TUNER, 20 | PTXWDMCMD_GET_TUNER_COUNT, 21 | PTXWDMCMD_SET_TUNER_SLEEP, 22 | PTXWDMCMD_SET_STREAM_ENABLE, 23 | PTXWDMCMD_IS_STREAM_ENABLED, 24 | PTXWDMCMD_SET_CHANNEL, 25 | PTXWDMCMD_SET_FREQ, 26 | PTXWDMCMD_CUR_FREQ, 27 | PTXWDMCMD_GET_IDLIST_S, 28 | PTXWDMCMD_GET_ID_S, 29 | PTXWDMCMD_SET_ID_S, 30 | PTXWDMCMD_SET_LNB_POWER, 31 | PTXWDMCMD_GET_CN_AGC, 32 | PTXWDMCMD_PURGE_STREAM, 33 | PTXWDMCMD_SETUP_SERVER, 34 | }; 35 | 36 | struct TSIDLIST { 37 | DWORD Id[8]; 38 | }; 39 | 40 | struct SERVER_SETTINGS { 41 | DWORD dwSize; 42 | DWORD CtrlPackets; 43 | int StreamerThreadPriority; 44 | DWORD MAXDUR_FREQ; 45 | DWORD MAXDUR_TMCC; 46 | DWORD MAXDUR_TMCC_S; 47 | DWORD MAXDUR_TSID; 48 | DWORD StreamerPacketSize; 49 | BOOL LNB11V:1; 50 | BOOL PipeStreaming:1; 51 | }; 52 | 53 | // CPTxWDMCmdOperator (PTxWDM Command Operator) 54 | 55 | class CPTxWDMCmdOperator : public CSharedCmdOperator 56 | { 57 | protected: 58 | bool ServerMode; 59 | struct OP { 60 | DWORD id; 61 | union { 62 | PTXWDMCMD cmd; 63 | BOOL res; 64 | }; 65 | DWORD data[PTXWDMCMDMAXDATA]; 66 | }; 67 | DWORD StaticId; 68 | HANDLE HXferMutex; 69 | bool XferLock(DWORD timeout=PTXWDMCMDTIMEOUT) const ; 70 | bool XferUnlock() const ; 71 | BOOL Xfer(OP &cmd, OP &res, DWORD timeout=PTXWDMCMDTIMEOUT); 72 | CPTxWDMCmdOperator *UniServer; 73 | public: 74 | CPTxWDMCmdOperator(std::wstring name, bool server=false); 75 | virtual ~CPTxWDMCmdOperator(); 76 | public: 77 | // for Client Operations 78 | BOOL CmdTerminate(DWORD timeout=PTXWDMCMDTIMEOUT); 79 | BOOL CmdOpenTuner(BOOL Sate, DWORD TunerID, DWORD timeout=PTXWDMCMDTIMEOUT); 80 | BOOL CmdCloseTuner(DWORD timeout=PTXWDMCMDTIMEOUT); 81 | BOOL CmdGetTunerCount(DWORD &Count, DWORD timeout=PTXWDMCMDTIMEOUT); 82 | BOOL CmdSetTunerSleep(BOOL Sleep, DWORD timeout=PTXWDMCMDTIMEOUT); 83 | BOOL CmdSetStreamEnable(BOOL Enable, DWORD timeout=PTXWDMCMDTIMEOUT); 84 | BOOL CmdIsStreamEnabled(BOOL &Enable, DWORD timeout=PTXWDMCMDTIMEOUT); 85 | BOOL CmdSetChannel(BOOL &Tuned, DWORD Freq, DWORD TSID, DWORD Stream, DWORD timeout=PTXWDMCMDTIMEOUT); 86 | BOOL CmdSetFreq(DWORD Freq, DWORD timeout=PTXWDMCMDTIMEOUT); 87 | BOOL CmdCurFreq(DWORD &Freq, DWORD timeout=PTXWDMCMDTIMEOUT); 88 | BOOL CmdGetIdListS(TSIDLIST &TSIDList, DWORD timeout=PTXWDMCMDTIMEOUT); 89 | BOOL CmdGetIdS(DWORD &TSID, DWORD timeout=PTXWDMCMDTIMEOUT); 90 | BOOL CmdSetIdS(DWORD TSID, DWORD timeout=PTXWDMCMDTIMEOUT); 91 | BOOL CmdSetLnbPower(BOOL Power, DWORD timeout=PTXWDMCMDTIMEOUT); 92 | BOOL CmdGetCnAgc(DWORD &Cn100, DWORD &CurAgc, DWORD &MaxAgc, DWORD timeout=PTXWDMCMDTIMEOUT); 93 | BOOL CmdPurgeStream(DWORD timeout=PTXWDMCMDTIMEOUT); 94 | BOOL CmdSetupServer(const SERVER_SETTINGS *Options, DWORD timeout=PTXWDMCMDTIMEOUT); 95 | protected: 96 | // for Server Operations 97 | virtual BOOL ResTerminate() { return FALSE ; } 98 | virtual BOOL ResOpenTuner(BOOL Sate, DWORD TunerID) { return FALSE ; } 99 | virtual BOOL ResCloseTuner() { return FALSE ; } 100 | virtual BOOL ResGetTunerCount(DWORD &Count) { return FALSE ; } 101 | virtual BOOL ResSetTunerSleep(BOOL Sleep) { return FALSE ; } 102 | virtual BOOL ResSetStreamEnable(BOOL Enable) { return FALSE ; } 103 | virtual BOOL ResIsStreamEnabled(BOOL &Enable) { return FALSE ; } 104 | virtual BOOL ResSetChannel(BOOL &Tuned, DWORD Freq, DWORD TSID, DWORD Stream) { return FALSE ; } 105 | virtual BOOL ResSetFreq(DWORD Freq) { return FALSE ; } 106 | virtual BOOL ResCurFreq(DWORD &Freq) { return FALSE ; } 107 | virtual BOOL ResGetIdListS(TSIDLIST &TSIDList) { return FALSE ; } 108 | virtual BOOL ResGetIdS(DWORD &TSID) { return FALSE ; } 109 | virtual BOOL ResSetIdS(DWORD TSID) { return FALSE ; } 110 | virtual BOOL ResSetLnbPower(BOOL Power) { return FALSE ; } 111 | virtual BOOL ResGetCnAgc(DWORD &Cn100, DWORD &CurAgc, DWORD &MaxAgc) { return FALSE ; } 112 | virtual BOOL ResPurgeStream() { return FALSE ; } 113 | virtual BOOL ResSetupServer(const SERVER_SETTINGS *Options) { return FALSE ; } 114 | public: 115 | // Service Reaction ( It will be called from the server after Listen() ) 116 | BOOL ServiceReaction(DWORD timeout=PTXWDMCMDTIMEOUT); 117 | // Uniqulize ( Unify the server & client flows of command operations ) 118 | BOOL Uniqulize(CPTxWDMCmdOperator *server); 119 | CPTxWDMCmdOperator *UniqueServer() { return UniServer; } 120 | }; 121 | 122 | //--------------------------------------------------------------------------- 123 | } // End of namespace PRY8EAlByw 124 | //=========================================================================== 125 | using namespace PRY8EAlByw ; 126 | //=========================================================================== 127 | #endif // _PTXWDMCMD_20210301140612558_H_INCLUDED_ 128 | -------------------------------------------------------------------------------- /Common/Util.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | #include "Util.h" 3 | 4 | HANDLE _CreateEvent(BOOL bManualReset, BOOL bInitialState, LPCTSTR lpName) 5 | { 6 | SECURITY_DESCRIPTOR sd; 7 | SECURITY_ATTRIBUTES sa; 8 | 9 | memset(&sd,0,sizeof(sd)); 10 | InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION); 11 | SetSecurityDescriptorDacl(&sd, TRUE, NULL, FALSE); 12 | memset(&sa,0,sizeof(sa)); 13 | sa.nLength=sizeof(sa); 14 | sa.lpSecurityDescriptor=&sd; 15 | 16 | return ::CreateEvent(&sa, bManualReset, bInitialState, lpName); 17 | } 18 | 19 | HANDLE _CreateFile( LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile ) 20 | { 21 | SECURITY_DESCRIPTOR sd; 22 | SECURITY_ATTRIBUTES sa; 23 | 24 | memset(&sd,0,sizeof(sd)); 25 | InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION); 26 | SetSecurityDescriptorDacl(&sd, TRUE, NULL, FALSE); 27 | memset(&sa,0,sizeof(sa)); 28 | sa.nLength=sizeof(sa); 29 | sa.lpSecurityDescriptor=&sd; 30 | 31 | return ::CreateFile( lpFileName, dwDesiredAccess, dwShareMode, &sa, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile ); 32 | } 33 | 34 | HANDLE _CreateMutex( BOOL bInitialOwner, LPCTSTR lpName ) 35 | { 36 | SECURITY_DESCRIPTOR sd; 37 | SECURITY_ATTRIBUTES sa; 38 | 39 | memset(&sd,0,sizeof(sd)); 40 | InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION); 41 | SetSecurityDescriptorDacl(&sd, TRUE, NULL, FALSE); 42 | memset(&sa,0,sizeof(sa)); 43 | sa.nLength=sizeof(sa); 44 | sa.lpSecurityDescriptor=&sd; 45 | 46 | return ::CreateMutex( &sa, bInitialOwner, lpName ); 47 | } 48 | 49 | HANDLE _CreateFileMapping( HANDLE hFile, DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPCTSTR lpName) 50 | { 51 | SECURITY_DESCRIPTOR sd; 52 | SECURITY_ATTRIBUTES sa; 53 | 54 | memset(&sd,0,sizeof(sd)); 55 | InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION); 56 | SetSecurityDescriptorDacl(&sd, TRUE, NULL, FALSE); 57 | memset(&sa,0,sizeof(sa)); 58 | sa.nLength=sizeof(sa); 59 | sa.lpSecurityDescriptor=&sd; 60 | 61 | return ::CreateFileMapping( hFile, &sa, flProtect, dwMaximumSizeHigh, dwMaximumSizeLow, lpName); 62 | } 63 | 64 | HANDLE _CreateNamedPipe( LPCTSTR lpName, DWORD dwOpenMode, DWORD dwPipeMode, DWORD nMaxInstances, DWORD nOutBufferSize, DWORD nInBufferSize, DWORD nDefaultTimeOut ) 65 | { 66 | SECURITY_DESCRIPTOR sd; 67 | SECURITY_ATTRIBUTES sa; 68 | 69 | memset(&sd,0,sizeof(sd)); 70 | InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION); 71 | SetSecurityDescriptorDacl(&sd, TRUE, NULL, FALSE); 72 | memset(&sa,0,sizeof(sa)); 73 | sa.nLength=sizeof(sa); 74 | sa.lpSecurityDescriptor=&sd; 75 | 76 | return ::CreateNamedPipe( lpName, dwOpenMode, dwPipeMode, nMaxInstances, nOutBufferSize, nInBufferSize, nDefaultTimeOut, &sa ); 77 | } 78 | 79 | BOOL _CreateDirectory( LPCTSTR lpPathName ) 80 | { 81 | BOOL bRet = FALSE; 82 | if( _tcslen(lpPathName) > 2 ){ 83 | TCHAR szCreatePath[MAX_PATH+1] = _T(""); 84 | szCreatePath[0] = lpPathName[0]; 85 | szCreatePath[1] = lpPathName[1]; 86 | 87 | for (int i = 2; i < (int)_tcslen(lpPathName); i++) { 88 | szCreatePath[i] = lpPathName[i]; 89 | if (szCreatePath[i] == '\\') { 90 | szCreatePath[i+1] = '\0'; 91 | if ( GetFileAttributes(szCreatePath) == 0xFFFFFFFF ) { 92 | bRet = ::CreateDirectory( szCreatePath, NULL ); 93 | } 94 | } 95 | } 96 | if ( GetFileAttributes(szCreatePath) == 0xFFFFFFFF ) { 97 | bRet = ::CreateDirectory( szCreatePath, NULL ); 98 | } 99 | } 100 | 101 | return bRet; 102 | } 103 | 104 | HANDLE _CreateFile2( LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile ) 105 | { 106 | HANDLE hFile = ::CreateFile( lpFileName, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile ); 107 | if( hFile == INVALID_HANDLE_VALUE ){ 108 | TCHAR* p = (TCHAR*)_tcsrchr(lpFileName, '\\'); 109 | TCHAR* szDirPath = NULL; 110 | if( p != NULL ){ 111 | int iSize = (int)(p - lpFileName); 112 | szDirPath = new TCHAR[iSize+1]; 113 | _tcsncpy_s(szDirPath, iSize+1, lpFileName, iSize); 114 | } 115 | if( szDirPath != NULL ){ 116 | _CreateDirectory(szDirPath); 117 | delete[] szDirPath; 118 | hFile = ::CreateFile( lpFileName, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile ); 119 | } 120 | } 121 | return hFile; 122 | } 123 | 124 | 125 | void _OutputDebugString(const TCHAR *format, ...) 126 | { 127 | va_list params; 128 | 129 | va_start(params, format); 130 | int iResult; 131 | TCHAR *buff; 132 | int length = _vsctprintf(format, params); 133 | buff = new TCHAR [length + 1]; 134 | if (buff != NULL) { 135 | iResult = _vstprintf_s(buff, length + 1, format, params); 136 | buff[length] = _T('\0'); 137 | OutputDebugString(buff); 138 | delete[] buff; 139 | } 140 | va_end(params); 141 | } 142 | 143 | int FileDosAgeOf(LPCTSTR filename) 144 | { 145 | WIN32_FIND_DATA data ; 146 | HANDLE h = FindFirstFile(filename,&data); 147 | if(h == INVALID_HANDLE_VALUE) return -1 ; 148 | FindClose(h) ; 149 | if(data.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY) return -1 ; 150 | FILETIME local ; 151 | FileTimeToLocalFileTime(&data.ftLastWriteTime, &local); 152 | WORD d, t ; 153 | if(!FileTimeToDosDateTime(&local, &d, &t)) return -1 ; 154 | return int(DWORD(d)<<16|DWORD(t)) ; 155 | } 156 | 157 | bool FileIsExisted(LPCTSTR filename) 158 | { 159 | return FileDosAgeOf(filename) != -1 ; 160 | } 161 | 162 | -------------------------------------------------------------------------------- /Common/ServiceUtil.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | #include "ServiceUtil.h" 3 | 4 | void InstallService(LPCWSTR lpcwszFilePath, LPCWSTR lpcwszName, LPCWSTR lpcwszViewName) 5 | { 6 | SC_HANDLE hScm = NULL; 7 | SC_HANDLE hSrv = NULL; 8 | 9 | hScm = OpenSCManagerW(0, 0, SC_MANAGER_CONNECT | SC_MANAGER_CREATE_SERVICE); 10 | if(hScm == NULL){ 11 | OutputDebugString(_T("OpenSCManager failed")); 12 | return ; 13 | } 14 | hSrv = CreateServiceW(hScm, lpcwszName, lpcwszViewName, 15 | SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS|SERVICE_INTERACTIVE_PROCESS, SERVICE_AUTO_START, 16 | SERVICE_ERROR_NORMAL, lpcwszFilePath, NULL, NULL, NULL, NULL, NULL); 17 | if(hSrv == NULL){ 18 | OutputDebugString(_T("service install failed")); 19 | CloseServiceHandle(hScm); 20 | return ; 21 | } 22 | 23 | CloseServiceHandle(hSrv); 24 | CloseServiceHandle(hScm); 25 | } 26 | 27 | void RemoveService(LPCWSTR lpcwszName) 28 | { 29 | SC_HANDLE hScm = NULL; 30 | SC_HANDLE hSrv = NULL; 31 | SERVICE_STATUS stStatus; 32 | 33 | hScm = OpenSCManagerW(0, 0, SC_MANAGER_CONNECT); 34 | if(hScm == NULL){ 35 | OutputDebugString(_T("OpenSCManager failed")); 36 | return ; 37 | } 38 | hSrv = OpenServiceW(hScm, lpcwszName, DELETE | SERVICE_STOP | SERVICE_QUERY_STATUS); 39 | if(hSrv == NULL){ 40 | OutputDebugString(_T("OpenService failed")); 41 | CloseServiceHandle(hScm); 42 | return ; 43 | } 44 | if(QueryServiceStatus(hSrv, &stStatus) == FALSE ){ 45 | OutputDebugString(_T("QueryServiceStatus failed")); 46 | CloseServiceHandle(hSrv); 47 | CloseServiceHandle(hScm); 48 | return ; 49 | } 50 | if( stStatus.dwCurrentState != SERVICE_STOPPED ){ 51 | if( ControlService(hSrv, SERVICE_CONTROL_STOP, &stStatus) == FALSE ){ 52 | OutputDebugString(_T("ControlService failed")); 53 | CloseServiceHandle(hSrv); 54 | CloseServiceHandle(hScm); 55 | return ; 56 | } 57 | } 58 | DeleteService(hSrv); 59 | 60 | CloseServiceHandle(hSrv); 61 | CloseServiceHandle(hScm); 62 | } 63 | 64 | BOOL IsInstallService(LPCWSTR lpcwszName) 65 | { 66 | SC_HANDLE hScm = NULL; 67 | SC_HANDLE hSrv = NULL; 68 | hScm = OpenSCManagerW(0, 0, SC_MANAGER_CONNECT); 69 | if(hScm == NULL){ 70 | OutputDebugString(_T("OpenSCManager failed")); 71 | return FALSE; 72 | } 73 | hSrv = OpenServiceW(hScm, lpcwszName, SERVICE_QUERY_STATUS); 74 | if(hSrv == NULL){ 75 | OutputDebugString(_T("OpenService failed")); 76 | CloseServiceHandle(hScm); 77 | return FALSE; 78 | } 79 | CloseServiceHandle(hSrv); 80 | CloseServiceHandle(hScm); 81 | 82 | return TRUE; 83 | } 84 | 85 | BOOL IsStopService(LPCWSTR lpcwszName) 86 | { 87 | BOOL bRet = FALSE; 88 | SC_HANDLE hScm = NULL; 89 | SC_HANDLE hSrv = NULL; 90 | hScm = OpenSCManagerW(0, 0, SC_MANAGER_CONNECT); 91 | if(hScm == NULL){ 92 | OutputDebugString(_T("OpenSCManager failed")); 93 | return FALSE; 94 | } 95 | hSrv = OpenServiceW(hScm, lpcwszName, SERVICE_QUERY_STATUS); 96 | if(hSrv == NULL){ 97 | OutputDebugString(_T("OpenService failed")); 98 | CloseServiceHandle(hScm); 99 | return FALSE; 100 | } 101 | SERVICE_STATUS stStatus; 102 | if( QueryServiceStatus(hSrv, &stStatus) ){ 103 | if(stStatus.dwCurrentState == SERVICE_STOPPED){ 104 | bRet = TRUE; 105 | } 106 | }else{ 107 | OutputDebugString(_T("QueryServiceStatus failed")); 108 | } 109 | 110 | CloseServiceHandle(hSrv); 111 | CloseServiceHandle(hScm); 112 | 113 | return bRet; 114 | } 115 | 116 | BOOL StartServiceCtrl(LPCWSTR lpcwszName) 117 | { 118 | SC_HANDLE hScm = NULL; 119 | SC_HANDLE hSrv = NULL; 120 | hScm = OpenSCManagerW(0, 0, SC_MANAGER_CONNECT); 121 | if(hScm == NULL){ 122 | OutputDebugString(_T("OpenSCManager failed")); 123 | return FALSE; 124 | } 125 | hSrv = OpenServiceW(hScm, lpcwszName, SERVICE_START); 126 | if(hSrv == NULL){ 127 | OutputDebugString(_T("OpenService failed")); 128 | CloseServiceHandle(hScm); 129 | return FALSE; 130 | } 131 | if( StartServiceW(hSrv, 0, NULL) == FALSE ){ 132 | OutputDebugString(_T("StartService failed")); 133 | } 134 | 135 | CloseServiceHandle(hSrv); 136 | CloseServiceHandle(hScm); 137 | 138 | return TRUE; 139 | } 140 | 141 | BOOL StopServiceCtrl(LPCWSTR lpcwszName) 142 | { 143 | SC_HANDLE hScm = NULL; 144 | SC_HANDLE hSrv = NULL; 145 | SERVICE_STATUS stStatus; 146 | 147 | hScm = OpenSCManagerW(0, 0, SC_MANAGER_CONNECT); 148 | if(hScm == NULL){ 149 | OutputDebugString(_T("OpenSCManager failed")); 150 | return FALSE; 151 | } 152 | hSrv = OpenServiceW(hScm, lpcwszName, SERVICE_STOP | SERVICE_QUERY_STATUS); 153 | if(hSrv == NULL){ 154 | OutputDebugString(_T("OpenService failed")); 155 | CloseServiceHandle(hScm); 156 | return FALSE; 157 | } 158 | if(QueryServiceStatus(hSrv, &stStatus) == FALSE ){ 159 | OutputDebugString(_T("QueryServiceStatus failed")); 160 | CloseServiceHandle(hSrv); 161 | CloseServiceHandle(hScm); 162 | return FALSE; 163 | } 164 | if( stStatus.dwCurrentState != SERVICE_STOPPED ){ 165 | if( ControlService(hSrv, SERVICE_CONTROL_STOP, &stStatus) == FALSE ){ 166 | OutputDebugString(_T("ControlService failed")); 167 | CloseServiceHandle(hSrv); 168 | CloseServiceHandle(hScm); 169 | return FALSE; 170 | } 171 | } 172 | 173 | CloseServiceHandle(hSrv); 174 | CloseServiceHandle(hScm); 175 | 176 | return TRUE; 177 | } 178 | 179 | DWORD GetServiceStatus(LPCWSTR lpcwszName) 180 | { 181 | SC_HANDLE hScm = NULL; 182 | SC_HANDLE hSrv = NULL; 183 | SERVICE_STATUS stStatus; 184 | 185 | hScm = OpenSCManagerW(0, 0, SC_MANAGER_CONNECT); 186 | if(hScm == NULL){ 187 | OutputDebugString(_T("OpenSCManager failed")); 188 | return FALSE; 189 | } 190 | hSrv = OpenServiceW(hScm, lpcwszName, SERVICE_QUERY_STATUS); 191 | if(hSrv == NULL){ 192 | OutputDebugString(_T("OpenService failed")); 193 | CloseServiceHandle(hScm); 194 | return FALSE; 195 | } 196 | if(QueryServiceStatus(hSrv, &stStatus) == FALSE ){ 197 | OutputDebugString(_T("QueryServiceStatus failed")); 198 | CloseServiceHandle(hSrv); 199 | CloseServiceHandle(hScm); 200 | return FALSE; 201 | } 202 | DWORD dwStatus = stStatus.dwCurrentState; 203 | return dwStatus; 204 | } 205 | -------------------------------------------------------------------------------- /PTwCtrl/PtDrvWrap.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | #ifndef NTSTATUS 9 | #define NTSTATUS long 10 | #endif 11 | 12 | #include "inc/PtDrvIfLib.h" 13 | 14 | 15 | namespace PRY8EAlByw { 16 | 17 | class CPtDrvWrapper 18 | { 19 | protected: 20 | using NTSTATUSMAP = std::map ; 21 | NTSTATUSMAP StatusMap_; 22 | CRITICAL_SECTION Critical_; 23 | std::wstring DevName_; 24 | HANDLE Handle_; 25 | 26 | protected: 27 | void Initialize() { 28 | InitializeCriticalSection(&Critical_); 29 | } 30 | void Finalize() { 31 | DeleteCriticalSection(&Critical_); 32 | } 33 | bool MakeStatus(DWORD status) { 34 | EnterCriticalSection(&Critical_); 35 | StatusMap_[GetCurrentThreadId()] = status ; 36 | LeaveCriticalSection(&Critical_); 37 | return status==NOERROR; 38 | } 39 | 40 | public: 41 | CPtDrvWrapper(BOOL sate, int id) { 42 | Initialize(); 43 | WCHAR wcTunerName[32]; 44 | ZeroMemory(wcTunerName,sizeof(wcTunerName)); 45 | StringCchPrintf( wcTunerName, 32, 46 | sate ? PT_DEV_BS_NAME : PT_DEV_BT_NAME , (id>>1)+1 , (id&1)+1 ) ; 47 | DevName_ = wcTunerName ; 48 | Handle_ = PtDrvOpen(wcTunerName); 49 | } 50 | ~CPtDrvWrapper() { 51 | Close(); 52 | Finalize(); 53 | } 54 | std::wstring DevName() { return DevName_; } 55 | HANDLE Handle() { return Handle_; } 56 | bool HandleAllocated() { 57 | return Handle_!=INVALID_HANDLE_VALUE ; 58 | } 59 | BOOL Close() { 60 | BOOL result=FALSE ; 61 | if(HandleAllocated()) { 62 | if(result = PtDrvClose(Handle_)) 63 | Handle_=INVALID_HANDLE_VALUE; 64 | } 65 | return result ; 66 | } 67 | static int TunerCount() { return PtDrvGetDevCount() <<1 ; } 68 | NTSTATUS LastErrorCode() { 69 | NTSTATUS code = NOERROR ; 70 | EnterCriticalSection(&Critical_); 71 | auto pos = StatusMap_.find(GetCurrentThreadId()) ; 72 | if(pos!=StatusMap_.end()) 73 | code= pos->second ; 74 | LeaveCriticalSection(&Critical_); 75 | return code; 76 | } 77 | UINT Version() { 78 | UINT version=0; 79 | MakeStatus(PtDrvGetVersion(Handle_, &version)); 80 | return version; 81 | } 82 | UINT PciClockCounter() { 83 | UINT counter=0; 84 | MakeStatus(PtDrvGetPciClockCounter(Handle_, &counter)); 85 | return counter; 86 | } 87 | bool SetPciLatencyTimer(BYTE latencyTimer) { 88 | return MakeStatus(PtDrvSetPciLatencyTimer(Handle_,latencyTimer)); 89 | } 90 | BYTE PciLatencyTimer() { 91 | BYTE latencyTimer=0; 92 | MakeStatus(PtDrvGetPciLatencyTimer(Handle_,&latencyTimer)); 93 | return latencyTimer; 94 | } 95 | bool SetLnbPower(BS_LNB_POWER lnbPower) { 96 | return MakeStatus(PtDrvSetLnbPower(Handle_,lnbPower)); 97 | } 98 | BS_LNB_POWER CurLnbPower() { 99 | BS_LNB_POWER lnbPower=BS_LNB_POWER_OFF; 100 | MakeStatus(PtDrvGetLnbPower(Handle_,&lnbPower)); 101 | return lnbPower; 102 | } 103 | bool SetTunerSleep(bool sleep) { 104 | return MakeStatus(PtDrvSetTunerSleep(Handle_,sleep)); 105 | } 106 | bool IsTunerSleeping() { 107 | bool sleep=false; 108 | MakeStatus(PtDrvGetTunerSleep(Handle_,&sleep)); 109 | return sleep; 110 | } 111 | int MaxChannels() { 112 | int channelMax=0; 113 | MakeStatus(PtDrvGetChannelMax(Handle_,&channelMax)); 114 | return channelMax; 115 | } 116 | bool GetChannelInfo(UINT channel, int *pFrequency, std::string *pName) { 117 | const char *name=NULL; 118 | bool res = MakeStatus(PtDrvGetChannelInfo(Handle_,channel,pFrequency,&name)); 119 | if(pName) *pName = std::string(name?name:""); 120 | return res; 121 | } 122 | bool SetFrequency(UINT channel) { 123 | return MakeStatus(PtDrvSetFrequency(Handle_,channel)); 124 | } 125 | UINT CurFrequency() { 126 | UINT channel=0; 127 | MakeStatus(PtDrvGetFrequency(Handle_,&channel)); 128 | return channel; 129 | } 130 | bool GetFrequencyStatus(int *clock,int *carrier) { 131 | return MakeStatus(PtDrvGetFrequencyStatus(Handle_,clock,carrier)); 132 | } 133 | bool GetCnAgc(UINT *cn100,UINT *curAgc,UINT *maxAgc) { 134 | return MakeStatus(PtDrvGetCnAgc(Handle_,cn100,curAgc,maxAgc)); 135 | } 136 | bool SetIdS(UINT id) { 137 | return MakeStatus(PtDrvSetIdS(Handle_,id)); 138 | } 139 | UINT CurIdS() { 140 | UINT id=0; 141 | MakeStatus(PtDrvGetIdS(Handle_,&id)); 142 | return id; 143 | } 144 | bool GetCorrectedErrorRate(LAYER_INDEX layIndex, TS_ERR_RATE *errRate) { 145 | return MakeStatus(PtDrvGetCorrectedErrorRate(Handle_,layIndex,errRate)); 146 | } 147 | bool ResetCorrectedErrorCount() { 148 | return MakeStatus(PtDrvResetCorrectedErrorCount(Handle_)); 149 | } 150 | UINT ErrorCount() { 151 | UINT count=0; 152 | MakeStatus(PtDrvGetErrorCount(Handle_,&count)); 153 | return count; 154 | } 155 | bool GetTunerStatus(BT_TUNER_STATUS *status) { 156 | return MakeStatus(PtDrvGetTunerStatus(Handle_,status)); 157 | } 158 | bool GetTmcc(TMCC_STATUS *tmcc) { 159 | return MakeStatus(PtDrvGetTmcc(Handle_,tmcc)); 160 | } 161 | bool GetLayerS(BS_LAYER_STATUS *layerS) { 162 | return MakeStatus(PtDrvGetLayerS(Handle_,layerS)); 163 | } 164 | bool GetLockedT(bool locked[3]) { 165 | return MakeStatus(PtDrvGetLockedT(Handle_,locked)); 166 | } 167 | bool SetLayerEnable(LAYER_MASK *layerMask) { 168 | return MakeStatus(PtDrvSetLayerEnable(Handle_,layerMask)); 169 | } 170 | bool GetLayerEnable(LAYER_MASK *layerMask) { 171 | return MakeStatus(PtDrvGetLayerEnable(Handle_,layerMask)); 172 | } 173 | bool SetStreamEnable(bool enable) { 174 | return MakeStatus(PtDrvSetStreamEnable(Handle_,enable)); 175 | } 176 | bool IsStreamEnabled() { 177 | bool enable=false; 178 | MakeStatus(PtDrvGetStreamEnable(Handle_,&enable)); 179 | return enable; 180 | } 181 | bool GetTransferInfo(DMA_INFOMATION *pInfo) { 182 | return MakeStatus(PtDrvGetTransferInfo(Handle_,pInfo)); 183 | } 184 | bool HasTransferPktErr() { 185 | bool dmaPktErr=false; 186 | MakeStatus(PtDrvGetTransferPktErr(Handle_,&dmaPktErr)); 187 | return dmaPktErr; 188 | } 189 | UINT CurStreamSize() { 190 | UINT tsSize=0; 191 | MakeStatus(PtDrvGetStreamSize(Handle_,&tsSize)); 192 | return tsSize; 193 | } 194 | bool GetStreamData(void *ts,UINT size,UINT *outSize) { 195 | return MakeStatus(PtDrvGetStreamData(Handle_,ts,size,outSize)); 196 | } 197 | bool PurgeStream() { 198 | return MakeStatus(PtDrvGetStreamFlush(Handle_)); 199 | } 200 | 201 | }; 202 | 203 | } // End of namespace PRY8EAlByw 204 | 205 | using namespace PRY8EAlByw ; 206 | -------------------------------------------------------------------------------- /BonDriver_PTx.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BonDriver_PTx", "BonDriver_PTx\BonDriver_PTx.vcxproj", "{BF775E2E-70BF-4DAA-ADB7-62D075369AC9}" 7 | EndProject 8 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PT3Ctrl", "PT3Ctrl\PT3Ctrl.vcxproj", "{DD1A4A96-3CDE-4C86-9F52-F4265E3D4B12}" 9 | ProjectSection(ProjectDependencies) = postProject 10 | {7F011A2B-5E96-4C9E-92EB-311175700C5A} = {7F011A2B-5E96-4C9E-92EB-311175700C5A} 11 | EndProjectSection 12 | EndProject 13 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTCtrl", "PTCtrl\PT1Ctrl.vcxproj", "{D67CB079-8B00-4E9A-8C6E-93852D081ED2}" 14 | ProjectSection(ProjectDependencies) = postProject 15 | {FA84AC76-9701-472A-8595-C492A508AED4} = {FA84AC76-9701-472A-8595-C492A508AED4} 16 | EndProjectSection 17 | EndProject 18 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PT1Mgr", "PT1Mgr\PT1Mgr.vcxproj", "{FA84AC76-9701-472A-8595-C492A508AED4}" 19 | EndProject 20 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PT3Mgr", "PT3Mgr\PT3Mgr.vcxproj", "{7F011A2B-5E96-4C9E-92EB-311175700C5A}" 21 | EndProject 22 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTxCtrl", "PTxCtrl\PTxCtrl.vcxproj", "{746C59C3-4CF6-4F1B-99B5-5922DB5678DD}" 23 | ProjectSection(ProjectDependencies) = postProject 24 | {7F011A2B-5E96-4C9E-92EB-311175700C5A} = {7F011A2B-5E96-4C9E-92EB-311175700C5A} 25 | {FA84AC76-9701-472A-8595-C492A508AED4} = {FA84AC76-9701-472A-8595-C492A508AED4} 26 | EndProjectSection 27 | EndProject 28 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTxScanS", "PTxScanS\PTxScanS.vcxproj", "{05E2C054-5352-4A1B-A9DC-894C9086B652}" 29 | EndProject 30 | Global 31 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 32 | Debug|Win32 = Debug|Win32 33 | Debug|x64 = Debug|x64 34 | Release|Win32 = Release|Win32 35 | Release|x64 = Release|x64 36 | EndGlobalSection 37 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 38 | {BF775E2E-70BF-4DAA-ADB7-62D075369AC9}.Debug|Win32.ActiveCfg = Debug|Win32 39 | {BF775E2E-70BF-4DAA-ADB7-62D075369AC9}.Debug|Win32.Build.0 = Debug|Win32 40 | {BF775E2E-70BF-4DAA-ADB7-62D075369AC9}.Debug|x64.ActiveCfg = Debug|x64 41 | {BF775E2E-70BF-4DAA-ADB7-62D075369AC9}.Debug|x64.Build.0 = Debug|x64 42 | {BF775E2E-70BF-4DAA-ADB7-62D075369AC9}.Release|Win32.ActiveCfg = Release|Win32 43 | {BF775E2E-70BF-4DAA-ADB7-62D075369AC9}.Release|Win32.Build.0 = Release|Win32 44 | {BF775E2E-70BF-4DAA-ADB7-62D075369AC9}.Release|x64.ActiveCfg = Release|x64 45 | {BF775E2E-70BF-4DAA-ADB7-62D075369AC9}.Release|x64.Build.0 = Release|x64 46 | {DD1A4A96-3CDE-4C86-9F52-F4265E3D4B12}.Debug|Win32.ActiveCfg = Debug|Win32 47 | {DD1A4A96-3CDE-4C86-9F52-F4265E3D4B12}.Debug|Win32.Build.0 = Debug|Win32 48 | {DD1A4A96-3CDE-4C86-9F52-F4265E3D4B12}.Debug|x64.ActiveCfg = Debug|x64 49 | {DD1A4A96-3CDE-4C86-9F52-F4265E3D4B12}.Debug|x64.Build.0 = Debug|x64 50 | {DD1A4A96-3CDE-4C86-9F52-F4265E3D4B12}.Release|Win32.ActiveCfg = Release|Win32 51 | {DD1A4A96-3CDE-4C86-9F52-F4265E3D4B12}.Release|Win32.Build.0 = Release|Win32 52 | {DD1A4A96-3CDE-4C86-9F52-F4265E3D4B12}.Release|x64.ActiveCfg = Release|x64 53 | {DD1A4A96-3CDE-4C86-9F52-F4265E3D4B12}.Release|x64.Build.0 = Release|x64 54 | {D67CB079-8B00-4E9A-8C6E-93852D081ED2}.Debug|Win32.ActiveCfg = Debug|Win32 55 | {D67CB079-8B00-4E9A-8C6E-93852D081ED2}.Debug|Win32.Build.0 = Debug|Win32 56 | {D67CB079-8B00-4E9A-8C6E-93852D081ED2}.Debug|x64.ActiveCfg = Debug|x64 57 | {D67CB079-8B00-4E9A-8C6E-93852D081ED2}.Debug|x64.Build.0 = Debug|x64 58 | {D67CB079-8B00-4E9A-8C6E-93852D081ED2}.Release|Win32.ActiveCfg = Release|Win32 59 | {D67CB079-8B00-4E9A-8C6E-93852D081ED2}.Release|Win32.Build.0 = Release|Win32 60 | {D67CB079-8B00-4E9A-8C6E-93852D081ED2}.Release|x64.ActiveCfg = Release|x64 61 | {D67CB079-8B00-4E9A-8C6E-93852D081ED2}.Release|x64.Build.0 = Release|x64 62 | {FA84AC76-9701-472A-8595-C492A508AED4}.Debug|Win32.ActiveCfg = Debug|Win32 63 | {FA84AC76-9701-472A-8595-C492A508AED4}.Debug|Win32.Build.0 = Debug|Win32 64 | {FA84AC76-9701-472A-8595-C492A508AED4}.Debug|x64.ActiveCfg = Debug|x64 65 | {FA84AC76-9701-472A-8595-C492A508AED4}.Debug|x64.Build.0 = Debug|x64 66 | {FA84AC76-9701-472A-8595-C492A508AED4}.Release|Win32.ActiveCfg = Release|Win32 67 | {FA84AC76-9701-472A-8595-C492A508AED4}.Release|Win32.Build.0 = Release|Win32 68 | {FA84AC76-9701-472A-8595-C492A508AED4}.Release|x64.ActiveCfg = Release|x64 69 | {FA84AC76-9701-472A-8595-C492A508AED4}.Release|x64.Build.0 = Release|x64 70 | {7F011A2B-5E96-4C9E-92EB-311175700C5A}.Debug|Win32.ActiveCfg = Debug|Win32 71 | {7F011A2B-5E96-4C9E-92EB-311175700C5A}.Debug|Win32.Build.0 = Debug|Win32 72 | {7F011A2B-5E96-4C9E-92EB-311175700C5A}.Debug|x64.ActiveCfg = Debug|x64 73 | {7F011A2B-5E96-4C9E-92EB-311175700C5A}.Debug|x64.Build.0 = Debug|x64 74 | {7F011A2B-5E96-4C9E-92EB-311175700C5A}.Release|Win32.ActiveCfg = Release|Win32 75 | {7F011A2B-5E96-4C9E-92EB-311175700C5A}.Release|Win32.Build.0 = Release|Win32 76 | {7F011A2B-5E96-4C9E-92EB-311175700C5A}.Release|x64.ActiveCfg = Release|x64 77 | {7F011A2B-5E96-4C9E-92EB-311175700C5A}.Release|x64.Build.0 = Release|x64 78 | {746C59C3-4CF6-4F1B-99B5-5922DB5678DD}.Debug|Win32.ActiveCfg = Debug|Win32 79 | {746C59C3-4CF6-4F1B-99B5-5922DB5678DD}.Debug|Win32.Build.0 = Debug|Win32 80 | {746C59C3-4CF6-4F1B-99B5-5922DB5678DD}.Debug|x64.ActiveCfg = Debug|x64 81 | {746C59C3-4CF6-4F1B-99B5-5922DB5678DD}.Debug|x64.Build.0 = Debug|x64 82 | {746C59C3-4CF6-4F1B-99B5-5922DB5678DD}.Release|Win32.ActiveCfg = Release|Win32 83 | {746C59C3-4CF6-4F1B-99B5-5922DB5678DD}.Release|Win32.Build.0 = Release|Win32 84 | {746C59C3-4CF6-4F1B-99B5-5922DB5678DD}.Release|x64.ActiveCfg = Release|x64 85 | {746C59C3-4CF6-4F1B-99B5-5922DB5678DD}.Release|x64.Build.0 = Release|x64 86 | {05E2C054-5352-4A1B-A9DC-894C9086B652}.Debug|Win32.ActiveCfg = Debug|Win32 87 | {05E2C054-5352-4A1B-A9DC-894C9086B652}.Debug|Win32.Build.0 = Debug|Win32 88 | {05E2C054-5352-4A1B-A9DC-894C9086B652}.Debug|x64.ActiveCfg = Debug|x64 89 | {05E2C054-5352-4A1B-A9DC-894C9086B652}.Debug|x64.Build.0 = Debug|x64 90 | {05E2C054-5352-4A1B-A9DC-894C9086B652}.Release|Win32.ActiveCfg = Release|Win32 91 | {05E2C054-5352-4A1B-A9DC-894C9086B652}.Release|Win32.Build.0 = Release|Win32 92 | {05E2C054-5352-4A1B-A9DC-894C9086B652}.Release|x64.ActiveCfg = Release|x64 93 | {05E2C054-5352-4A1B-A9DC-894C9086B652}.Release|x64.Build.0 = Release|x64 94 | EndGlobalSection 95 | GlobalSection(SolutionProperties) = preSolution 96 | HideSolutionNode = FALSE 97 | EndGlobalSection 98 | EndGlobal 99 | -------------------------------------------------------------------------------- /PTwCtrl/PTwCtrl.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {58953a71-cce4-4d20-9564-99a06c6b07c8} 10 | 11 | 12 | {58b153c5-9cc0-40f2-9d0d-1ee0cfe7ecd6} 13 | 14 | 15 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 16 | h;hpp;hxx;hm;inl;inc;xsd 17 | 18 | 19 | {04de4310-d32a-48e1-8c3b-baa05fea9a16} 20 | 21 | 22 | {a285f7a0-7bea-4747-aaf6-78d9f4845d0f} 23 | 24 | 25 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 26 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav 27 | 28 | 29 | 30 | 31 | ソース ファイル 32 | 33 | 34 | ソース ファイル 35 | 36 | 37 | ソース ファイル 38 | 39 | 40 | ソース ファイル 41 | 42 | 43 | ソース ファイル 44 | 45 | 46 | ソース ファイル\Common 47 | 48 | 49 | ソース ファイル\Common 50 | 51 | 52 | ソース ファイル\Common 53 | 54 | 55 | ソース ファイル\Common 56 | 57 | 58 | ソース ファイル\Common 59 | 60 | 61 | ソース ファイル\Common 62 | 63 | 64 | ソース ファイル\Common 65 | 66 | 67 | ソース ファイル\Common 68 | 69 | 70 | ソース ファイル 71 | 72 | 73 | ソース ファイル 74 | 75 | 76 | ソース ファイル\Common 77 | 78 | 79 | ソース ファイル\Common 80 | 81 | 82 | 83 | 84 | ヘッダー ファイル 85 | 86 | 87 | ヘッダー ファイル 88 | 89 | 90 | ヘッダー ファイル 91 | 92 | 93 | ヘッダー ファイル 94 | 95 | 96 | ヘッダー ファイル 97 | 98 | 99 | ヘッダー ファイル 100 | 101 | 102 | ヘッダー ファイル\inc 103 | 104 | 105 | ヘッダー ファイル\Common 106 | 107 | 108 | ヘッダー ファイル\Common 109 | 110 | 111 | ヘッダー ファイル\Common 112 | 113 | 114 | ヘッダー ファイル\Common 115 | 116 | 117 | ヘッダー ファイル\Common 118 | 119 | 120 | ヘッダー ファイル\Common 121 | 122 | 123 | ヘッダー ファイル\Common 124 | 125 | 126 | ヘッダー ファイル\Common 127 | 128 | 129 | ヘッダー ファイル\Common 130 | 131 | 132 | ソース ファイル\Common 133 | 134 | 135 | ヘッダー ファイル 136 | 137 | 138 | ヘッダー ファイル\Common 139 | 140 | 141 | ヘッダー ファイル 142 | 143 | 144 | ヘッダー ファイル 145 | 146 | 147 | ヘッダー ファイル\inc 148 | 149 | 150 | ヘッダー ファイル\inc 151 | 152 | 153 | ヘッダー ファイル\Common 154 | 155 | 156 | ヘッダー ファイル\Common 157 | 158 | 159 | ヘッダー ファイル 160 | 161 | 162 | ヘッダー ファイル\Common 163 | 164 | 165 | 166 | 167 | リソース ファイル 168 | 169 | 170 | リソース ファイル 171 | 172 | 173 | 174 | 175 | リソース ファイル 176 | 177 | 178 | -------------------------------------------------------------------------------- /BonDriver_PTx+PTw.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BonDriver_PTx", "BonDriver_PTx\BonDriver_PTx.vcxproj", "{BF775E2E-70BF-4DAA-ADB7-62D075369AC9}" 7 | EndProject 8 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PT3Ctrl", "PT3Ctrl\PT3Ctrl.vcxproj", "{DD1A4A96-3CDE-4C86-9F52-F4265E3D4B12}" 9 | ProjectSection(ProjectDependencies) = postProject 10 | {7F011A2B-5E96-4C9E-92EB-311175700C5A} = {7F011A2B-5E96-4C9E-92EB-311175700C5A} 11 | EndProjectSection 12 | EndProject 13 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTCtrl", "PTCtrl\PT1Ctrl.vcxproj", "{D67CB079-8B00-4E9A-8C6E-93852D081ED2}" 14 | ProjectSection(ProjectDependencies) = postProject 15 | {FA84AC76-9701-472A-8595-C492A508AED4} = {FA84AC76-9701-472A-8595-C492A508AED4} 16 | EndProjectSection 17 | EndProject 18 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PT1Mgr", "PT1Mgr\PT1Mgr.vcxproj", "{FA84AC76-9701-472A-8595-C492A508AED4}" 19 | EndProject 20 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PT3Mgr", "PT3Mgr\PT3Mgr.vcxproj", "{7F011A2B-5E96-4C9E-92EB-311175700C5A}" 21 | EndProject 22 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTxCtrl", "PTxCtrl\PTxCtrl.vcxproj", "{746C59C3-4CF6-4F1B-99B5-5922DB5678DD}" 23 | ProjectSection(ProjectDependencies) = postProject 24 | {7F011A2B-5E96-4C9E-92EB-311175700C5A} = {7F011A2B-5E96-4C9E-92EB-311175700C5A} 25 | {FA84AC76-9701-472A-8595-C492A508AED4} = {FA84AC76-9701-472A-8595-C492A508AED4} 26 | EndProjectSection 27 | EndProject 28 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTwCtrl", "PTwCtrl\PTwCtrl.vcxproj", "{8C72EB9A-2DC3-48BA-8809-C1D4B7DDD805}" 29 | EndProject 30 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PTxScanS", "PTxScanS\PTxScanS.vcxproj", "{05E2C054-5352-4A1B-A9DC-894C9086B652}" 31 | EndProject 32 | Global 33 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 34 | Debug|Win32 = Debug|Win32 35 | Debug|x64 = Debug|x64 36 | Release|Win32 = Release|Win32 37 | Release|x64 = Release|x64 38 | EndGlobalSection 39 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 40 | {BF775E2E-70BF-4DAA-ADB7-62D075369AC9}.Debug|Win32.ActiveCfg = Debug|Win32 41 | {BF775E2E-70BF-4DAA-ADB7-62D075369AC9}.Debug|Win32.Build.0 = Debug|Win32 42 | {BF775E2E-70BF-4DAA-ADB7-62D075369AC9}.Debug|x64.ActiveCfg = Debug|x64 43 | {BF775E2E-70BF-4DAA-ADB7-62D075369AC9}.Debug|x64.Build.0 = Debug|x64 44 | {BF775E2E-70BF-4DAA-ADB7-62D075369AC9}.Release|Win32.ActiveCfg = Release|Win32 45 | {BF775E2E-70BF-4DAA-ADB7-62D075369AC9}.Release|Win32.Build.0 = Release|Win32 46 | {BF775E2E-70BF-4DAA-ADB7-62D075369AC9}.Release|x64.ActiveCfg = Release|x64 47 | {BF775E2E-70BF-4DAA-ADB7-62D075369AC9}.Release|x64.Build.0 = Release|x64 48 | {DD1A4A96-3CDE-4C86-9F52-F4265E3D4B12}.Debug|Win32.ActiveCfg = Debug|Win32 49 | {DD1A4A96-3CDE-4C86-9F52-F4265E3D4B12}.Debug|Win32.Build.0 = Debug|Win32 50 | {DD1A4A96-3CDE-4C86-9F52-F4265E3D4B12}.Debug|x64.ActiveCfg = Debug|x64 51 | {DD1A4A96-3CDE-4C86-9F52-F4265E3D4B12}.Debug|x64.Build.0 = Debug|x64 52 | {DD1A4A96-3CDE-4C86-9F52-F4265E3D4B12}.Release|Win32.ActiveCfg = Release|Win32 53 | {DD1A4A96-3CDE-4C86-9F52-F4265E3D4B12}.Release|Win32.Build.0 = Release|Win32 54 | {DD1A4A96-3CDE-4C86-9F52-F4265E3D4B12}.Release|x64.ActiveCfg = Release|x64 55 | {DD1A4A96-3CDE-4C86-9F52-F4265E3D4B12}.Release|x64.Build.0 = Release|x64 56 | {D67CB079-8B00-4E9A-8C6E-93852D081ED2}.Debug|Win32.ActiveCfg = Debug|Win32 57 | {D67CB079-8B00-4E9A-8C6E-93852D081ED2}.Debug|Win32.Build.0 = Debug|Win32 58 | {D67CB079-8B00-4E9A-8C6E-93852D081ED2}.Debug|x64.ActiveCfg = Debug|x64 59 | {D67CB079-8B00-4E9A-8C6E-93852D081ED2}.Debug|x64.Build.0 = Debug|x64 60 | {D67CB079-8B00-4E9A-8C6E-93852D081ED2}.Release|Win32.ActiveCfg = Release|Win32 61 | {D67CB079-8B00-4E9A-8C6E-93852D081ED2}.Release|Win32.Build.0 = Release|Win32 62 | {D67CB079-8B00-4E9A-8C6E-93852D081ED2}.Release|x64.ActiveCfg = Release|x64 63 | {D67CB079-8B00-4E9A-8C6E-93852D081ED2}.Release|x64.Build.0 = Release|x64 64 | {FA84AC76-9701-472A-8595-C492A508AED4}.Debug|Win32.ActiveCfg = Debug|Win32 65 | {FA84AC76-9701-472A-8595-C492A508AED4}.Debug|Win32.Build.0 = Debug|Win32 66 | {FA84AC76-9701-472A-8595-C492A508AED4}.Debug|x64.ActiveCfg = Debug|x64 67 | {FA84AC76-9701-472A-8595-C492A508AED4}.Debug|x64.Build.0 = Debug|x64 68 | {FA84AC76-9701-472A-8595-C492A508AED4}.Release|Win32.ActiveCfg = Release|Win32 69 | {FA84AC76-9701-472A-8595-C492A508AED4}.Release|Win32.Build.0 = Release|Win32 70 | {FA84AC76-9701-472A-8595-C492A508AED4}.Release|x64.ActiveCfg = Release|x64 71 | {FA84AC76-9701-472A-8595-C492A508AED4}.Release|x64.Build.0 = Release|x64 72 | {7F011A2B-5E96-4C9E-92EB-311175700C5A}.Debug|Win32.ActiveCfg = Debug|Win32 73 | {7F011A2B-5E96-4C9E-92EB-311175700C5A}.Debug|Win32.Build.0 = Debug|Win32 74 | {7F011A2B-5E96-4C9E-92EB-311175700C5A}.Debug|x64.ActiveCfg = Debug|x64 75 | {7F011A2B-5E96-4C9E-92EB-311175700C5A}.Debug|x64.Build.0 = Debug|x64 76 | {7F011A2B-5E96-4C9E-92EB-311175700C5A}.Release|Win32.ActiveCfg = Release|Win32 77 | {7F011A2B-5E96-4C9E-92EB-311175700C5A}.Release|Win32.Build.0 = Release|Win32 78 | {7F011A2B-5E96-4C9E-92EB-311175700C5A}.Release|x64.ActiveCfg = Release|x64 79 | {7F011A2B-5E96-4C9E-92EB-311175700C5A}.Release|x64.Build.0 = Release|x64 80 | {746C59C3-4CF6-4F1B-99B5-5922DB5678DD}.Debug|Win32.ActiveCfg = Debug|Win32 81 | {746C59C3-4CF6-4F1B-99B5-5922DB5678DD}.Debug|Win32.Build.0 = Debug|Win32 82 | {746C59C3-4CF6-4F1B-99B5-5922DB5678DD}.Debug|x64.ActiveCfg = Debug|x64 83 | {746C59C3-4CF6-4F1B-99B5-5922DB5678DD}.Debug|x64.Build.0 = Debug|x64 84 | {746C59C3-4CF6-4F1B-99B5-5922DB5678DD}.Release|Win32.ActiveCfg = Release|Win32 85 | {746C59C3-4CF6-4F1B-99B5-5922DB5678DD}.Release|Win32.Build.0 = Release|Win32 86 | {746C59C3-4CF6-4F1B-99B5-5922DB5678DD}.Release|x64.ActiveCfg = Release|x64 87 | {746C59C3-4CF6-4F1B-99B5-5922DB5678DD}.Release|x64.Build.0 = Release|x64 88 | {8C72EB9A-2DC3-48BA-8809-C1D4B7DDD805}.Debug|Win32.ActiveCfg = Debug|Win32 89 | {8C72EB9A-2DC3-48BA-8809-C1D4B7DDD805}.Debug|Win32.Build.0 = Debug|Win32 90 | {8C72EB9A-2DC3-48BA-8809-C1D4B7DDD805}.Debug|x64.ActiveCfg = Debug|x64 91 | {8C72EB9A-2DC3-48BA-8809-C1D4B7DDD805}.Debug|x64.Build.0 = Debug|x64 92 | {8C72EB9A-2DC3-48BA-8809-C1D4B7DDD805}.Release|Win32.ActiveCfg = Release|Win32 93 | {8C72EB9A-2DC3-48BA-8809-C1D4B7DDD805}.Release|Win32.Build.0 = Release|Win32 94 | {8C72EB9A-2DC3-48BA-8809-C1D4B7DDD805}.Release|x64.ActiveCfg = Release|x64 95 | {8C72EB9A-2DC3-48BA-8809-C1D4B7DDD805}.Release|x64.Build.0 = Release|x64 96 | {05E2C054-5352-4A1B-A9DC-894C9086B652}.Debug|Win32.ActiveCfg = Debug|Win32 97 | {05E2C054-5352-4A1B-A9DC-894C9086B652}.Debug|Win32.Build.0 = Debug|Win32 98 | {05E2C054-5352-4A1B-A9DC-894C9086B652}.Debug|x64.ActiveCfg = Debug|x64 99 | {05E2C054-5352-4A1B-A9DC-894C9086B652}.Debug|x64.Build.0 = Debug|x64 100 | {05E2C054-5352-4A1B-A9DC-894C9086B652}.Release|Win32.ActiveCfg = Release|Win32 101 | {05E2C054-5352-4A1B-A9DC-894C9086B652}.Release|Win32.Build.0 = Release|Win32 102 | {05E2C054-5352-4A1B-A9DC-894C9086B652}.Release|x64.ActiveCfg = Release|x64 103 | {05E2C054-5352-4A1B-A9DC-894C9086B652}.Release|x64.Build.0 = Release|x64 104 | EndGlobalSection 105 | GlobalSection(SolutionProperties) = preSolution 106 | HideSolutionNode = FALSE 107 | EndGlobalSection 108 | EndGlobal 109 | -------------------------------------------------------------------------------- /PT3Mgr/PT3Mgr.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Debug 10 | x64 11 | 12 | 13 | Release 14 | Win32 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | {7F011A2B-5E96-4C9E-92EB-311175700C5A} 23 | PT3Mgr 24 | Win32Proj 25 | 8.1 26 | 27 | 28 | 29 | StaticLibrary 30 | v140 31 | Unicode 32 | true 33 | 34 | 35 | StaticLibrary 36 | v140 37 | Unicode 38 | true 39 | 40 | 41 | StaticLibrary 42 | v140 43 | Unicode 44 | 45 | 46 | StaticLibrary 47 | v140 48 | Unicode 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | <_ProjectFileVersion>14.0.24720.0 68 | 69 | 70 | $(SolutionDir)LibOut\$(Configuration)\$(Platform)\ 71 | $(SolutionDir)Intermediate\$(ProjectName)\$(Configuration)\$(Platform)\ 72 | 73 | 74 | $(SolutionDir)LibOut\$(Configuration)\$(Platform)\ 75 | $(SolutionDir)Intermediate\$(ProjectName)\$(Configuration)\$(Platform)\ 76 | 77 | 78 | $(SolutionDir)LibOut\$(Configuration)\$(Platform)\ 79 | $(SolutionDir)Intermediate\$(ProjectName)\$(Configuration)\$(Platform)\ 80 | 81 | 82 | $(SolutionDir)LibOut\$(Configuration)\$(Platform)\ 83 | $(SolutionDir)Intermediate\$(ProjectName)\$(Configuration)\$(Platform)\ 84 | 85 | 86 | 87 | Disabled 88 | WIN32;PT_VER=3;_DEBUG;_LIB;%(PreprocessorDefinitions) 89 | true 90 | EnableFastChecks 91 | MultiThreadedDebugDLL 92 | Use 93 | Level3 94 | EditAndContinue 95 | 96 | 97 | 98 | 99 | Disabled 100 | WIN32;PT_VER=3;_DEBUG;_LIB;%(PreprocessorDefinitions) 101 | EnableFastChecks 102 | MultiThreadedDebugDLL 103 | Use 104 | Level3 105 | ProgramDatabase 106 | 107 | 108 | 109 | 110 | MaxSpeed 111 | true 112 | WIN32;PT_VER=3;NDEBUG;_LIB;%(PreprocessorDefinitions) 113 | MultiThreadedDLL 114 | true 115 | Use 116 | Level3 117 | ProgramDatabase 118 | 119 | 120 | 121 | 122 | MaxSpeed 123 | true 124 | WIN32;PT_VER=3;NDEBUG;_LIB;%(PreprocessorDefinitions) 125 | MultiThreadedDLL 126 | true 127 | Use 128 | Level3 129 | ProgramDatabase 130 | 131 | 132 | 133 | 134 | 135 | 136 | CppHeader 137 | 138 | 139 | 140 | 141 | Create 142 | Create 143 | Create 144 | Create 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | -------------------------------------------------------------------------------- /PT1Mgr/PT1Mgr.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Debug 10 | x64 11 | 12 | 13 | Release 14 | Win32 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | {FA84AC76-9701-472A-8595-C492A508AED4} 23 | PT1Mgr 24 | Win32Proj 25 | 8.1 26 | 27 | 28 | 29 | StaticLibrary 30 | v140 31 | Unicode 32 | true 33 | 34 | 35 | StaticLibrary 36 | v140 37 | Unicode 38 | true 39 | 40 | 41 | StaticLibrary 42 | v140 43 | Unicode 44 | 45 | 46 | StaticLibrary 47 | v140 48 | Unicode 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | <_ProjectFileVersion>14.0.24720.0 68 | 69 | 70 | $(SolutionDir)LibOut\$(Configuration)\$(Platform)\ 71 | $(SolutionDir)Intermediate\$(ProjectName)\$(Configuration)\$(Platform)\ 72 | 73 | 74 | $(SolutionDir)Intermediate\$(ProjectName)\$(Configuration)\$(Platform)\ 75 | $(SolutionDir)LibOut\$(Configuration)\$(Platform)\ 76 | 77 | 78 | $(SolutionDir)LibOut\$(Configuration)\$(Platform)\ 79 | $(SolutionDir)Intermediate\$(ProjectName)\$(Configuration)\$(Platform)\ 80 | 81 | 82 | $(SolutionDir)Intermediate\$(ProjectName)\$(Configuration)\$(Platform)\ 83 | $(SolutionDir)LibOut\$(Configuration)\$(Platform)\ 84 | 85 | 86 | 87 | Disabled 88 | WIN32;PT_VER=1;_DEBUG;_LIB;%(PreprocessorDefinitions) 89 | true 90 | EnableFastChecks 91 | MultiThreadedDebugDLL 92 | Use 93 | Level3 94 | EditAndContinue 95 | 96 | 97 | 98 | 99 | Disabled 100 | WIN32;PT_VER=1;_DEBUG;_LIB;%(PreprocessorDefinitions) 101 | EnableFastChecks 102 | MultiThreadedDebugDLL 103 | Use 104 | Level3 105 | ProgramDatabase 106 | 107 | 108 | 109 | 110 | MaxSpeed 111 | true 112 | WIN32;PT_VER=1;NDEBUG;_LIB;%(PreprocessorDefinitions) 113 | MultiThreadedDLL 114 | true 115 | Use 116 | Level3 117 | ProgramDatabase 118 | 119 | 120 | 121 | 122 | MaxSpeed 123 | true 124 | WIN32;PT_VER=1;NDEBUG;_LIB;%(PreprocessorDefinitions) 125 | MultiThreadedDLL 126 | true 127 | Use 128 | Level3 129 | ProgramDatabase 130 | 131 | 132 | 133 | 134 | 135 | 136 | CppHeader 137 | 138 | 139 | 140 | 141 | 142 | 143 | Create 144 | Create 145 | Create 146 | Create 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | -------------------------------------------------------------------------------- /PTxScanS/PTxScanS.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Debug 10 | x64 11 | 12 | 13 | Release 14 | Win32 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | {05E2C054-5352-4A1B-A9DC-894C9086B652} 23 | PTxScanS 24 | Win32Proj 25 | 8.1 26 | 27 | 28 | 29 | Application 30 | v140 31 | Unicode 32 | true 33 | 34 | 35 | Application 36 | v140 37 | Unicode 38 | true 39 | 40 | 41 | Application 42 | v140 43 | Unicode 44 | 45 | 46 | Application 47 | v140 48 | Unicode 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | <_ProjectFileVersion>14.0.25431.1 68 | 69 | 70 | $(SolutionDir)$(Configuration)\$(Platform)\ 71 | $(SolutionDir)Intermediate\$(ProjectName)\$(Configuration)\$(Platform)\ 72 | true 73 | 74 | 75 | $(SolutionDir)$(Configuration)\$(Platform)\ 76 | $(SolutionDir)Intermediate\$(ProjectName)\$(Configuration)\$(Platform)\ 77 | true 78 | 79 | 80 | $(SolutionDir)$(Configuration)\$(Platform)\ 81 | $(SolutionDir)Intermediate\$(ProjectName)\$(Configuration)\$(Platform)\ 82 | false 83 | 84 | 85 | $(SolutionDir)$(Configuration)\$(Platform)\ 86 | $(SolutionDir)Intermediate\$(ProjectName)\$(Configuration)\$(Platform)\ 87 | false 88 | 89 | 90 | 91 | Disabled 92 | WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) 93 | true 94 | EnableFastChecks 95 | MultiThreadedDebugDLL 96 | Use 97 | Level3 98 | EditAndContinue 99 | 100 | 101 | true 102 | Console 103 | MachineX86 104 | 105 | 106 | 107 | 108 | Disabled 109 | WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) 110 | EnableFastChecks 111 | MultiThreadedDebugDLL 112 | Use 113 | Level3 114 | ProgramDatabase 115 | 116 | 117 | true 118 | Console 119 | 120 | 121 | 122 | 123 | MaxSpeed 124 | true 125 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 126 | MultiThreadedDLL 127 | true 128 | Use 129 | Level3 130 | ProgramDatabase 131 | 132 | 133 | true 134 | Console 135 | true 136 | true 137 | MachineX86 138 | 139 | 140 | 141 | 142 | MaxSpeed 143 | true 144 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 145 | MultiThreadedDLL 146 | true 147 | Use 148 | Level3 149 | ProgramDatabase 150 | 151 | 152 | true 153 | Console 154 | true 155 | true 156 | 157 | 158 | 159 | 160 | 161 | Create 162 | Create 163 | Create 164 | Create 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | -------------------------------------------------------------------------------- /Readme_MOD.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## ●オリジナルのBonDriver_PT3(人柱版4)およびBonDriver_PT-ST(人柱版3)との使用する上での相違点 4 | 5 | ### ■ サーバー常駐時間をコントロールしてシステムの動作を安定化。 6 | 7 | サーバー常駐時間をコントロールしてシステムの動作の安定を図るオプションを追加しました。 8 | 9 | 下記のサーバー非アクティブ化までの常駐時間を多めに設定すると、クライアント再接続時のサーバー再起動のタイムラグを最小限に抑えることができます。(Default:5000msec) 10 | ```ini 11 | [SET] 12 | ; サーバー非アクティブ化までの常駐時間 13 | xServiceDeactWaitMSec=5000 14 | ``` 15 | - [mod7.11 BSAlmighty+DeltaHz+DefSpace+PTx+PTxScanS+SparePTw+UseHRTimer+SrvDeactWait fixes](https://github.com/hyrolean/BonDriver_PTx-ST_mod/releases/tag/mod7.11) 16 | (Described by 2025/01/27 LVhJPic0JSk5LiQ1ITskKVk9UGBg) 17 | 18 | ### ■ ハイレゾリューションタイマー導入によるストリーム転送とチャンネルスキャンの高速化。 19 | 20 | Windows10 1803 以降でサポートされた高精度割込みタイマーを導入することにより、チャンネルスキャンのもたつきや、ストリーム転送のラグを極限まで抑えることを可能としました。 21 | 22 | 高精度割込みタイマーを有効にするには、BonDriver_PTx-ST.ini の以下の項目を"1"に変更してください。 23 | ```ini 24 | [SET] 25 | ; UseHRTimer=0 を UseHRTimer=1 に変更 26 | UseHRTimer=1 27 | ``` 28 | - [mod7.4a BSAlmighty+DeltaHz+DefSpace+PTx+PTxScanS+SparePTw+UseHRTimer fixes](https://github.com/hyrolean/BonDriver_PTx-ST_mod/releases/tag/mod7.4a) 29 | (Described by 2022/04/15 LVhJPic0JSk5LiQ1ITskKVk9UGBg) 30 | 31 | *※mod7.4aより、CSV形式のチャンネルファイル(.ch.txt)もBonDrvier_PTxのチャンネルファイルとして扱えるようになりました。カンマで区切るだけのシンプル方式のチャンネル記述形式で出来ており、通し番号なども必要ない為、チャンネル定義ファイル(.ChSet.txt)よりも簡単な構造になっています。CSV形式のチャンネルファイル(.ch.txt)のサンプルファイルについては、[Extraフォルダ](./Extra)を参照してみてください。* 32 | 33 | ### ■ PTxの代替としてのPTwチューナー差し替えの簡略化。 34 | 35 | 以下の工程を追うことにより、PTwのBonDriverをPTxのBonDriverで簡単に差し替えすることが出来るようになりました。 36 | 37 | 38 | 以下のファイル群をアプリ側のBonDriverフォルダに配置… 39 | ``` 40 | BonDriver_PTx-S.dll ← BS/CS110 複合チューナー S側ID自動判別 (BonDriver_PTx.dllをリネームしたもの) 41 | BonDriver_PTx-T.dll ← 地デジ 複合チューナー T側ID自動判別 (BonDriver_PTx.dllをリネームしたもの) 42 | BonDriver_PTx-ST.ini 43 | PTxCtrl.exe ← PT1/PT2/PT3 自動判別PT制御実行ファイル(※pt2wdmだけ使用の場合は無くても可) 44 | PTwCtrl.exe ← pt2wdm 制御実行ファイル (PTwCtrl.vcxprojをコンパイルして出来上がったファイル) 45 | ``` 46 | そして、BonDriver_PTx-ST.ini ファイルの以下の部分を下記のように修正… 47 | ```ini 48 | [SET] 49 | ; xSparePTw=0 を xSparePTw=1 に変更 50 | xSparePTw=1 51 | ``` 52 | すると、現在使用しているデバイスドライバが EARTHSOFT 純正であるか pt2wdm であるかに関わらず、適切なデバイスを自動判別して任意のチューナーを開くことが出来るようになります。 53 | EARTHSOFT純正ドライバからpt2wdmのドライバに対応したBonDriverに挿げ替える作業は、実質上記iniファイルの一か所を修正する作業だけで済むため、BonDriverの名前変更などの煩わしい一連の作業を省略できます。 54 | 55 | - [mod6.1 BSAlmighty+DeltaHz+DefSpace+PTx+PTxScanS+SparePTw fixes](https://github.com/hyrolean/BonDriver_PTx-ST_mod/releases/tag/mod6.1)(***※[PTwCtrl.exe](https://github.com/hyrolean/BonDriver_PTx-ST_mod/tree/master/PTwCtrl)の構築が別途必要***) 56 | (Described by 2022/03/11 LVhJPic0JSk5LiQ1ITskKVk9UGBg) 57 | 58 | ### ■ サテライト側の.ChSet.txtファイルを自動生成するプログラム PTxScanS.exe を追加。 59 | 60 | 各々のBonDriverが存在するディレクトリにPTxScanS.exeを配置して実行し、指示に従うだけで容易にサテライト側の.ChSet.txtファイルを自動生成することを可能とする機能を追加しました。 61 | ``` 62 | [PTxScanS.exe配置例] 63 | BonDriver_PTx-S0.dll ← BS/CS110 複合チューナーの最初のチューナーのS1端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 64 | BonDriver_PTx-S1.dll ← BS/CS110 複合チューナーの最初のチューナーのS2端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 65 | BonDriver_PTx-ST.ini 66 | PTxCtrl.exe ← PT1/PT2/PT3 自動判別PT制御実行ファイル 67 | PTxScanS.exe ← BonDriver_PTx-S?.dll と同一ディレクトリに配置して実行すると、.ChSet.txtファイルを自動生成する 68 | ``` 69 | ※ちなみに、スキャン結果を出力したファイルの名前をBonDriver_PTx-S.ChSet.txtに名前変更すると、すべてのサテライト用BonDriverで利用できるチャンネル設定ファイルとして扱うことが可能です。 70 | 71 | - [mod5.1 BSAlmighty+DeltaHz+DefSpace+PTx+PTxScanS fixes](https://github.com/hyrolean/BonDriver_PTx-ST_mod/releases/tag/mod5.1) 72 | (Described by 2021/05/10 LVhJPic0JSk5LiQ1ITskKVk9UGBg) 73 | 74 | ### ■ PTCtrl.exe と PT3Ctrl.exe を PTxCtrl.exe に統合しました。 75 | 76 | PT制御実行ファイルを PTxCtrl.exe 一本に統合しました。 77 | PT1/PT2とPT3との同時運用には、いままでPTCtrl.exeとPT3Ctrl.exe両方の実行ファイルが必要でしたが、PTxCtrl.exeに両方の機能をまとめることにより、実質PTxCtrl.exe一本のみで運用することを可能としました。 78 | EDCBを利用する場合、最低以下の4ファイルをEDCBのBonDriverディレクトリに配置するだけでセットアップ完了となります。(PT3、PT1/PT2、両方のSDKのインストールは必要なく、最低どちらか一方のSDKをインストールしておくだけでもPTxCtrl.exeは問題なく動作します。) 79 | ``` 80 | [EPGDataCap_BonのBonDriverフォルダ内の一例] 81 | BonDriver_PTx-S.dll ← BS/CS110 複合チューナー S側ID自動判別 (BonDriver_PTx.dllをリネームしたもの) 82 | BonDriver_PTx-T.dll ← 地デジ 複合チューナー T側ID自動判別 (BonDriver_PTx.dllをリネームしたもの) 83 | BonDriver_PTx-ST.ini 84 | PTxCtrl.exe ← PT1/PT2/PT3 自動判別PT制御実行ファイル 85 | ``` 86 | 87 | - [mod4 BSAlmighty+DeltaHz+DefSpace+PTx fixes](https://github.com/hyrolean/BonDriver_PTx-ST_mod/releases/tag/mod4) 88 | (Described by 2021/04/05 LVhJPic0JSk5LiQ1ITskKVk9UGBg) 89 | 90 | ### ■ BonDriver_PT-STとBonDriver_PT3-STを統合しました。 91 | 92 | BonDriverを統合し、IBonDriver3(Bonドライバインタフェース3)にも対応しました。 93 | 今回、BonDriverを統合したことにより、たとえば、PT2とPT3をミックスして使っているような違うチューナーの種類をBonDriverで分別することによって発生していた煩わしいコストを削減できます。 94 | 95 | IBonDriver3に対応したことにより、たとえば、EDCBを利用する場合、最低以下の5ファイルをEDCBのBonDriverディレクトリに配置し、チャンネルスキャンした後に、EpgTimerの設定画面|基本設定|チューナー|の各々の**チューナー数**の項目を運用しているPT1/2/3の種類に関わらず、運用しているPTx全個体数(PT1/2/3を嵌めているPCIカード数)の2倍に調整すればインストール完了です。 96 | ``` 97 | [EPGDataCap_BonのBonDriverフォルダ内の一例] 98 | BonDriver_PTx-S.dll ← BS/CS110 複合チューナー S側ID自動判別 (BonDriver_PTx.dllをリネームしたもの) 99 | BonDriver_PTx-T.dll ← 地デジ 複合チューナー T側ID自動判別 (BonDriver_PTx.dllをリネームしたもの) 100 | BonDriver_PTx-ST.ini 101 | PTCtrl.exe ← PT1/PT2 を最低でも一枚は運用している場合に配置。運用してない場合は配置不要。 102 | PT3Ctrl.exe ← PT3 を最低でも一枚は運用している場合に配置。運用してない場合は配置不要。 103 | ``` 104 | あとは、順次使用するチューナーを自動判別してくれます。 105 | PT1/PT2/PT3などのチューナーの種類を意識する必要はなくなります。 106 | 107 | また、いままで通りの連番や固有名でも以前と変わりなくそのまま運用可能です。 108 | ``` 109 | BonDriver_PT-S0.dll ← BS/CS110 PT1/PT2の最初のチューナーのS1端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 110 | BonDriver_PT-T1.dll ← 地デジ PT1/PT2の最初のチューナーのT2端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 111 | BonDriver_PT3-S2.dll ← BS/CS110 PT3の二枚目のチューナーのS側1番目のチューナー (BonDriver_PTx.dllをリネームしたもの) 112 | BonDriver_PT3-T3.dll ← 地デジ PT3の二枚目のチューナーのT側2番目のチューナー (BonDriver_PTx.dllをリネームしたもの) 113 | BonDriver_PT3-S.dll ← BS/CS110 PT3のS側ID自動判別チューナー (BonDriver_PTx.dllをリネームしたもの) 114 | BonDriver_PT-T.dll ← 地デジ PT1/PT2のT側ID自動判別チューナー (BonDriver_PTx.dllをリネームしたもの) 115 | BonDriver_PT-ST.ini ← PT1/PT2用設定ファイル (BonDriver_PTx-ST.iniをリネームしたもの) 116 | BonDriver_PT3-ST.ini ← PT3用設定ファイル (BonDriver_PTx-ST.iniをリネームしたもの) 117 | ``` 118 | 119 | PTxで連番を利用する場合は以下の通りです。 120 | ``` 121 | BonDriver_PTx-S0.dll ← BS/CS110 複合チューナーの最初のチューナーのS1端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 122 | BonDriver_PTx-T0.dll ← 地デジ 複合チューナーの最初のチューナーのT1端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 123 | BonDriver_PTx-S1.dll ← BS/CS110 複合チューナーの最初のチューナーのS2端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 124 | BonDriver_PTx-T1.dll ← 地デジ 複合チューナーの最初のチューナーのT2端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 125 | BonDriver_PTx-S2.dll ← BS/CS110 複合チューナーの二枚目のチューナーのS1端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 126 | BonDriver_PTx-T2.dll ← 地デジ 複合チューナーの二枚目のチューナーのT1端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 127 | BonDriver_PTx-S3.dll ← BS/CS110 複合チューナーの二枚目のチューナーのS2端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 128 | BonDriver_PTx-T3.dll ← 地デジ 複合チューナーの二枚目のチューナーのT2端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 129 | BonDriver_PTx-S4.dll ← BS/CS110 複合チューナーの三枚目のチューナーのS1端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 130 | BonDriver_PTx-T4.dll ← 地デジ 複合チューナーの三枚目のチューナーのT1端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 131 | BonDriver_PTx-S5.dll ← BS/CS110 複合チューナーの三枚目のチューナーのS2端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 132 | BonDriver_PTx-T5.dll ← 地デジ 複合チューナーの三枚目のチューナーのT2端子のチューナー (BonDriver_PTx.dllをリネームしたもの) 133 | ``` 134 | 135 | - [mod3.4 BSAlmighty+DeltaHz+DefSpace+PTx fixes](https://github.com/hyrolean/BonDriver_PTx-ST_mod/releases/tag/mod3.4) 136 | (Described by 2021/03/13 LVhJPic0JSk5LiQ1ITskKVk9UGBg) 137 | 138 | **※PTx複合チューナーが PT3、PT1/PT2、どちらを優先的にチューナーを開くかは、BonDriver_PTx-ST.ini の xFirstPT3 項目の値を変えることによって挙動を変更出来ます。** 139 | 140 | ### ■ チャンネルファイル.ChSet.txtファイルに -/+ を値欄に記述することにより、直近に登録したチャンネルの値を参照できるようになりました。 141 | 142 | ``` 143 | - … 直近に登録したチャンネルの値と同値 144 | + … 直近に登録したチャンネルの値に+1加算したもの 145 | ``` 146 | この機能を上手く使いこなすことにより、チャンネルファイル.ChSet.txtを編集する際の通し番号を記述することにより発生する煩わしいコストを削減出来ます。 147 | - [mod2 BSAlmighty+DeltaHz+DefSpace fixes](https://github.com/hyrolean/BonDriver_PT3-ST_mod/releases/tag/mod2) 148 | (Described by 2021/02/12 LVhJPic0JSk5LiQ1ITskKVk9UGBg) 149 | 150 | ### ■ 既定のチャンネル情報を編集することにより、チャンネル情報構築の簡略化に対応。 151 | 152 | チャンネルファイル.ChSet.txtが読み込まれなかった場合は、BonDriver_PT3-ST.iniのDefSpaceセクションの記述内容に応じてチャンネル情報を自動構築します。 153 | 特殊な受信環境でなければ、.ChSet.txtファイルの複雑怪奇な編集作業を実質まったく行う必要がなくなり、チャンネル情報書き換えによる煩わしいコストを省けます。 154 | - [mod2α2 BSAlmighty+DeltaHz+DefSpace fixes](https://github.com/hyrolean/BonDriver_PT3-ST_mod/releases/tag/mod2_alpha2) 155 | (Described by 2021/02/04 LVhJPic0JSk5LiQ1ITskKVk9UGBg) 156 | 157 | **※既定のチャンネル情報を有効にするには、いままで利用していた.ChSet.txtファイルを抹消し、代替に添付のBonDriver_PT3-ST.iniファイルをBonDriverと同じフォルダに置いてDefSpaceセクションをチューナー環境に応じて適切に編集してみて下さい。** 158 | 159 | ### ■ ヘタってきたチューナー用に周波数を微調整する機能を追加しました。 160 | 161 | チャンネルファイルの"PTxとしてのチャンネル"部分にch番号±δで調整できます。 162 | (単位は、1/7MHz。実際の周波数より2MHz上方修正する場合は、ch番号+14と書く。) 163 | たとえば、CATVのC37チャンネルの周波数を1/7MHz下方修正する場合は、添付のBonDriver_PT3-T.ChSet.txtの81行目を下記の様に記述することにより、 164 | ``` 165 | C37Ch 1 24 36-1 0 166 | ``` 167 | 実際のC37チャンネルの周波数より1/7MHz下方(-143kHz)修正されます。 168 | - [mod BSAlmighty+DeltaHz fixes](https://github.com/hyrolean/BonDriver_PT3-ST_mod/releases/tag/mod) 169 | (Described by 2020/01/08 LVhJPic0JSk5LiQ1ITskKVk9UGBg) 170 | 171 | ### ■ BonDriverのdllファイル名と同じ名前の拡張子.ChSet.txtファイルが存在する場合、そちらを先に優先してチャンネルファイルとして読み込む仕様に変更しました。 172 | 173 | たとえば、 174 | ``` 175 | BonDriver_PT3-T.ChSet.txt 176 | BonDriver_PT3-T1.ChSet.txt 177 | BonDriver_PT3-T1.dll 178 | ``` 179 | の3ファイルが同一フォルダ上に存在する状態でBonDriver_PT3-T1.dllがアプリケーション側から読み込まれた場合は、BonDriver_PT3-T.ChSet.txtは読み込まれずに代 180 | 替にBonDriver_PT3-T1.ChSet.txtがチャンネルファイルとして読み込まれます。 181 | ヘタったチューナーの周波数を微調整したい場合や、地上波とCATVに分けたい場合などに個別のチャンネルファイルとして取扱う目的で利用できるようになります。 182 | - [mod BSAlmighty+DeltaHz fixes](https://github.com/hyrolean/BonDriver_PT3-ST_mod/releases/tag/mod) 183 | (Described by 2020/01/08 LVhJPic0JSk5LiQ1ITskKVk9UGBg) 184 | 185 | ### ■ BonDriver_PT3-S.ChSet.txtのTSID項目に0~7の値を指定するとチューナーからTSIDを抜き取って下位3ビットがその値と一致するTSIDを持つストリームを自動選択します。 186 | 187 | トランスポンダの再編などによりチャンネル情報が変更された場合にチャンネルファイルのTSIDを実質一々書き換える必要がなくなりアプリケーション側のチャンネルスキャンだけで事が足りるようになります。 188 | - [mod BSAlmighty+DeltaHz fixes](https://github.com/hyrolean/BonDriver_PT3-ST_mod/releases/tag/mod) 189 | (Described by 2020/01/07 LVhJPic0JSk5LiQ1ITskKVk9UGBg) 190 | 191 | **※機能を有効にするには、添付のBonDriver_PT3-S.ChSet.txtを差し替えてください。また、添付のBonDriver_PT3-S.ChSet.txtを差し替えた結果、EDCBでのチャンネルのスキャン時に抜けが発生する場合は、下記のようにEDCBのディレクトリ上に存在する設定ファイルBonCtrl.iniのServiceChkTimeOutの値を15くらいに上げて再スキャンしてみてください。** 192 | ```ini 193 | ;チャンネルスキャン時の動作設定 194 | [CHSCAN] 195 | ServiceChkTimeOut=15 196 | ``` 197 | -------------------------------------------------------------------------------- /Readme.MD: -------------------------------------------------------------------------------- 1 | # BonDriver_PTx-ST MOD 2 | 3 | PT3のSDKバージョン0.9、および、PT1、PT2のSDKバージョン4.0用のハイブリッド複合型BonDriverです。複数プロセスから扱えます。 4 | 5 | ## ●ファイル構成 6 | ``` 7 | 8 | |-- BonDriver_PTx-ST.ini (設定ファイル) 9 | |-- (32bit版のモジュール一式) 10 | | |-- BonDriver_PTx-S.dll (BS/CS用のBonDriver) 11 | | |-- BonDriver_PTx-T.dll (地デジ用のBonDriver) 12 | | `-- PTxCtrl.exe (PT1/PT2/PT3制御用実行ファイル) 13 | `-- (64bit版のモジュール一式) 14 | |-- BonDriver_PTx-S.dll (BS/CS用のBonDriver) 15 | |-- BonDriver_PTx-T.dll (地デジ用のBonDriver) 16 | `-- PTxCtrl.exe (PT1/PT2/PT3制御用実行ファイル) 17 | ``` 18 | 19 | ## ●使い方 20 | 21 | PT3 SDKバージョン0.9がインストールされている環境と、PT SDKバージョン4.0がインストールされている環境のどちらか一方が最低限必要。 22 | SDKは、最低限、どちらか一方がインストールされていれば、支障なく動作すると思います。 23 | PT1/PT2とPT3両方を同一PCで利用する場合は、両方のSDKをインストールしておいてください。 24 | 25 | 各種アプリのBonDriver配置場所に下記に表記されているモジュール一式 26 | ``` 27 | PTxCtrl.exe 28 | BonDriver_PTx-S.dll 29 | BonDriver_PTx-T.dll 30 | BonDriver_PTx-ST.ini 31 | ``` 32 | を置いてください。 33 | 34 | *※"BonDriver_PTx-S.dll"/"BonDriver_PTx-T.dll"は、ソリューション"BonDriver_Ptx.sln"をビルドして出来上がった生成物"BonDriver_PTx.dll"をコピーし、名前変更して配置してください("BonDriver_PTx.dll"同じものを2つコピーしてそれぞれ"BonDriver_PTx-S.dll"/"BonDriver_PTx-T.dll"に名前変更)。* 35 | 36 | *より詳しいビルド方法については、[こちら](./HowToBuilding.MD)を参照してみてください。* 37 | 38 | 1DLLで複数チューナーを扱います。(凡、HDUS BonDriver形式) 39 | PTxCtrl.exeはDLLから起動するので人為的に起動する必要はありません。 40 | もしアプリが強制終了してPTxCtrl.exeがプロセスに残った場合はタスクマネージャーから終了させて下さい。(一応自動終了の仕組みは入れていますが、1分以上残っているようなら終了してください。) 41 | 42 | ファイル名で個別チューナーを設定することもできます。 43 | 「BonDriver_PTx-S*.dll」、「BonDriver_PTx-T*.dll」の形式で\*部分を0~∞まで 44 | 0が1枚目のS1かT1、1が1枚目のS2かT2、2が2枚目のS1かT1、3が2枚目のS2かT2・・・ 45 | デフォルトのファイル名のままなら空きチューナーを探して使用します。 46 | 47 | 表記例 48 | ``` 49 | BonDriver_PTx-S0.dll ← BS/CS110 複合チューナーの最初のチューナーのS1端子のチューナー 50 | BonDriver_PTx-T0.dll ← 地デジ 複合チューナーの最初のチューナーのT1端子のチューナー 51 | BonDriver_PTx-S1.dll ← BS/CS110 複合チューナーの最初のチューナーのS2端子のチューナー 52 | BonDriver_PTx-T1.dll ← 地デジ 複合チューナーの最初のチューナーのT2端子のチューナー 53 | BonDriver_PTx-S2.dll ← BS/CS110 複合チューナーの二枚目のチューナーのS1端子のチューナー 54 | BonDriver_PTx-T2.dll ← 地デジ 複合チューナーの二枚目のチューナーのT1端子のチューナー 55 | BonDriver_PTx-S3.dll ← BS/CS110 複合チューナーの二枚目のチューナーのS2端子のチューナー 56 | BonDriver_PTx-T3.dll ← 地デジ 複合チューナーの二枚目のチューナーのT2端子のチューナー 57 | BonDriver_PTx-S4.dll ← BS/CS110 複合チューナーの三枚目のチューナーのS1端子のチューナー 58 | BonDriver_PTx-T4.dll ← 地デジ 複合チューナーの三枚目のチューナーのT1端子のチューナー 59 | BonDriver_PTx-S5.dll ← BS/CS110 複合チューナーの三枚目のチューナーのS2端子のチューナー 60 | BonDriver_PTx-T5.dll ← 地デジ 複合チューナーの三枚目のチューナーのT2端子のチューナー 61 | ``` 62 | *※PT1/PT2とPT3両方を同一PCで利用しているケースで、PT1/2もしくは、PT3どちらを先に探しに行くかの順序は、BonDriver_PTx-ST.ini の xFirstPT3=1 のときにPT3を先に探しに行きます。 逆に、xFirstPT3=0 の場合は、PT1/PT2側が先行されます。* 63 | 64 | ## ●設定 65 | 66 | BonDriver_PTx-ST.iniを変更することで以下の項目が設定できます。 67 | ファイル名で個別チューナー設定を行っても設定は共通です。 68 | 69 | - LNB電源の使用/未使用(UseLNB) 70 | - DMA転送バッファのサイズ指定(DMABuff) 71 | - PT1/2、PT3の検索順序の設定(xFirstPT3) 72 | - PT1/2のバージョン設定(PT1Ver) 73 | 74 | *※他にも色々設定する項目がありますが、長くなってしまいますので割愛します。BonDriver_PTx-ST.iniのコメント欄に個々の項目についての説明が記述してありますので参照してみてください。* 75 | 76 | PTxCtrl.exeをサービスとして登録することもできます。 77 | コマンドラインオプション「-install」で登録、「-remove」で登録解除。 78 | 79 | ## ●チャンネル設定 80 | 81 | チャンネル定義をtextファイルにしています(BonDriver_PTx-S.ChSet.txt/BonDriver_PTx-T.ChSet.txt)。 82 | 不必要なチューナー空間やチャンネルがある場合、行の先頭に「;」をつけて無効化してください。 83 | ただし、BonDriverとしてのチューナ空間、チャンネルは、値が0からの連番になる必要があるため、連番にならないような設定になる場合、0からの連番に変更する必要があります。(チューナー空間側で発生するとチャンネル側も変更の必要あります) 84 | 編集が必要になる場合は、Excelでタブ区切りで読み込むと行いやすいと思います。 85 | ファイル名で個別チューナー設定を行っても設定は共通です。 86 | 地デジはデフォルトUHFのみ有効にしているため、CATVが必要なら変更してください。 87 | 88 | PTxとしてのチャンネルは以下のものが設定できます。 89 | EARTH_PT.h/EARTH_PT3.hより抜粋 90 | 91 | (ISDB-S) 92 | *PLL 周波数ステップが 1MHz のため、実際に設定される周波数は f' になります。* 93 | 94 | | ch | TP # | f (MHz) | f'(MHz) | | ch | TP # | f (MHz) | f'(MHz) | | ch | TP # | f (MHz) | f'(MHz) | 95 | |:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---| 96 | | 0 | BS 1 | 1049.48 | 1049.00 | | 12 | ND 2 | 1613.00 | (同左) | | 24 | ND 1 | 1593.00 | (同左) | 97 | | 1 | BS 3 | 1087.84 | 1088.00 | | 13 | ND 4 | 1653.00 | (同左) | | 25 | ND 3 | 1633.00 | (同左) | 98 | | 2 | BS 5 | 1126.20 | 1126.00 | | 14 | ND 6 | 1693.00 | (同左) | | 26 | ND 5 | 1673.00 | (同左) | 99 | | 3 | BS 7 | 1164.56 | 1165.00 | | 15 | ND 8 | 1733.00 | (同左) | | 27 | ND 7 | 1713.00 | (同左) | 100 | | 4 | BS 9 | 1202.92 | 1203.00 | | 16 | ND10 | 1773.00 | (同左) | | 28 | ND 9 | 1753.00 | (同左) | 101 | | 5 | BS11 | 1241.28 | 1241.00 | | 17 | ND12 | 1813.00 | (同左) | | 29 | ND11 | 1793.00 | (同左) | 102 | | 6 | BS13 | 1279.64 | 1280.00 | | 18 | ND14 | 1853.00 | (同左) | | 30 | ND13 | 1833.00 | (同左) | 103 | | 7 | BS15 | 1318.00 | (同左) | | 19 | ND16 | 1893.00 | (同左) | | 31 | ND15 | 1873.00 | (同左) | 104 | | 8 | BS17 | 1356.36 | 1356.00 | | 20 | ND18 | 1933.00 | (同左) | | 32 | ND17 | 1913.00 | (同左) | 105 | | 9 | BS19 | 1394.72 | 1395.00 | | 21 | ND20 | 1973.00 | (同左) | | 33 | ND19 | 1953.00 | (同左) | 106 | | 10 | BS21 | 1433.08 | 1433.00 | | 22 | ND22 | 2013.00 | (同左) | | 34 | ND21 | 1993.00 | (同左) | 107 | | 11 | BS23 | 1471.44 | 1471.00 | | 23 | ND24 | 2053.00 | (同左) | | 35 | ND23 | 2033.00 | (同左) | 108 | 109 | (ISDB-T) 110 | 111 | | ch. | Ch. | f (MHz) | | ch. | Ch. | f (MHz) | | ch. | Ch. | f (MHz) | | ch. | Ch. | f (MHz) | | ch. | Ch. | f (MHz) | 112 | |:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---| 113 | | 0 | 1 | 93+1/7 | | 23 | C24 | 231+1/7 | | 46 | C47 | 369+1/7 | | 69 | 19 | 509+1/7 | | 92 | 42 | 647+1/7 | 114 | | 1 | 2 | 99+1/7 | | 24 | C25 | 237+1/7 | | 47 | C48 | 375+1/7 | | 70 | 20 | 515+1/7 | | 93 | 43 | 653+1/7 | 115 | | 2 | 3 | 105+1/7 | | 25 | C26 | 243+1/7 | | 48 | C49 | 381+1/7 | | 71 | 21 | 521+1/7 | | 94 | 44 | 659+1/7 | 116 | | 3 | C13 | 111+1/7 | | 26 | C27 | 249+1/7 | | 49 | C50 | 387+1/7 | | 72 | 22 | 527+1/7 | | 95 | 45 | 665+1/7 | 117 | | 4 | C14 | 117+1/7 | | 27 | C28 | 255+1/7 | | 50 | C51 | 393+1/7 | | 73 | 23 | 533+1/7 | | 96 | 46 | 671+1/7 | 118 | | 5 | C15 | 123+1/7 | | 28 | C29 | 261+1/7 | | 51 | C52 | 399+1/7 | | 74 | 24 | 539+1/7 | | 97 | 47 | 677+1/7 | 119 | | 6 | C16 | 129+1/7 | | 29 | C30 | 267+1/7 | | 52 | C53 | 405+1/7 | | 75 | 25 | 545+1/7 | | 98 | 48 | 683+1/7 | 120 | | 7 | C17 | 135+1/7 | | 30 | C31 | 273+1/7 | | 53 | C54 | 411+1/7 | | 76 | 26 | 551+1/7 | | 99 | 49 | 689+1/7 | 121 | | 8 | C18 | 141+1/7 | | 31 | C32 | 279+1/7 | | 54 | C55 | 417+1/7 | | 77 | 27 | 557+1/7 | | 100 | 50 | 695+1/7 | 122 | | 9 | C19 | 147+1/7 | | 32 | C33 | 285+1/7 | | 55 | C56 | 423+1/7 | | 78 | 28 | 563+1/7 | | 101 | 51 | 701+1/7 | 123 | | 10 | C20 | 153+1/7 | | 33 | C34 | 291+1/7 | | 56 | C57 | 429+1/7 | | 79 | 29 | 569+1/7 | | 102 | 52 | 707+1/7 | 124 | | 11 | C21 | 159+1/7 | | 34 | C35 | 297+1/7 | | 57 | C58 | 435+1/7 | | 80 | 30 | 575+1/7 | | 103 | 53 | 713+1/7 | 125 | | 12 | C22 | 167+1/7 | | 35 | C36 | 303+1/7 | | 58 | C59 | 441+1/7 | | 81 | 31 | 581+1/7 | | 104 | 54 | 719+1/7 | 126 | | 13 | 4 | 173+1/7 | | 36 | C37 | 309+1/7 | | 59 | C60 | 447+1/7 | | 82 | 32 | 587+1/7 | | 105 | 55 | 725+1/7 | 127 | | 14 | 5 | 179+1/7 | | 37 | C38 | 315+1/7 | | 60 | C61 | 453+1/7 | | 83 | 33 | 593+1/7 | | 106 | 56 | 731+1/7 | 128 | | 15 | 6 | 185+1/7 | | 38 | C39 | 321+1/7 | | 61 | C62 | 459+1/7 | | 84 | 34 | 599+1/7 | | 107 | 57 | 737+1/7 | 129 | | 16 | 7 | 191+1/7 | | 39 | C40 | 327+1/7 | | 62 | C63 | 465+1/7 | | 85 | 35 | 605+1/7 | | 108 | 58 | 743+1/7 | 130 | | 17 | 8 | 195+1/7 | | 40 | C41 | 333+1/7 | | 63 | 13 | 473+1/7 | | 86 | 36 | 611+1/7 | | 109 | 59 | 749+1/7 | 131 | | 18 | 9 | 201+1/7 | | 41 | C42 | 339+1/7 | | 64 | 14 | 479+1/7 | | 87 | 37 | 617+1/7 | | 110 | 60 | 755+1/7 | 132 | | 19 | 10 | 207+1/7 | | 42 | C43 | 345+1/7 | | 65 | 15 | 485+1/7 | | 88 | 38 | 623+1/7 | | 111 | 61 | 761+1/7 | 133 | | 20 | 11 | 213+1/7 | | 43 | C44 | 351+1/7 | | 66 | 16 | 491+1/7 | | 89 | 39 | 629+1/7 | | 112 | 62 | 767+1/7 | 134 | | 21 | 12 | 219+1/7 | | 44 | C45 | 357+1/7 | | 67 | 17 | 497+1/7 | | 90 | 40 | 635+1/7 | | | | | 135 | | 22 | C23 | 225+1/7 | | 45 | C46 | 363+1/7 | | 68 | 18 | 503+1/7 | | 91 | 41 | 641+1/7 | | | | | 136 | 137 | *※チャンネル定義をtextファイル(.ChSet.txt)にしなくても、BonDriver_PTx-ST_mod は、チャンネル情報をBonDriver_PTx-ST.iniの\[DefSpace\]セクションに記述することによって既定のチャンネル情報として扱うことが可能になっています。周波数の微調整などが必要ない限り、チャンネルファイルを記述する必要はありません。BonDriver_PTx-ST_mod では、チャンネル情報(.ChSet.txt)ファイルが記述されている場合は、既定のチャンネル情報を破棄して記述されているチャンネル情報の方を優先して取り扱いますので、**いままでのように無駄にチャンネルファイル(BonDriver_PTx-S.ChSet.txt/BonDriver_PTx-T.ChSet.txt)を配置しているとBonDriver_PTx-ST.iniで記述してある既定のチャンネル情報が無効になってしまう**ので気をつけてください。* 138 | 139 | *※[mod7.4a](https://github.com/hyrolean/BonDriver_PTx-ST_mod/releases/tag/mod7.4a)より、CSV形式のチャンネルファイル(.ch.txt)もBonDrvier_PTxのチャンネルファイルとして扱えるようになりました。カンマで区切るだけのシンプル方式のチャンネル記述形式で出来ており、通し番号なども必要ない為、チャンネル定義ファイル(.ChSet.txt)よりも簡単な構造になっています。CSV形式のチャンネルファイル(.ch.txt)のサンプルファイルについては、[Extraフォルダ](./Extra)を参照してみてください。* 140 | 141 | *※[EDCB](https://github.com/epgdatacapbon/EDCB)でのチャンネルのスキャン時に抜けが発生する場合は、下記のようにEDCBのディレクトリ上に存在する設定ファイルBonCtrl.iniのServiceChkTimeOutの値を15くらいに上げて再スキャンしてみてください。* 142 | 143 | ```ini 144 | ;チャンネルスキャン時の動作設定 145 | [CHSCAN] 146 | ServiceChkTimeOut=15 147 | ``` 148 | 149 | ## ●Spinelへの組み込み例 150 | 151 | SpinelへこのBonDriverを組み込む場合は、Spinelのルートに存在する BonDriverMapping.json ファイルの "BonDriver_PT-ST" 項目を下記のように修正すると、"EarthSoft PTx" デバイス としてSpinelに認識されるようになります。 152 | 153 | ```json 154 | /* BonDriver_PT-ST */ 155 | { 156 | "DeviceName": "PT", 157 | "Mapping": { 158 | "ISDB_T": "^BonDriver_PT([xw]|xWDM)?-T.*?\\.dll$", 159 | "ISDB_S": "^BonDriver_PT([xw]|xWDM)?-S.*?\\.dll$", 160 | } 161 | }, 162 | ``` 163 | 164 | BonDriverフォルダにWin32版のファイルを配置するのを忘れないでください。チューナー1セット構成だと以下のような配置になります。 165 | 166 | ``` 167 | 168 | |-- Spinel.exe 169 | |-- BonDriverMapping.json 170 | |-- (略) 171 | `-- 172 | |-- BonDriver_PTx-S0.dll (BS/CS用のBonDriver[S1] TunerPath = "PT/0/S/0") ※Win32版 173 | |-- BonDriver_PTx-T0.dll (地デジ用のBonDriver[T1] TunerPath = "PT/0/T/0") ※Win32版 174 | |-- BonDriver_PTx-S1.dll (BS/CS用のBonDriver[S2] TunerPath = "PT/0/S/1") ※Win32版 175 | |-- BonDriver_PTx-T1.dll (地デジ用のBonDriver[T2] TunerPath = "PT/0/T/1") ※Win32版 176 | |-- BonDriver_PTx-ST.ini (設定ファイル) 177 | `-- PTxCtrl.exe (PT1/PT2/PT3制御用実行ファイル) ※使用OSが64ビットならx64版、32ビットならWin32版 178 | ``` 179 | 180 | ## ●64bitOSへの対応 181 | 182 | x64フォルダにあるモジュールは64bitでビルドしたモジュールになっています。 183 | 64bit版を使用するにはアプリ側も64bitでビルドされている必要があります。 184 | 32bitのモジュールが1つでも必要な場合は使用できません。 185 | 186 | ## ●ソースとモジュールの取り扱いについて 187 | 188 | 特にGPLとかにはしないので自由に改変してもらって構わないです。 189 | 改変して公開する場合は改変部分のソースぐらいは一緒に公開してください。 190 | (強制ではないので別に公開しなくてもいいです) 191 | フリーソフトに組み込む場合は特に制限は設けません。 192 | このdll、exeを使用したことによって発生した問題について保証は一切行いません。 193 | 商用、シェアウェアなどに組み込むのは不可です。 194 | 再配布を行う場合は配布者個人の責任で行ってください。 195 | 196 | 197 | *※ソースファイルの構築の仕方については、[こちら](./HowToBuilding.MD)からご参照ください。* 198 | 199 | *※mod版の更新履歴については、[こちら](./Readme_MOD.md)からご参照ください。* 200 | 201 | **EpgDataCap_Bon (mod by hyrolean)** 202 | --------------------------------------------------------------------------------