overlay: Refactor State Transitions.
Refactor transitions by templatizing to have default behavior for most cases
and full specializations for specific cases.
Partial specialization of functions is not allowed, so create templatized
intermediate functions for those use cases.
For ex: if we have 8 states, we don't need 8x8 transition handlers.
Add and define OV_DUAL_DISPLAY state.
Add a GenericPipe for subtitles to OV_2D_VIDEO_ON_PANEL_TV state.
Add a 2D_VIDEO_ON_TV state and its transitions.
Change-Id: I064cf813c43c3e3736800fbd465c6f1aa9b3a2d3
Acked-by: Saurabh Shah <saurshah@codeaurora.org>
diff --git a/liboverlay/overlayUtils.h b/liboverlay/overlayUtils.h
index f82fb88..f070bd1 100644
--- a/liboverlay/overlayUtils.h
+++ b/liboverlay/overlayUtils.h
@@ -370,6 +370,7 @@
/* 2D Video */
OV_2D_VIDEO_ON_PANEL,
OV_2D_VIDEO_ON_PANEL_TV,
+ OV_2D_VIDEO_ON_TV,
/* 3D Video on one display (panel or TV) */
OV_3D_VIDEO_ON_2D_PANEL,
@@ -382,12 +383,14 @@
/* UI Mirroring */
OV_UI_MIRROR,
OV_2D_TRUE_UI_MIRROR,
- OV_M3D_TRUE_UI_MIRROR, // Not yet supported
/* Composition Bypass */
OV_BYPASS_1_LAYER,
OV_BYPASS_2_LAYER,
OV_BYPASS_3_LAYER,
+
+ /* External only for dual-disp */
+ OV_DUAL_DISP,
};
inline void setMdpFlags(eMdpFlags& f, eMdpFlags v) {
@@ -606,6 +609,8 @@
return "OV_2D_VIDEO_ON_PANEL";
case OV_2D_VIDEO_ON_PANEL_TV:
return "OV_2D_VIDEO_ON_PANEL_TV";
+ case OV_2D_VIDEO_ON_TV:
+ return "OV_2D_VIDEO_ON_TV";
case OV_3D_VIDEO_ON_2D_PANEL:
return "OV_3D_VIDEO_ON_2D_PANEL";
case OV_3D_VIDEO_ON_3D_PANEL:
@@ -624,6 +629,8 @@
return "OV_BYPASS_2_LAYER";
case OV_BYPASS_3_LAYER:
return "OV_BYPASS_3_LAYER";
+ case OV_DUAL_DISP:
+ return "OV_DUAL_DISP";
default:
return "UNKNOWN_STATE";
}