hv_drv_OsdBlend.h 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /**
  2. * @file hv_drv_OsdBlend.h
  3. * @brief Osd driver layer blend interface.
  4. * @verbatim
  5. * ==============================================================================
  6. * ##### How to use this driver #####
  7. * ==============================================================================
  8. * @endverbatim
  9. *
  10. * @author HiView SoC Software Team
  11. * @version 0.0.1
  12. * @date 2022-08-22
  13. */
  14. #ifndef __HV_DRV_OSDBLEND_H
  15. #define __HV_DRV_OSDBLEND_H
  16. typedef VOID (*pfBlendingCallback)(OsdBlendingStage enStage, VOID *pvArg1, VOID *pvArg2);
  17. VOID Hv_Drv_OsdBlend_SetRectGroupAlpha(OsdWindowPhyId enWinID, UCHAR8 ucAlpha);
  18. VOID Hv_Drv_OsdBlend_SetSwitch(OsdBlendingStage enStage, BOOL bSwitch);
  19. VOID Hv_Drv_OsdBlend_SetAlphaSelect(OsdBlendingStage enStage, OsdAlphaSelectType enType, UCHAR8 ucValue);
  20. VOID Hv_Drv_OsdBlend_SetAlphaOutput(OsdBlendingStage enStage, OsdAlphaOutputType enType, UCHAR8 ucValue);
  21. VOID Hv_Drv_OsdBlend_SetAlphaOutputRatio(OsdBlendingStage enStage, BOOL bEnable, UCHAR8 ucValue);
  22. VOID Hv_Drv_OsdBlend_SetBackground(OsdBlendingStage enStage, BOOL bEnable, USHORT16 usColor, UCHAR8 ucAlpha);
  23. VOID Hv_Drv_OsdBlend_UniversalAlphaExcludeStage(OsdBlendingStage enStage, UINT32 uiParam);
  24. VOID Hv_Drv_OsdBlend_UniversalAlphaExcludeClear(VOID);
  25. /**
  26. * @brief set osd universal alpha type
  27. * @param[in] enType universal alpha type OSD_UNIVERSAL_ALPHA_TYPE_ALL: all have same alpha, include fonts
  28. * OSD_UNIVERSAL_ALPHA_TYPE_EXCLUDE_FONT: all except fonts have same alpha
  29. * @param[in] ucAlpha alpha value to set
  30. * @return VOID without return
  31. */
  32. VOID Hv_Drv_OsdBlend_SetUniversalAlpha(OsdUniversalAlphaType enType, UCHAR8 ucAlpha);
  33. /**
  34. * @brief set blending type
  35. * @param[in] enStage blending stage OSD_BLENDING_STAGE_RECT_GROUP: rect/grid/line within window
  36. * OSD_BLENDING_STAGE_RECT_FONT: rect-group/font within font window
  37. * OSD_BLENDING_STAGE_WIN01: win0/win1
  38. * OSD_BLENDING_STAGE_WIN23: win2/win3
  39. * OSD_BLENDING_STAGE_WIN0123: win01/win23
  40. * OSD_BLENDING_STAGE_WINRECT: win_rect0/win_rect1
  41. * OSD_BLENDING_STAGE_WINALL: win_rect01/win_0123
  42. * OSD_BLENDING_STAGE_GRAPHIC: winall/graphic
  43. * @param[in] enType blending type OSD_BLENDING_TYPE_NOBLENDING: no blend between two layers
  44. * OSD_BLENDING_TYPE_BLENDING: blend between two layers
  45. * @param[in] ucAlpha alpha value
  46. * @return VOID without return
  47. */
  48. VOID Hv_Drv_OsdBlend_SetBlendingType(OsdBlendingStage enStage, OsdBlendingType enType, UCHAR8 ucAlpha);
  49. /**
  50. * @brief init blend options
  51. * @param[in] None
  52. * @return VOID without return
  53. */
  54. VOID Hv_Drv_OsdBlend_Init(VOID);
  55. #endif