⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tvphdm_fw.h

📁 ti的数字电视芯片 tvp9000的源码
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef TVP_HDM_FW_DOT_H_IS_DEFINED
#define TVP_HDM_FW_DOT_H_IS_DEFINED

/*********************************************************************
*    Property of Texas Instruments Incorporated, Copyright 2004  
*    All rights reserved                                              
**********************************************************************/
/*********************************************************************
*                                                                     
* Description:                                                        
*   Include file for OSD modules                                     
*                                                                     
**********************************************************************/
/*********************************************************************
*
* $Revision: $
*
* $History: TvpHdm_fw.h $
* 
*********************************************************************/

/* Layer Number */
#define TVP_CURSOR_LAYER            (0x1)
#define TVP_GRAPHICS_2D_MAIN_LAYER  (0x2)
#define TVP_GRAPHICS_2D_AUX_LAYER   (0x4)
#define TVP_VIDEO_LAYER             (0x8)
#define TVP_STILL_LAYER             (0x10)
#define TVP_BACKGROUND_LAYER        (0x20)
#define TVP_VIRTUAL_LAYER           (0x40)
#define TVP_UNKNOWN_LAYER           (0x80)

/* Variables */
extern const unsigned long TvpHdmBitsPerPixelGlbl[] ;

extern unsigned long TvpCurSemaphoreGlbl; /* semaphore for the cursor APIs */
extern TvpHDisplay   TvpCurDisplayGlbl;   /* status of the cursor hardware */

extern unsigned long TvpStlSemaphoreGlbl; /* semaphore for the still APIs */
extern TvpHDisplay   TvpStlDisplayGlbl;   /* status of the still hardware */

extern unsigned long TvpBckSemaphoreGlbl; /* semaphore for the background APIs */
extern TvpHDisplay   TvpBckDisplayGlbl;   /* status of the background hardware */

extern unsigned long TvpVidSemaphoreGlbl; /* semaphore for the video APIs */
extern TvpHDisplay   TvpVidDisplayGlbl;   /* status of the video hardware */

extern unsigned long TvpVrtSemaphoreGlbl; /* semaphore for the virtual APIs */

extern unsigned long TvpGrpSemaphoreGlbl; /* semaphore for the graphics APIs */
extern TvpHDisplay   TvpGrpDisplayGlbl[];
extern unsigned long TvpGrpHwIndexGlbl[];
/******************************************************************************
*                                                                              
*  MACROS                                                                      
*                                                                              
*******************************************************************************/

/* Pixel Macros */

/* fpixIsEven 
 *
 * Determines if the pixel is an even valued pixel or not 
 * Returns non-zero if even, and 0 if odd 
 *
 */
#define tvpFpixIsEven(pix) (!(pix & 1))


 /*
  * fpixIsOdd
  *
  * Determines if the pixel is an odd valued pixel or not
  * Returns non-zero if odd, and 0 if even 
  */
#define tvpFpixIsOdd(pix) (pix & 1)


/*
 *
 * pixSetEven
 *  Sets a pixel to even if it is odd, otherwise leaves it alone 
 *
 */
#define tvpPixSetEven(pix) (pix & ~1)


/*
 * pixSetOdd
 *      Sets a pixel to odd if it is even, otherwise leaves it alone 
 *
 */
#define tvpPixSetOdd(pix) (tvpFpixIsOdd(pix)?pix:(pix-1))


/*
 * cpixGetDisplayWidth
 *
 * Returns the Width of a display window in pixels given
 * the coordinate data structure.
 *
 */
#define tvpCpixGetDisplayWidth(pCoord) ((pCoord)->pixX1 - (pCoord)->pixX0 + 1)

/*
 * cpixGetDisplayWidth
 *
 * Returns the Width of a display window in pixels given
 * the coordinate data structure.                                  
 *
 */
#define tvpCpixGetDisplayHeight(pCoord) ((pCoord)->pixY1 - (pCoord)->pixY0 + 1)

/*
 * OSDDisplay
 *
 * The bit fields of the hardware region attribute structure.
 */
typedef struct TvpOsdParams
{
   unsigned int display_priority_level            :4 ;
   unsigned int anti_flickering_edge              :1 ;
   unsigned int anti_flickering_enable            :1 ;
   unsigned int clut_loading_configuration        :1 ;
   unsigned int RESERVED0                         :1 ;
   unsigned int bitmap_clut_offset                :8 ;
   unsigned int window_blending_level             :8 ;
   unsigned int blending_type                     :2 ;
   unsigned int RESERVED1                         :1 ;
   unsigned int transparency_enable               :1 ;
   unsigned int dtype                             :4 ;

   unsigned long source_image_base_address           ;

   unsigned long source_display_image_width          ;

   unsigned long clut_base_address                   ;

   unsigned int  RESERVED2                        :10;
   unsigned int  disp_x                           :11;
   unsigned int  disp_y                           :11;

   unsigned int  RESERVED3                        :10;
   unsigned int  width                            :11;
   unsigned int  height                           :11;

   unsigned long transparent_color                   ;

   struct TvpOsdParams *pOSDParams_next              ;
} TvpOsdParams;


typedef struct TvpOsdDisplay
{
  // osdData should be the first item in the structure. This allows
  // the same value in the TvpOsdDisplay* as in the TvpOsdParams*
  // It also supports checking that the TvpOsdParams structure is 
  // on a Quad word boundary (required by reqion hardware), by permitting
  // the application to allocate the TvpOsdDisplay stucture on a 
  // Quad Word boundary 
  TvpOsdParams         osdData;         /* OSD Data that is used by hardware */
  TvpOsdDisplayId      idDisplay;       /* Display Number or ID */
  TvpOsdBlendFactor    window_blending_level; /* Blending factor */
  Tvp_On_Off           visibility;
  TvpOsdCoords         coords_disp;     /* coordinates of display */
  TvpOsdCoords         coords_area;     /* coordinates of area selected */
  char *               pBitmap;         /* Actual base address of image bitmap */
  TvpOsdPalette        *pPalette;       /* Palette data if needed */
  struct TvpOsdDisplay *next;           /* Used only in the case of regions/virtual */
  struct TvpOsdDisplay *previous;       /* Used only in the case of regions/virtual */
} TvpOsdDisplay;                        /* next, previous always the last field of the structure */


// Font Structure

typedef struct TvpOsdFont
{
    unsigned long  Count;         // Count of glyphs for this character set.
    unsigned long  Height;        // Height of glyphs in pixels.
    TvpOsdDisptype Format;        // Format of glyph data.
    char *         pFontGlyph;    // Pointer to the font glyph table.
    unsigned long  FontTable[1];  // Dynamically sized font information table.
} TvpOsdFont;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -