Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # CheckInsufficientTuner.ps1
- #
- # 番組の一部または全てが録画できない予約を列挙する
- # UTF-8 with BOM か UTF-16 で保存
- # このスクリプトを実行する Windows PowerShell と EpgTimer.exe の bit は合わせること
- #Requires -Version 3.0
- Set-StrictMode -Version Latest
- $ErrorActionPreference = "Stop"
- # EpgTimer.exe へのフルパスを指定する
- $EPGTIMER_PATH = "C:\EDCB\EpgTimer.exe"
- $null = [System.Reflection.Assembly]::LoadFile($EPGTIMER_PATH)
- $CMD = New-Object EpgTimer.CtrlCmdUtil
- $reserveDataList = New-Object System.Collections.Generic.List[EpgTimer.ReserveData]
- $result = $CMD.SendEnumReserve([ref]$reserveDataList)
- if ($result -ne "CMD_SUCCESS") {
- throw "Failed to communicate with EpgTimerSrv"
- }
- $noTunerList = @()
- $partialRecordingList = @()
- foreach ($rd in $reserveDataList) {
- switch ($rd.OverlapMode) {
- 0 {}
- 1 { $partialRecordingList += $rd }
- 2 { $noTunerList += $rd }
- default { Write-Warning "Unknown OverlapMode: $($rd.OverlapMode)" }
- }
- }
- if ($partialRecordingList.Count -gt 0) {
- # 一部チューナー不足
- # 配列 $partialRecordingList には登録予約情報 ReserveData が入っている
- # https://github.com/xtne6f/EDCB/blob/work-plus-s/EpgTimer/EpgTimer/Common/CtrlCmdDef.cs#L186
- # 例: 一部チューナー不足になっている番組のタイトルを表示
- foreach ($rd in $partialRecordingList) {
- Write-Host "parial rec: $($rd.Title)"
- }
- }
- if ($noTunerList.Count -gt 0) {
- # チューナー不足
- # 配列 $noTunerList には登録予約情報 ReserveData が入っている
- # https://github.com/xtne6f/EDCB/blob/work-plus-s/EpgTimer/EpgTimer/Common/CtrlCmdDef.cs#L186
- # 例: チューナー不足になっている番組のタイトルを表示
- foreach ($rd in $noTunerList) {
- Write-Host "no tuner: $($rd.Title)"
- }
- }
Add Comment
Please, Sign In to add comment