class

SteamVR::Usecase

Inherits Reference < Object

スタートアップ登録と終了イベントの処理(仕様書 4.5 節)。

Constants

APP_KEY = "kairo.kxnotifyutils"
Log = ::Log.for("steamvr")

Constructors

new(repository : Repository, store : ManifestStore, manifest_path : String, exe_path : String)
Source

Class methods

build_manifest(exe_path : String) : String

vrmanifest の内容を組み立てる。 配布物には含めず、起動時に解決した実行ファイルの絶対パスを埋めて書き出す。

Source

Instance methods

exe_path
Source
manifest_path
Source
moved?(section : Config::SteamVRSection) : Bool

実行ファイルが移動したかを、前回登録時のパスとの比較で判定する。

Source
quit_requested?

SteamVR の終了要求を受けたかを返す。受けていれば応答を返してから終了処理へ入る。

Source
register

登録。vrmanifest を生成してから OpenVR へ登録し、自動起動を有効にする。

Source
registered?
Source
sync(section : Config::SteamVRSection) : SyncResult

毎起動時の同期。 登録済みの記録があり実行ファイルが移動していれば、SteamVR 側のキャッシュを確実に更新するため マニフェストの書き換えだけで済ませず再登録まで行う。

Source
unregister

解除。自動起動を無効にし、登録を外し、生成した vrmanifest も消す。

自動起動を無効にできたかどうかは、マニフェストの登録解除の成否と分けて返す。 まとめて失敗として扱うと、呼び出し側は設定に「登録済み」を残す。 次回起動時の sync がその記録と実状態の食い違いを「登録が消えた」と読み、 利用者が解除した自動起動を有効に戻してしまう。

Source