Skip to content

Latest commit

 

History

History
173 lines (128 loc) · 11.7 KB

README.md

File metadata and controls

173 lines (128 loc) · 11.7 KB

Rockbar for EDCB

Rockbar for EDCBはEDCBと連携し、番組・予約情報の表示や視聴(TVTest連携)を行うアプリケーションです。

コンセプト

TVRockのRockバー相当の見た目・機能をEDCBで使うことを目的としています。

EDCBは録画に関しては非常に高い機能性を持ちますが、気軽にザッピングしたり録画と視聴を柔軟に組み合わせるのがやや不得意なため、視聴面を補完する目的で作成しました。

EDCBでは録画だけを管理し、本アプリケーションで視聴面を補完する使用方法を想定しています。

動作環境

  • Windows10 64bit
  • .NET Framework 4.7.2以上

※バイナリは64bit版のみ配布とします。TVTestやEDCBと32bit/64bitを揃える必要はありません。

制限事項

TVTestでの視聴はSpinel, BonDriverProxyEx, VirtualPTなどチューナ共有の仕組みを導入していることを前提としています。

チューナー共有なしだとTVTest連携周りは使いものにならないか、録画失敗を頻発させる可能性がありますのでくれぐれもご注意ください。

本アプリケーションの使用で発生したいかなる損害についても、作者は一切責任を負いません。

機能

  • チャンネル一覧に現在放送中の番組・予約ステータスを表示します
    • チャンネル右クリックで直近30件の番組一覧を表示します(コンテキストメニュー。TVRock踏襲)。
      • サブメニューに番組詳細を表示します
      • サブメニュー1行目にWeb番組詳細へのリンクを表示できます
      • リンクはデフォルトブラウザで開きます。予約の追加・削除はリンク先で操作する運用想定です
    • チャンネル欄ダブルクリックでTVTestを起動できます。
    • フィルタ文字列入力→Enter(or Filterボタン)で、現在放送中の番組を絞り込みます。Resetで元に戻ります。利用シチュエーションはスポーツ番組をどっかでやってるけど、どのチャンネルか分からない的なケース。
  • チューナー一覧に現在実行中の予約情報を表示します
    • チューナー右クリックで直近30件の予約一覧を表示します。
    • 一部録画・チューナー不足の予約が入っているチューナーは背景色を変えて可視化します(直近30件に限らず警告)
  • EDCBで定義されているチャンネル情報を取得し、表示するチャンネルを取捨選択・任意並び順に設定できます
    • 表示対象チャンネルからさらにお気に入りチャンネルを選別できます。
  • 一部録画・チューナー不足になりそうな予約は背景色やマークを変えて可視化します。
  • 予約開始タイミングで自動的にTVTestを起動し、終了時に自動的にTVTestを閉じることができます
    • 同一チャンネルで連続した番組はTVTestの自動追加起動を抑制します(ダブルクリック起動TVTestは抑制対象外)
    • 自動起動対象は、地デジ・BS・CS・お気に入りサービスなどでフィルタが可能です
    • 自動起動・終了タイミングは59秒以内で調整可能です
  • タスクトレイに格納・アイコンを表示できます(アイコンクリック時アクティブ or 表示・非表示切り替え)
  • 終了時のサイズ・起動位置・スプリッタの位置を自動記憶します。
    • デフォルトに戻したい場合は、設定ファイルのWidth, Heightを削って起動してください。
  • メイン画面のListView内・コンテキストメニューのフォントを設定できます。
  • メイン画面の枠・ListView背景色・文字色・コンテキストメニュー背景色を設定できます。
  • BonDriver名に対してチューナー名を内部設定できます。

インストール

インストーラは付属しません。

ReleasesのRockbarForEDCB-v******.zipをダウンロードし、適当なディレクトリを作ってそこに展開してください。

必要であれば自動起動などに登録してください。

自動起動登録・更新自動確認の仕組みはありません。

アップグレード

インストールと同様に、ReleasesのRockbarForEDCB-v******.zipをダウンロードし、exeファイルを上書きしてください。

v0.8.2では設定ファイルの同梱を止めたので、展開してそのまま上書きできます。

不具合で設定ファイルの内容を消してしまう可能性が0ではないので、できるだけアップグレード前に設定ファイルのバックアップを取得しておいてください。

使い方

RockbarForEDCB.exeを起動してください。

設定

「設」ボタンを押して設定画面を開き、設定を行います。

まずはEDCB連携設定を行い、EpgTimerSrvと通信できる状態にしてください。

EDCB連携設定

デフォルトはローカルパイプ通信になっており、EpgTimerSrvと同じPCで実行する場合は起動時点で通信ができるはずです。

通信ができない場合は起動時に警告が出ます。

TCP/IPで通信する場合は「EDCBとの通信にTCP/IPを使用する」をチェックし、EPGTimerSrv側で設定したポート番号に合わせてください(EDCB上のEpgTimerSRv設定→その他→ネットワーク接続を許可する配下)。

番組詳細リンクを使用する場合は、「Web番組詳細へのリンクを表示」をチェックして「Web番組詳細URL」に置換前URLを入れてください。

(例: EMWUI用) http://localhost:5510/EMWUI/epginfo.html?onid={ONID}&tsid={TSID}&sid={SID}&eid={EID}

