/** * 映像取得を終了した * IUVCDrawerの実装 * @param manager 呼び出し元のUVCManager * @param device 対象となるUVC機器の情報 */ public void OnUVCStopEvent(UVCManager manager, UVCDevice device) { #if (!NDEBUG && DEBUG && ENABLE_LOG) Console.WriteLine($"{TAG}OnUVCStopEvent:{device}"); #endif HandleOnStopPreview(device.deviceName); }
/** * 映像取得を開始した * IUVCDrawerの実装 * @param manager 呼び出し元のUVCManager * @param device 対象となるUVC機器の情報 * @param tex UVC機器からの映像を受け取るTextureインスタンス */ public void OnUVCStartEvent(UVCManager manager, UVCDevice device, Texture tex) { #if (!NDEBUG && DEBUG && ENABLE_LOG) Console.WriteLine($"{TAG}OnUVCStartEvent:{device}"); #endif HandleOnStartPreview(device.deviceName, tex); }
/** * 解像度選択 * IOnUVCSelectSizeHandlerの実装 * @param manager 呼び出し元のUVCManager * @param device 対象となるUVC機器の情報 * @param formats 対応している解像度についての情報 */ public SupportedFormats.Size OnUVCSelectSize(UVCManager manager, UVCDevice device, SupportedFormats formats) { #if (!NDEBUG && DEBUG && ENABLE_LOG) Console.WriteLine($"{TAG}OnUVCSelectSize:{device}"); #endif if (device.IsTHETA_V) { #if (!NDEBUG && DEBUG && ENABLE_LOG) Console.WriteLine($"{TAG}OnUVCSelectSize:THETA V"); #endif return FindSize(formats, 3840, 1920); } else if (device.IsTHETA_S) { #if (!NDEBUG && DEBUG && ENABLE_LOG) Console.WriteLine($"{TAG}OnUVCSelectSize:THETA S"); #endif return FindSize(formats, 1920, 1080); } else { #if (!NDEBUG && DEBUG && ENABLE_LOG) Console.WriteLine($"{TAG}OnUVCSelectSize:other UVC device,{device}"); #endif return formats.Find(DefaultWidth, DefaultHeight); } }
// // Update is called once per frame // void Update() // { // // } //================================================================================ /** * UVC機器が接続された * IOnUVCAttachHandlerの実装 * @param manager 呼び出し元のUVCManager * @param device 対象となるUVC機器の情報 * @return true: UVC機器を使用する, false: UVC機器を使用しない */ public bool OnUVCAttachEvent(UVCManager manager, UVCDevice device) { #if (!NDEBUG && DEBUG && ENABLE_LOG) Console.WriteLine($"{TAG}OnUVCAttachEvent:{device}"); #endif // XXX 今の実装では基本的に全てのUVC機器を受け入れる // ただしTHETA SとTHETA Vは映像を取得できないインターフェースがあるのでオミットする // CanDrawと同様にUVC機器フィルターをインスペクタで設定できるようにする var result = !device.IsRicoh || (device.IsTHETA_S || device.IsTHETA_V); result &= UVCFilter.Match(device, UVCFilters); return result; }
/** * IUVCDrawerが指定したUVC機器の映像を描画できるかどうかを取得 * IUVCDrawerの実装 * @param manager 呼び出し元のUVCManager * @param device 対象となるUVC機器の情報 */ public bool CanDraw(UVCManager manager, UVCDevice device) { return UVCFilter.Match(device, UVCFilters); }
/** * UVC機器が取り外された * IOnUVCDetachEventHandlerの実装 * @param manager 呼び出し元のUVCManager * @param device 対象となるUVC機器の情報 */ public void OnUVCDetachEvent(UVCManager manager, UVCDevice device) { #if (!NDEBUG && DEBUG && ENABLE_LOG) Console.WriteLine($"{TAG}OnUVCDetachEvent:{device}"); #endif }