blob: a7d7741592e556eb0bdcf3909ebf1aef9530b647 [file] [log] [blame]
#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