tchaud.h
上传用户:qiulin1960
上传日期:2013-10-16
资源大小:2844k
文件大小:4k
源码类别:

Windows CE

开发平台:

Windows_Unix

  1. /*++
  2. THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  3. ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  4. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  5. PARTICULAR PURPOSE.
  6. Copyright (c) 1995-2000 Microsoft Corporation.  All rights reserved.
  7. @doc INTERNAL DRIVERS PDD TOUCH_PANEL
  8. @module tchaud.h |
  9.     This module contains structures common to the touch and audio drivers, concerning the
  10. layout of and definitions for the Touch/Audio ASIC.
  11. Environment:
  12. <tab>    Windows CE
  13. Revision History:
  14. --*/
  15. #ifndef _TCHAUD_H
  16. #define _TCHAUD_H
  17. #define PAD(label,amt)  UCHAR Pad##label[amt]
  18. //
  19. // @doc INTERNAL DRIVERS PDD TOUCH_PANEL
  20. // @struct TCHAUD_ASIC_REGISTERS |
  21. // Layout of the Touch/Audio ASIC Registers.
  22. //
  23. // @field USHORT | ioAdcCntr |
  24. // ADC Control Register
  25. //
  26. // @field USHORT | ioAdcStr |
  27. // ADC Status Register
  28. //
  29. // @field USHORT | ucbCntr |
  30. // UCB Control Register
  31. //
  32. // @field USHORT | ucbStr |
  33. // UCB Status Register
  34. //
  35. // @field USHORT | ucbRegister |
  36. // Data to be sent to UCB
  37. //
  38. // @field USHORT | ioSoundCntr |
  39. // Sound Control Register
  40. //
  41. // @field USHORT | ioSoundStr |
  42. // Sound Status Register
  43. //
  44. // @field USHORT | intrMask |
  45. // Interrupt Mask Register
  46. //
  47. typedef struct {
  48.     //
  49.     // System Registers.
  50.     //
  51.     USHORT ioAdcCntr;      // offset 0x0000
  52.     PAD(0,0x2);
  53.     USHORT ioAdcStr;    // offset 0x0004
  54.     PAD(1,0x2);
  55.     USHORT ucbCntr;             // offset 0x0008
  56.     PAD(2,0x2);
  57.     USHORT ucbStr;             // offset 0x000C
  58.     PAD(3,0x2);
  59.     USHORT ucbRegister;       // offset 0x0010
  60.     PAD(4,0x2);
  61.     USHORT ioSoundCntr;         // offset 0x0014
  62.     PAD(5,0x2);
  63.     USHORT ioSoundStr;         // offset 0x0018
  64.     PAD(6,0x2);
  65.     USHORT intrMask;         // offset 0x001C
  66. } TCHAUD_ASIC_REGISTERS, *PTCHAUD_ASIC_REGISTERS;
  67. // Definitions for the ioAdcCntr
  68. #define ioAdcCntrDoSample (1<<14)
  69. #define ioAdcCntrPenState (1<<13)
  70. #define ioAdcCntrPenTimingEn (1<<10)
  71. // Definitions for the ioAdcStr
  72. #define ioAdcStrPenIntr (1<<4)
  73. #define ioAdcStrUcbIntr (1<<3)
  74. #define ioAdcStrPenTmgIntr (1<<2)
  75. // Definitions for the ucbCntr
  76. #define ucbCntrUcbReset (1<<15)
  77. #define ucbCntrUcbPowerDown (1<<14)
  78. #define ucbCntrWriteBit (1<<4)
  79. // Definitions for the ucbStr
  80. #define ucbStrRegIntr (1<<0)
  81. // Definitions for the ioSoundCntr
  82. #define ioSoundCntrRecordEn (1<<15)
  83. #define ioSoundCntrPlaybackEn (1<<14)
  84. // Definitions for the ioSoundStr
  85. #define ioSoundStrRecordIntr (1<<15)
  86. #define ioSoundStrRecordEndIntr (1<<14)
  87. #define ioSoundStrPlaybackIntr (1<<13)
  88. #define ioSoundStrPlaybackEndIntr (1<<12)
  89. // Definitions for the intrMask
  90. #define intrMaskPenIntrMask (1<<4)
  91. #define intrMaskUcbIntrMask (1<<3)
  92. #define intrMaskPenTmngIntrMask (1<<2)
  93. #define intrMaskSoundIntrMask (1<<1)
  94. #define intrMaskRegIntrMask (1<<0)
  95. //
  96. // @doc INTERNAL DRIVERS PDD TOUCH_PANEL
  97. // @struct TOUCHPANEL_POINT_SAMPLE |
  98. //
  99. // Defines the layout of one coordinate pair sample by the ADC.
  100. //
  101. typedef struct {
  102.     USHORT XSample;     //@field X Coordinate.
  103.     USHORT YSample;     //@field Y Coordinate.
  104. } TOUCHPANEL_POINT_SAMPLE, *PTOUCHPANEL_POINT_SAMPLE;
  105. // Name of mutex for accessing touch/audio registers
  106. #define TCHAUD_MUTEX_NAME  TEXT("TCHAUD")
  107. // Prototype functions from drvlib
  108. #ifdef __cplusplus
  109. extern "C" {
  110. #endif
  111. void TchAudLock(HANDLE hMutex, PULONG pSem);
  112. void TchAudUnlock(HANDLE hMutex, PULONG pSem);
  113. BOOL TchAudReadReg(USHORT Reg,USHORT *pVal,PTCHAUD_ASIC_REGISTERS pTchAudRegs,
  114.                    BOOL bInPowerHandler);
  115. BOOL TchAudWriteReg(USHORT Reg,USHORT Val,PTCHAUD_ASIC_REGISTERS pTchAudRegs,
  116.                     BOOL bInPowerHandler);
  117. BOOL TchAudAndReg(USHORT Reg,USHORT Val,PTCHAUD_ASIC_REGISTERS pTchAudRegs,
  118.                   BOOL bInPowerHandler);
  119. BOOL TchAudOrReg(USHORT Reg,USHORT Val,PTCHAUD_ASIC_REGISTERS pTchAudRegs,
  120.                  BOOL bInPowerHandler);
  121. #ifdef __cplusplus
  122. }
  123. #endif
  124.     
  125. #endif // _TCHAUD_H