osd.h
上传用户:fy98168
上传日期:2015-06-26
资源大小:13771k
文件大小:7k
源码类别:

DVD

开发平台:

C/C++

  1. #ifndef __OSD_H__
  2. #define __OSD_H__
  3. #if defined(__cplusplus)
  4. extern "C" {
  5. #endif
  6. #include "gendef.h"
  7. #include "stgxobj.h"
  8. #include "layer.h"
  9. typedef struct _KB_OSDRect
  10. {
  11. INT32 nX;
  12. INT32 nY;
  13. INT32 nWidth;
  14. INT32 nHeight;
  15. }KB_OSDRect;
  16. typedef struct _KB_OSDRGB /* defination of RGB structure */
  17. {
  18.     UINT8 cRed; /* red */
  19.     UINT8 cGreen; /* green */
  20.     UINT8 cBlue; /* blue */
  21. }KB_OSDRGB;
  22. /* 定义每个像素的字节数 */
  23. #define KB_OSD_BYTES 2
  24. #define KB_OSD_COLOR_ARGB_16_4444       0    /* A = 4 R = 4 G = 4 B = 4 */
  25. #define KB_OSD_COLOR_ARGB_16_1555       1    /* A = 1 R = 5 G = 5 B = 5 */
  26. #define KB_OSD_COLOR_RGB_24                   2    /* A = 0 R = 8 G = 8 B = 8 */
  27. #define KB_OSD_COLOR_YUV_24                   3    /* A = 0 Y = 8 U = 8 V = 8 */
  28. #define KB_OSD_COLOR_ARGB_32                 4    /* A = 8 R = 8 G = 8 B = 8 */
  29. #define KB_OSD_COLOR_RGBA_16_4444       5    /* R = 4 G = 4 B = 4 A = 4 */
  30. #define KB_OSD_WIDTH     720
  31. #define KB_OSD_HEIGHT    576
  32. #define KB_OSD_COLOR KB_OSD_COLOR_ARGB_16_1555
  33. #if (KB_OSD_COLOR == KB_OSD_COLOR_ARGB_16_4444)
  34.     #define KB_OSD_RGB24_TO_ARGB16(pcRgb24, pcArgb16) 
  35.         pcArgb16[1] = (0xF0 | ((pcRgb24[0] >> 4) & 0x0F)); 
  36.         pcArgb16[0] = (pcRgb24[1] & 0xF0) | ((pcRgb24[2] >> 4) & 0x0F);
  37.     #define KB_OSD_ColorRef_TO_ARGB16(nColorRef, pcArgb16) 
  38.         pcArgb16[1] = ((UINT8)(nColorRef >> 24) & 0x80) | ((UINT8)(nColorRef >> 16) & 0x0F); 
  39.         pcArgb16[0] = ((UINT8)(nColorRef >> 12) & 0xF0) | ((UINT8)(nColorRef >>  4) & 0x0F);
  40.     
  41. #elif (KB_OSD_COLOR == KB_OSD_COLOR_ARGB_16_1555)
  42.     #define KB_OSD_RGB24_TO_ARGB16(pcRgb24, pcArgb16) 
  43.         pcArgb16[1] = (0x80 | ((pcRgb24[0] >> 1) & 0x7c) | ((pcRgb24[1] >> 6) & 0x03)); 
  44.         pcArgb16[0] = ((pcRgb24[1] << 2) & 0xE0) | ((pcRgb24[2] >> 3) & 0x1F);
  45.     #define KB_OSD_RGB24_TO_UINT16(pcRgb24, nUint16) 
  46.         nUint16 = 0x8000 | (((UINT16)pcRgb24[0] << 7) & 0x7c00) | (((UINT16)pcRgb24[1] << 2) & 0x03e0) | (((UINT16)pcRgb24[2] >> 3) & 0x001f);
  47.     
  48.     #define KB_OSD_ColorRef_TO_ARGB16(nColorRef, pcArgb16) 
  49.         pcArgb16[1] = (((UINT8)(nColorRef >> 24) & 0x80) | ((UINT8)(nColorRef >> 17) & 0x7c) | ((UINT8)(nColorRef >> 14) & 0x03)); 
  50.         pcArgb16[0] = ((UINT8)(nColorRef >>  6) & 0xE0) | ((UINT8)(nColorRef >>  3) & 0x1F);
  51.     #define KB_OSD_ColorRef_TO_UINT16(nColorRef, nUint16) 
  52.         nUint16 = 0x8000 | ((UINT16)(nColorRef >> 9) & 0x7c00) | ((UINT16)(nColorRef >> 6) & 0x03e0) | ((UINT16)(nColorRef >> 3) & 0x001f);
  53.                                 
  54. #endif
  55. #if (KB_OSD_COLOR == KB_OSD_COLOR_ARGB_16_4444)
  56.                                 
  57.     #define KB_OSD_RGB24_TO_UINT16(nColorRef, pcArgb16) 
  58.         pcArgb16[1] = ((UINT8)(nColorRef >> 24) & 0x80) | ((UINT8)(nColorRef >> 20) & 0x0F)); 
  59.         pcArgb16[0] = ((UINT8)(nColorRef >> 12) & 0xF0) | ((UINT8)(nColorRef >>  4) & 0x0F);
  60.                                 
  61. #elif (KB_OSD_COLOR == KB_OSD_COLOR_ARGB_16_1555)
  62.                                                                 
  63.     
  64.                                                                 
  65. #endif
  66.                                          /*   |Alpha| Red |Green| Blue | */
  67. typedef UINT32 ColrRef;  /* 0x | FF  | AB  | CD  | EF   | */
  68. //定义颜色值
  69. #define KB_COLOR_TRANSPARENCY  0x00000000 /* 透明 */
  70. #define KB_COLOR_AQUA          0xFF00FFFF /* 浅绿 */
  71. #define KB_COLOR_BLACK         0xFF000000 /* 黑色 */
  72. #define KB_COLOR_BLUE          0xFF0000FF /* 蓝色 */
  73. #define KB_COLOR_FUCHSIA       0xFFFF00FF /* 紫红 */
  74. #define KB_COLOR_GRAY          0xFF808080 /* 灰色 */
  75. #define KB_COLOR_GREEN         0xFF008000 /* 绿色 */
  76. #define KB_COLOR_LIME          0xFF00FF00 /* 酸橙 */
  77. #define KB_COLOR_MAROON        0xFF800000 /* 栗色 */
  78. #define KB_COLOR_NAVY          0xFF000080 /* 深蓝 */
  79. #define KB_COLOR_OLIVE         0xFF808000 /* 橄榄 */
  80. #define KB_COLOR_PURPLE        0xFF800080 /* 紫色 */
  81. #define KB_COLOR_RED           0xFFFF0000 /* 红色 */
  82. #define KB_COLOR_SILVER        0xFFC0C0C0 /* 银色 */
  83. #define KB_COLOR_TEAL          0xFF008080 /* 深青 */
  84. #define KB_COLOR_WHILE         0xFFFFFFFF /* 白色 */
  85. #define KB_COLOR_YELLOW        0xFFFFFF00 /* 黄色 */
  86. #define KB_COLOR_SMALL_WIN  0xFF64AED3 /*浅蓝,播放区的边框*/
  87. #define KB_COLOR_TITLE_BAR  0xFF315D82 /*蓝,用来写系统管理界面中的标题*/
  88. #define KB_COLOR_Option  0xFF85CFF3 /*蓝,用来写系统管理界面中的选项*/
  89. #define KB_COLOR_Selected  0xFFADEE88 /*绿,用来写系统管理界面中的被选中的选项*/
  90. #define KB_COLOR_UnSelected  0xFF347DAA /*蓝,用来写游戏界面中的未被选中的选项*/
  91. #define KB_COLOR_Signal  0xFF72B9E3 /*蓝,用来画搜索界面中信号质量的背景*/
  92. #define KB_COLOR_Start_Search  0xFF61A4CF /*蓝,开始搜索按钮的背景*/
  93. #define KB_COLOR_Quality_Back  0xFF4676A4 /*蓝,信号质量和信号等级的背景色*/
  94. #define KB_COLOR_Quality  0xFFEDDA57 /*黄,信号质量的填充色*/
  95. #define KB_COLOR_INFO_BAR        0xFF315D82/*深蓝,信息条背景*/
  96. #define KB_COLOR_VOLUME_BG      0xFF72B9E3/*声音显示部分背景颜色*/
  97. #define KB_COLOR_CHANNEL_BG    0xFF8DD6F9/*频道背景的蓝色*/
  98. #define KB_COLOR_BG_VOLUME_LOGO   0xFFAF6001/*褐,视频状态下的音量图标的颜色*/
  99. #define KB_COLOR_BLUE_DARK  0xfc315c82
  100. #define KB_COLOR_BLUE_MID  0xfc72b9e2
  101. #define KB_COLOR_BLUE_THIN  0xfc8dd6f9
  102. #define KB_COLOR_SELECT_GREEN  0xfcadee88
  103. #define KB_COLOR_TXT_WHITE  0xfcffffff
  104. #define KB_COLOR_TXT_BLACK  0xfc000000
  105. //函数返回值定义
  106. #define  OSD_RETURN_OK 0   //成功
  107. #define  OSD_RETURN_FAIL -1  //失败
  108. #define  OSD_RETURN_EXIT  -999  // 退出zhengrz 2005-3-31
  109. //定义消息框返回类型
  110. #define IDNONE 0 //return value when there isn't any button
  111. #define IDABORT    1 //The Abort button was selected.
  112. #define IDCANCEL    2 //The Cancel button was selected.
  113. #define IDIGNORE    3 //The Ignore button was selected.
  114. #define IDNO    4 //The No button was selected.
  115. #define IDOK    5 //The OK button was selected.
  116. #define IDRETRY    6 //The Retry button was selected.
  117. #define IDYES    7 //The Yes button was selected. 
  118. #define IDERROR 8 //there is an error when a  messagebox  shows
  119. extern STGXOBJ_Bitmap_t       Bitmap[NUM_VPORTS];
  120. /*****************************************************************************
  121. ** Function prototypes
  122. *****************************************************************************/
  123. extern INT32 KB_OSDFillRect(INT32 nX,INT32 nY,INT32 nWidth,INT32 nHeight,ColrRef nColor);
  124. extern INT32 KB_OSDRef2Rgb(ColrRef nColorRef, KB_OSDRGB *pRgb);
  125. extern INT32 KB_OSDGetTransparency(void);
  126. extern INT32 KB_OSDSetTransparency(INT32 nLevel);
  127. extern void* KB_OSDAllocate(INT32 nWidth, INT32 nHeight);
  128. extern INT32 KB_OSDAllocBitmap(STGXOBJ_Bitmap_t *Bitmap_p,STAVMEM_BlockHandle_t *BlockHandle_p,U32 Width,U32 Height );
  129. extern INT32 KB_OSDInit(void);
  130. #if defined(__cplusplus)
  131. }
  132. #endif
  133. #endif