IUVCDrawer.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*
  2. * Copyright (c) 2014 - 2022 t_saki@serenegiant.com
  3. */
  4. using System.Collections;
  5. using System.Collections.Generic;
  6. using UnityEngine;
  7. namespace Serenegiant.UVC
  8. {
  9. /**
  10. * UVC関係のイベントハンドリングインターフェース
  11. */
  12. public interface IUVCDrawer
  13. {
  14. /**
  15. * UVC機器が接続された
  16. * @param manager 呼び出し元のUVCManager
  17. * @param device 接続されたUVC機器情報
  18. * @return true: UVC機器を使う, false: UVC機器を使わない
  19. */
  20. bool OnUVCAttachEvent(UVCManager manager, UVCDevice device);
  21. /**
  22. * UVC機器が取り外された
  23. * @param manager 呼び出し元のUVCManager
  24. * @param device 接続されたUVC機器情報
  25. */
  26. void OnUVCDetachEvent(UVCManager manager, UVCDevice device);
  27. /**
  28. * IUVCDrawerが指定したUVC機器の映像を描画できるかどうかを取得
  29. * @param manager 呼び出し元のUVCManager
  30. * @param device 接続されたUVC機器情報
  31. */
  32. bool CanDraw(UVCManager manager, UVCDevice device);
  33. /**
  34. * UVC機器からの映像取得を開始した
  35. * @param manager 呼び出し元のUVCManager
  36. * @param device 接続されたUVC機器情報
  37. * @param tex UVC機器からの映像を受け取るTextureオブジェクト
  38. */
  39. void OnUVCStartEvent(UVCManager manager, UVCDevice device, Texture tex);
  40. /**
  41. * UVC機器からの映像取得を終了した
  42. * @param manager 呼び出し元のUVCManager
  43. * @param device 接続されたUVC機器情報
  44. */
  45. void OnUVCStopEvent(UVCManager manager, UVCDevice device);
  46. } // interface IUVCDrawer
  47. } // namespace Serenegiant.UVC