dispconfig.h
上传用户:fjqzjn
上传日期:2008-01-21
资源大小:2764k
文件大小:6k
源码类别:

Windows CE

开发平台:

Visual C++

  1. /******************************************************************************
  2. ** Copyright (C) 2004. Intel Corporation. All Rights Reserved. 
  3. **
  4. ** The source code contained or described herein and all documents related to the
  5. ** source code ("Material") are owned by Intel Corporation or its suppliers or 
  6. ** licensors. Title to the Material remains with Intel Corporation or its suppliers
  7. ** and licensors. The Material contains trade secrets and proprietary and 
  8. ** confidential information of Intel or its suppliers and licensors. The Material 
  9. ** is protected by worldwide copyright and trade secret laws and treaty provisions.
  10. ** No part of the Material may be used, copied, reproduced, modified, published, 
  11. ** uploaded, posted, transmitted, distributed, or disclosed in any way without 
  12. ** Intel抯 prior express written permission.
  13. ** 
  14. ** No license under any patent, copyright, trade secret or other intellectual 
  15. ** property right is granted to or conferred upon you by disclosure or delivery 
  16. ** of the Materials, either expressly, by implication, inducement, estoppel or 
  17. ** otherwise. Any license under such intellectual property rights must be express 
  18. ** and approved by Intel in writing.
  19. ******************************************************************************/
  20. #if !defined (__DISPCONFIG_H__)
  21. #define __DISPCONFIG_H__
  22. // This file defines the escapes and structures of the Marathon Display Configuration
  23. // Application Programming Interface (API)
  24. // Marathon Display Configuraiton Escapes
  25. #define DRVESC_DISPLAY_CONFIG_BASE (100000 + 1000)
  26. #define DRVESC_CONFIG_DISPLAYSYSTEM (DRVESC_DISPLAY_CONFIG_BASE+0)
  27. /*
  28. Escape Usage:
  29.     ExtEscape(hdcMarathon, 
  30.   DRVESC_CONFIG_DISPLAYSYSTEM, 
  31.   sizeof(DISPCFG_DISPLAY_SYSTEM),
  32.   (LPSTR) &sDisplayConfig, // pointer to DISPCFG_DISPLAY_SYSTEM stucture
  33.   0,
  34.   NULL);
  35. */
  36. #define DRVESC_CREATE_OFFSCREENSURFACE (DRVESC_DISPLAY_CONFIG_BASE+1)
  37. /*
  38. Escape Usage:
  39.     ExtEscape(hdcMarathon, 
  40.   DRVESC_CREATE_OFFSCREENSURFACE, 
  41.   sizeof(DISPCFG_CREATE_SURFACE),
  42.   (LPSTR) &sCreateSurface, // pointer to DISPCFG_CREATE_SURFACE stucture
  43.   0,
  44.   NULL);
  45. */
  46. #define DRVESC_GET_SURFACEINFO (DRVESC_DISPLAY_CONFIG_BASE+2)
  47. /*
  48. Escape Usage:
  49.     ExtEscape(hdcMarathon, 
  50.   DRVESC_GET_SURFACEINFO, 
  51.   sizeof(DISPCFG_GET_SURFACE_INFO),
  52.   (LPSTR) &sSurfaceSelect, // pointer to DISPCFG_GET_SURFACE_INFO stucture
  53.   sizeof(DISPCFG_GET_SURFACE_INFO),
  54.   (LPSTR) &sSurfaceInfo, // pointer to DISPCFG_GET_SURFACE_INFO stucture
  55.   );
  56. */
  57. #define DRVESC_DIRTY (DRVESC_DISPLAY_CONFIG_BASE+3)
  58. /*
  59. Escape Usage:
  60.     ExtEscape(hdcMarathon, 
  61.   DRVESC_DIRTY,
  62.   0,
  63.   NULL,
  64.   sizeof(BOOL),
  65.   (LPSTR) &bIsDirty); // pointer to BOOL that will indicate if the Marathon
  66. // surface has been updated
  67. */
  68. // #define DRVESC_RESREVED (DRVESC_DISPLAY_CONFIG_BASE+4)
  69. #define DRVESC_ACQUIRE_DUALDISPLAY (DRVESC_DISPLAY_CONFIG_BASE+5)
  70. /*
  71. Escape Usage:
  72.     ExtEscape(hdcMarathon, 
  73.   DRVESC_ACQUIRE_DUALDISPLAY,
  74.   sizeof(DISPCFG_ACQUIRE_LOCK),
  75.   (LPSTR) &In, // DISPCFG_ACQUIRE_LOCK struct
  76.   sizeof(DISPCFG_ACQUIRE_LOCK),
  77.   (LPSTR) &Out, // DISPCFG_ACQUIRE_LOCK struct
  78.   );
  79. */
  80. // Marathon Display Configuration defines/enumerations
  81. // typs of surfaces
  82. typedef enum _DCFG_DISPLAY_SURFACE_ {
  83.     DCFG_DESKTOP, // Desktop surface
  84.     DCFG_SECONDARYSURFACE, // Seconadary display surface
  85. } DCFG_DISPLAY_SURFACE;
  86. typedef enum _DCFG_LCD_SOURCE_ {
  87.     DCFG_SOURCE_MARATHON,
  88.     DCFG_SOURCE_XSCALE,
  89.     DCFG_SOURCE_NOT_APPLICABLE,
  90. } DCFG_LCD_SOURCE;
  91. // Format of pixels feed into Marathon's LCD-IN from XScale LCD Controller
  92. typedef enum _DCFG_LCD_IN_FORMAT_ {
  93.     DCFG_LCD_IN_555,
  94.     DCFG_LCD_IN_556,
  95.     DCFG_LCD_IN_565,
  96.     DCFG_LCD_IN_655,
  97.     DCFG_LCD_IN_665,
  98.     DCFG_LCD_IN_666,
  99.     DCFG_FORMAT_NOT_APPLICABLE, // Format not applicable when Marathon is source
  100. } DCFG_LCD_IN_FORMAT;
  101. // Marathon Display Configuration Sturctures
  102. // Describes the surface that a display stream is connected to
  103. typedef struct _DCFG_CONNECT_SURFACE_ {
  104.     DCFG_DISPLAY_SURFACE     eSurface; // Surface to connect to
  105.     // Border Color & Refresh Rate fields only valid if surface DCFG_SECONDARYSURFACE
  106.     ULONG ulBorderColor; // Border color if required
  107.     ULONG ulRefreshRate; // Recommendation only
  108. ULONG ulPhysRotation; // orination of primary Display, in degrees
  109. } DCFG_CONNECT_SURFACE;
  110. // Controls configuration of a LCD_SWITCH port
  111. typedef struct _DCFG_SWITCH_LCD_ {   
  112.     BOOL                bValid; // TRUE - program switch with following params, FALSE - do not        
  113.     BOOL                bActivate; // Enable/Disable the LCD output  
  114.     DCFG_LCD_SOURCE eLcdSource;
  115.     DCFG_LCD_IN_FORMAT eXScaleFormat;    // Only valid if eLcdSource == DCFG_SOURCE_XSCALE
  116. } DCFG_SWITCH_LCD;
  117. typedef struct _DISPCFG_DISPLAY_SYSTEM_
  118. {
  119.     BOOL bSet; // Get/Set Parameters in this structure
  120.     DCFG_SWITCH_LCD sLcdInternal;
  121.     DCFG_SWITCH_LCD sLcdExternal;
  122.     DCFG_CONNECT_SURFACE sConnectSurface; // Surface to connect to Marathon
  123. } DISPCFG_DISPLAY_SYSTEM;
  124. // Create/destroy off-screen display surface
  125. typedef struct _DISPCFG_CREATE_SURFACE_
  126. {
  127. WORD wWidth;
  128. WORD wHeight;
  129. } DISPCFG_CREATE_SURFACE;
  130. typedef struct _SURFACE_PHYSICAL_VIEW_
  131. {
  132.     ULONG  ulPhysAddress; // Physical address
  133.     ULONG  ulWidth;         // Width in pixels
  134.     ULONG  ulHeight;        // Height in pixels
  135.     ULONG  ulStride;        // Stride in bytes
  136.     ULONG  ulBpp;           // Bits Per Pixel
  137.   
  138.     /* This bool indicates the driver has changed the shape and orientation
  139.    of the frame buffer. The driver does this so that the frame buffer is correctly 
  140.    aligned for displaying to an external display. */
  141.     BOOL   bDriverRealigned;
  142.     LONG   lPhysicalRotation;          // Rotation angle of the frame buffer contents.
  143. } SURFACE_PHYSICAL_VIEW;
  144. typedef struct _DISPCFG_GET_SURFACE_INFO_
  145. {
  146.     DCFG_DISPLAY_SURFACE    eDisplaySurface; // Surface to return information
  147.     SURFACE_PHYSICAL_VIEW   sPhysSurfaceInfo; // Surface information
  148. } DISPCFG_GET_SURFACE_INFO;
  149. // Acquireing this interface is only required for calls to set the state
  150. typedef struct _DISPCFG_ACQUIRE_LOCK_
  151. {
  152. BOOL bAcquire; // We are trying to acquire the interface
  153. BOOL bRelease; // We are releasing the interface
  154. BOOL bSuccess; // The returned succes or error
  155. } DISPCFG_ACQUIRE_LOCK;
  156. #endif // #if !defined (__DISPCONFIG_H__)