Guest User

CheckInsufficientTuner.ps1

a guest
Apr 2nd, 2022
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # CheckInsufficientTuner.ps1
  2. #
  3. # 番組の一部または全てが録画できない予約を列挙する
  4. # UTF-8 with BOM か UTF-16 で保存
  5. # このスクリプトを実行する Windows PowerShell と EpgTimer.exe の bit は合わせること
  6.  
  7. #Requires -Version 3.0
  8.  
  9. Set-StrictMode -Version Latest
  10. $ErrorActionPreference = "Stop"
  11.  
  12. # EpgTimer.exe へのフルパスを指定する
  13. $EPGTIMER_PATH = "C:\EDCB\EpgTimer.exe"
  14.  
  15. $null = [System.Reflection.Assembly]::LoadFile($EPGTIMER_PATH)
  16.  
  17. $CMD = New-Object EpgTimer.CtrlCmdUtil
  18.  
  19. $reserveDataList = New-Object System.Collections.Generic.List[EpgTimer.ReserveData]
  20. $result = $CMD.SendEnumReserve([ref]$reserveDataList)
  21. if ($result -ne "CMD_SUCCESS") {
  22.     throw "Failed to communicate with EpgTimerSrv"
  23. }
  24.  
  25. $noTunerList = @()
  26. $partialRecordingList = @()
  27. foreach ($rd in $reserveDataList) {
  28.     switch ($rd.OverlapMode) {
  29.         0 {}
  30.         1 { $partialRecordingList += $rd }
  31.         2 { $noTunerList += $rd }
  32.         default { Write-Warning "Unknown OverlapMode: $($rd.OverlapMode)" }
  33.     }
  34. }
  35.  
  36. if ($partialRecordingList.Count -gt 0) {
  37.     # 一部チューナー不足
  38.     # 配列 $partialRecordingList には登録予約情報 ReserveData が入っている
  39.     # https://github.com/xtne6f/EDCB/blob/work-plus-s/EpgTimer/EpgTimer/Common/CtrlCmdDef.cs#L186
  40.  
  41.     # 例: 一部チューナー不足になっている番組のタイトルを表示
  42.     foreach ($rd in $partialRecordingList) {
  43.         Write-Host "parial rec: $($rd.Title)"
  44.     }
  45. }
  46. if ($noTunerList.Count -gt 0) {
  47.     # チューナー不足
  48.     # 配列 $noTunerList には登録予約情報 ReserveData が入っている
  49.     # https://github.com/xtne6f/EDCB/blob/work-plus-s/EpgTimer/EpgTimer/Common/CtrlCmdDef.cs#L186
  50.  
  51.     # 例: チューナー不足になっている番組のタイトルを表示
  52.     foreach ($rd in $noTunerList) {
  53.         Write-Host "no tuner: $($rd.Title)"
  54.     }
  55. }
  56.  
Add Comment
Please, Sign In to add comment