ECMirrorRender.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #pragma once
  2. /*!
  3. * \brief 亿连解码渲染接口
  4. */
  5. class ECMirrorRender
  6. {
  7. public:
  8. /*!
  9. * \brief 镜像方向
  10. */
  11. enum MirrorDirection {
  12. LANDSCAPE, /*! 横屏 */
  13. VERTICAL, /*! 竖屏 */
  14. };
  15. public:
  16. /*!
  17. * \brief 初始化解码器
  18. * 根据实现需要内部可直接使用成员变量中的屏幕和镜像分辨率
  19. */
  20. virtual void initialize() = 0;
  21. /*!
  22. * \brief 解码渲染
  23. * \param[in] data 镜像数据
  24. * \param[in] len 镜像数据长度
  25. * \param[in] direction 镜像的显示方向,即横屏或竖屏
  26. */
  27. virtual void play(const void *data, int len, MirrorDirection direction = LANDSCAPE) = 0;
  28. /*!
  29. * \brief 显示镜像画面
  30. */
  31. virtual void show() = 0;
  32. /*!
  33. * \brief 隐层镜像画面
  34. */
  35. virtual void hide() = 0;
  36. /*!
  37. * \brief 释放解码器
  38. */
  39. virtual void release() = 0;
  40. /*!
  41. * \brief 设置屏幕分辨率
  42. * 该方法会在初始化之前被调用
  43. */
  44. inline void setScreenSize(int screenW, int screenH) {
  45. mScreenW = screenW;
  46. mScreenH = screenH;
  47. }
  48. /*!
  49. * \brief 设置镜像分辨率
  50. * 该方法会在初始化之前被调用
  51. */
  52. inline void setMirrorSize(int mirrorW, int mirrorH) {
  53. mMirrorW = mirrorW;
  54. mMirrorH = mirrorH;
  55. }
  56. protected:
  57. int mScreenW; /*! 屏幕宽度 */
  58. int mScreenH; /*! 屏幕高度 */
  59. int mMirrorW; /*! 镜像宽度 */
  60. int mMirrorH; /*! 镜像宽度 */
  61. };