(例: legacy用) http://localhost:5510/legacy/epginfo.html?{ONID}-{TSID}-{SID}-{EID}

チューナー名設定

BonDriver名に対してRockbar for EDCB上の表示名を設定できます。

BonDriver名からデフォルトで適当な名前を当て込んでいますが、あっていない場合もあるので適宜表示名を調整してください。

チャンネル設定

メイン画面に表示するチャンネルを設定します。

右リストにあって左リストにない場合は異常ケースとして!を表示します。

選択チャンネル

  • 「全チャンネル」はEDCBから取得したチャンネルです。通信ができてない場合は空になります。
  • 「全チャンネル」から「選択チャンネル」にチャンネルを選んで保存すると、本体の「全て」タブに選択したチャンネルを表示します(並び順も反映)。
  • 「地デジ」「BS」「CS」タブは「選択チャンネル」のうち該当する種類のチャンネルを表示します

お気に入りチャンネル

  • 「選択チャンネル」は「選択チャンネル」タブで選んだチャンネルです。

  • 「選択チャンネル」から「お気に入りチャンネル」にチャンネルを選んで保存すると、本体の「お気に入り」タブにチャンネルを表示します(並び順も反映)。

TVTest連携設定

TVTest連携を行う場合、まずTVTest.exeパスを設定し、BS/CSオプションと地デジオプションを設定してください。

BS/CSオプション・地デジオプションはBonDriverの指定(/d BON_DRIVER)を想定しています。

(例: BS/CS) /d BonDriver_PT3_S.dll

(例: 地デジ) /d BonDriver_PT3_T.dll

その後、ダブルクリック起動や自動起動のオプションを調整してください。

なお、TVTest起動時は本オプションに加え、/TSID /SIDオプションを自動付与しています。

設定ファイル

  • 選択チャンネル一覧:SelectedServices.tsv
  • お気に入りチャンネル一覧:FavoriteServices.tsv
  • その他の設定:RockbarForEDCB.toml

※チャンネル一覧のTSVファイルでは「Tsid」「Sid」列のみデータとして使用します。「Name」列はTSV直接編集時のヘルプテキストとして出力していて、動作上は無視します(必ずEDCB上のチャンネル名を引く)。

やってること・仕様

  • 1分間隔(毎分00秒)でEPGTimerSrvと通信して、最新の番組一覧・予約一覧を取得して表示更新します。
    • EDCB側の変更をリアルタイムに取得したりはしないので、必ず00秒を待つ必要があります。
  • 通信ボリュームが結構あります。内部的に番組一覧をメモリにキープするのでメモリも結構食います。
    • テスト範囲ではローカルパイプ+地上波アニメ全録くらいの運用であれば大した負荷にならなさそうですが、重いシチュエーションがあれば報告してください。
    • 特にTCP/IPでホストが離れてるケースとかは全くテストしてません。
  • 実装にはEDCB内のCtrlCmd.cs, CtrlCmdDef.cs, DefineEnum.csを組み込んで利用しています。

TODO

  • 多分例外・エラー処理が足りてないので足します。
  • ユーザが一定数いるか、不具合報告が多そうであればデバッグログ出力を作るかも。
  • チューナー制御は良いアイディアがない限りやりません(多分、やっても良い成果がでない)。
  • ネットワーク再生はコンセプト上なしの方向で。
  • TVTest自動起動は完全作者専用機能だと思っていますが、利用者がいればオプションは増やしても良いかも。
  • アプリ上での予約登録・削除は多分やりません(登録はCtrlCmd上に予約プリセットを取る方法がなさそう。エラーハンドリング厳しそう。削除は簡単そうだけど削除だけ出来ても…)
  • フィルタは(利用者がいれば)インクリメンタルサーチとかにしても良いかも。
  • サブチャンネル同一番組のマージ機能はEMWUIが対応している場合はこちらも対応します(2019年頃のEMWUIは少なくとも対応していなかった)。
  • 各種マークが見づらかったらアイコンにするとか

History

v0.8.3

  • チャンネル一覧・チューナー一覧のフォーカスアウト時の選択箇所を反転表示から非表示に変更
  • チャンネル一覧・チューナー一覧の正常予約・部分予約・予約不可の色指定設定追加
  • コンテキストメニューのフォント・背景色・正常予約・部分予約・予約不可の色指定設定追加
  • タスクトレイアイコンのクリックイベントをMouseClick→MouseDownに変更(ダブルクリックのときに処理抜けするため)
  • サービス・予約・番組Dictionary作成時にキー存在チェックを追加
  • EMWUI関連のデフォルトURL及びコメントを修正
  • 設定画面のTSID, SIDのソートを数字順に変更
  • ライブラリのVerUp(脆弱性対策)

v0.8.2

  • 起動時に時間がかかるとタイマーイベントが走って落ちる現象の修正
  • 全体例外処理を追加
  • 色変更・フォント変更オプション追加
  • 水平分割オプション追加
  • ×ボタンでタスクトレイアイコン格納オプション追加
  • タスクトレイアイコンクリックで表示・非表示を切り替えるオプションを追加
  • チューナー命名機能追加
  • フィルタの仕様を大文字・小文字無視に変更
  • 設定画面のListView全般にソート処理追加

ライセンス

MIT Licenseとします。