| #ifndef _EXYNOS_SCALERBLEND_H_ |
| #define _EXYNOS_SCALERBLEND_H_ |
| |
| #include "libscaler-v4l2.h" |
| |
| class CScalerBlendV4L2 : public CScalerV4L2 { |
| |
| public: |
| CScalerBlendV4L2(int instance, int allow_drm); |
| ~CScalerBlendV4L2(); |
| struct SrcBlendInfo m_SrcBlndCfg; |
| |
| // H/W Control |
| virtual bool DevSetCtrl(); |
| |
| void GetCustomAlphaBlendFmt(int32_t &src_color_space, |
| unsigned int srcblendfmt); |
| |
| inline void SetSrcBlendOp(SRC_BL_OP op) { |
| m_SrcBlndCfg.blop = op; |
| SetFlag(m_fStatus, SCF_SRC_BLEND); |
| } |
| |
| inline void SetSrcBlendHPos(int srcblendhpos) { |
| m_SrcBlndCfg.srcblendhpos = srcblendhpos; |
| } |
| |
| inline void SetSrcBlendVPos(int srcblendvpos) { |
| m_SrcBlndCfg.srcblendvpos = srcblendvpos; |
| } |
| |
| inline void SetSrcBlendPremulti(int srcblendpremulti) { |
| m_SrcBlndCfg.srcblendpremulti = srcblendpremulti; |
| } |
| |
| inline void SetSrcBlendFmt(int srcblendfmt) { |
| m_SrcBlndCfg.srcblendfmt = srcblendfmt; |
| } |
| |
| inline void SetSrcBlendStride(int srcblendstride) { |
| m_SrcBlndCfg.srcblendstride = srcblendstride; |
| } |
| |
| inline void SetSrcBlendWidth(int srcblendwidth) { |
| m_SrcBlndCfg.srcblendwidth= srcblendwidth; |
| } |
| |
| inline void SetSrcBlendHeight(int srcblendheight) { |
| m_SrcBlndCfg.srcblendheight = srcblendheight; |
| } |
| |
| inline void SetSrcGlobalAlpha(int globalalpha, bool enable) { |
| m_SrcBlndCfg.globalalpha.enable = enable; |
| m_SrcBlndCfg.globalalpha.val = globalalpha; |
| } |
| |
| inline void SetSrcBlendCSCSpace(bool enable, |
| enum colorspace space, bool wide) { |
| m_SrcBlndCfg.cscspec.enable = enable; |
| m_SrcBlndCfg.cscspec.space = space; |
| m_SrcBlndCfg.cscspec.wide = wide; |
| } |
| }; |
| #endif |