Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

164 lines
6.1 KiB

  1. /******************************************************************************\
  2. * *
  3. * CL6100.H - Hardware abstraction level library header file. *
  4. * *
  5. * Copyright (c) C-Cube Microsystems 1996 *
  6. * All Rights Reserved. *
  7. * *
  8. * Use of C-Cube Microsystems code is governed by terms and conditions *
  9. * stated in the accompanying licensing statement. *
  10. * *
  11. \******************************************************************************/
  12. // Functions to be used for DVD_Authenticate() call
  13. #define DVD_GET_CHALLENGE 0x0
  14. #define DVD_SEND_CHALLENGE 0x1
  15. #define DVD_GET_RESPONSE 0x2
  16. #define DVD_SEND_RESPONSE 0x3
  17. #define DVD_SEND_DISK_KEY 0x4
  18. #define DVD_SEND_TITLE_KEY 0x5
  19. #define DVD_SET_DECRYPTION_MODE 0x6
  20. #define DVD_SET_DSC_BYPASS_MODE 0x7
  21. #define DVD_GET_DISK_AUTH_STATUS 0x9 // To get status of fake encrypted disks
  22. // Host Interrupt mask bits
  23. #define CL6100_INT_MASK_ERR 0x00000001
  24. #define CL6100_INT_MASK_PIC_V 0x00000002
  25. #define CL6100_INT_MASK_GOP_V 0x00000004
  26. #define CL6100_INT_MASK_SEQ_V 0x00000008
  27. #define CL6100_INT_MASK_END_V 0x00000010
  28. #define CL6100_INT_MASK_PIC_D 0x00000020
  29. #define CL6100_INT_MASK_VSYNC 0x00000040
  30. #define CL6100_INT_MASK_AOR 0x00000080
  31. #define CL6100_INT_MASK_UND 0x00000100
  32. #define CL6100_INT_MASK_END_C 0x00000200
  33. #define CL6100_INT_MASK_RDY_S 0x00000400
  34. #define CL6100_INT_MASK_SCN 0x00000800
  35. #define CL6100_INT_MASK_USR 0x00001000
  36. #define CL6100_INT_MASK_END_P 0x00002000
  37. #define CL6100_INT_MASK_END_D 0x00004000
  38. #define CL6100_INT_MASK_AEE 0x00008000
  39. #define CL6100_INT_MASK_BUF_F 0x00010000
  40. #define CL6100_INT_MASK_SEQ_E 0x00020000
  41. #define CL6100_INT_MASK_NV 0x00040000
  42. #define CL6100_INT_MASK_HLI 0x00080000
  43. #define CL6100_INT_MASK_RDY_D 0x00100000
  44. #define CL6100_INT_MASK_RESERVED_1 0x00200000
  45. #define CL6100_INT_MASK_AUD 0x00400000
  46. #define CL6100_INT_MASK_INIT 0x00800000
  47. #define DVD_HW_VERSION_1_0 0
  48. #define DVD_HW_VERSION_1_1 1
  49. #define AUDIO_SAMPLING_MASK 0x0C
  50. #define AUDIO_SAMPLING_FREQ_48 0
  51. #define AUDIO_SAMPLING_FREQ_44 1
  52. #define AUDIO_SAMPLING_FREQ_32 2
  53. #define AUDIO_SAMPLING_FREQ_96 3
  54. #define AUDIO_DAXDK_MASK 0x02
  55. #define AUDIO_DAXDK_384 0
  56. #define AUDIO_DAXDK_256 1
  57. #define AUDIO_MODE_MASK 0x01
  58. #define AUDIO_MODE_SLAVE 0
  59. #define AUDIO_MODE_MASTER 1
  60. #define USER_DATA_READ 0x000278
  61. #define USER_DATA_WRITE 0x00027C
  62. #define USER_DATA_BUFFER_START 0x000270
  63. #define USER_DATA_BUFFER_END 0x000274
  64. #define CC_BUFF_SIZE 60 // Close Caption Buffer Size
  65. // Closed Caption Defines
  66. #define CC_CODE_NOP 0x8080
  67. #define CC_CODE_CLEARSCREEN 0x2C94
  68. #define CC_CODE_CLS_NONDISP 0xAE94
  69. typedef struct _INTSOURCES
  70. {
  71. DWORD DVDIntHLI;
  72. DWORD DVDIntBUFF;
  73. DWORD DVDIntUND;
  74. DWORD DVDIntAOR;
  75. DWORD DVDIntAEE;
  76. DWORD DVDIntERR;
  77. }INTSOURCES, * PINTSOURCES;
  78. /************************** board access ************************************/
  79. DWORD DVD_GetHWVersion();
  80. DWORD DVD_GetFWVersion();
  81. BOOL DVD_Initialize( DWORD dwBaseAddress, DWORD dwCFIFOBase );
  82. BOOL DVD_LoadUCode( BYTE * pbUCode );
  83. BOOL DVD_Play();
  84. BOOL DVD_Pause();
  85. BOOL DVD_Resume();
  86. BOOL DVD_Reset();
  87. BOOL DVD_Abort();
  88. BOOL DVD_SlowMotion( WORD wRatio );
  89. BOOL DVD_SetStreams( DWORD dwStreamType, DWORD dwStreamNum );
  90. BOOL DVD_SetAudioVolume( WORD wValue );
  91. BOOL DVD_SetAC3OutputMode( WORD wValue );
  92. BOOL DVD_SetAC3OperationalMode( WORD wValue );
  93. BOOL DVD_SetPalette( DWORD * pdwPalettes );
  94. BOOL DVD_SetSubPictureMute( BOOL bMute );
  95. BOOL DVD_SetDisplayMode( WORD wDisplay, WORD wMode );
  96. BOOL DVD_Authenticate( WORD wFunction, BYTE * pbyDATA );
  97. BOOL DVD_HighLight( DWORD dwButton, DWORD dwAction );
  98. BOOL DVD_HighLight2( DWORD dwContrast, DWORD dwColor, DWORD dwYGeom, DWORD dwXGeom );
  99. BOOL DVD_Scan( DWORD dwScanMode, DWORD dwSkip );
  100. BOOL DVD_SingleStep();
  101. DWORD DVD_GetSTC();
  102. BOOL DVD_SetPcmScaleFactor( WORD wValue );
  103. BOOL DVD_SetAC3LfeOutputEnable( WORD wValue );
  104. BOOL DVD_SetKaraokeMode( WORD wMode );
  105. BOOL DVD_SetAC3LowBoost( WORD wValue );
  106. BOOL DVD_SetAC3HighCut( WORD wValue );
  107. BOOL DVD_ForceCodedAspectRatio( WORD wRatio );
  108. BOOL DVD_SetIEC958On( WORD wValue );
  109. BOOL DVD_SetIEC958Decoded( WORD wValue );
  110. BOOL DVD_NewPlayMode( DWORD dwBitstreamType, DWORD dwVideoMode );
  111. DWORD DVD_Send( DWORD * dwpData, DWORD dwCount, DWORD dwTimeOutCount );
  112. BOOL DVD_IntEnable( DWORD dwMask );
  113. BOOL DVD_IntDisable( DWORD dwMask );
  114. DWORD DVD_Isr( PINTSOURCES pIntSrc );
  115. void DVD_WriteDRAM( DWORD dwAddress, DWORD dwData );
  116. DWORD DVD_ReadDRAM ( DWORD dwAddress );
  117. int dvd_CheckCFIFO();
  118. void dvd_SetRequestEnable();
  119. void dvd_SetRequestDisable();
  120. void dvd_SaveRequest();
  121. void dvd_RestoreRequest();
  122. #ifdef DEBUG
  123. BOOL DVD_SetParam(DWORD dwParamID, DWORD dwParamValue);
  124. BOOL DVD_GetParam(DWORD dwParamID, DWORD *dwParamValue);
  125. BOOL DVD_SendCommand(DWORD dwCommandID,
  126. DWORD dwParam1,
  127. DWORD dwParam2,
  128. DWORD dwParam3,
  129. DWORD dwParam4,
  130. DWORD dwParam5,
  131. DWORD dwParam6,
  132. DWORD dwIntMask,
  133. DWORD dwStatus );
  134. #endif // DEBUG
  135. #ifdef UCODE_VER_2
  136. BOOL DVD_SetZoom(DWORD dwZoomFactor, DWORD dwXOffset, DWORD dwYOffset);
  137. BOOL DVD_ReversePlay(DWORD dwDecoderSpeed,DWORD dwFrameMode);
  138. void DVD_SetVerticalDiaplyMode(DWORD dwVerticalDisplayMode);
  139. #endif