Leaked source code of windows server 2003
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.

109 lines
2.9 KiB

  1. typedef struct CUE_SHEET_LINE {
  2. UCHAR Address : 4;
  3. UCHAR Control : 4;
  4. UCHAR TrackNumber;
  5. UCHAR Index;
  6. UCHAR MainDataForm : 6;
  7. UCHAR SubChannelDataForm : 2;
  8. UCHAR Reserved : 7;
  9. UCHAR ScmsAlternateCopyBit : 1;
  10. UCHAR Min;
  11. UCHAR Sec;
  12. UCHAR Frame;
  13. } CUE_SHEET_LINE, *PCUE_SHEET_LINE;
  14. //
  15. // Cue sheet control bit definitions. Choose no more than one from each group.
  16. //
  17. #define CUE_CTL_2CH_AUDIO_TRACK 0x0
  18. #define CUE_CTL_DATA_TRACK 0x4
  19. #define CUE_CTL_4CH_AUDIO_TRACK 0x8
  20. #define CUE_CTL_NO_PRE_EMPHASIS 0x0
  21. #define CUE_CTL_PRE_EMPHASIS 0x1
  22. #define CUE_CTL_DIGITAL_COPY_PROHIBITED 0x0
  23. #define CUE_CTL_DIGITAL_COPY_PERMITTED 0x2
  24. //
  25. // Cue sheet address values. Cannot be mixed.
  26. //
  27. #define CUE_ADR_TRACK_INDEX 0x1
  28. #define CUE_ADR_CATALOG_CODE 0x2
  29. #define CUE_ADR_ISRC_CODE 0x3
  30. //
  31. // Values for the main data form.
  32. //
  33. // CD-DA Data Form:
  34. #define CUE_FORM_CDDA_SDATA_2048 0x00
  35. #define CUE_FORM_CDDA_IDATA_0 0x01
  36. // CD Mode 1 Forms:
  37. // S = initiator send data
  38. // G = initiator doesn't send data but LUN generates it
  39. // I = initiator sends data but LUN ignores it and generates its own
  40. //
  41. // DATA = 2048 byte data frame
  42. // ECC = 288 byte ECC data
  43. //
  44. // trailing number is the number of bytes expected to be sent by the initiator
  45. //
  46. #define CUE_FORM_MODE1_SDATA_GECC_2048 0x10
  47. #define CUE_FORM_MODE1_SDATA_IECC_2352 0x11
  48. #define CUE_FORM_MODE1_IDATA_GECC_2048 0x12
  49. #define CUE_FORM_MODE1_IDATA_IECC_2352 0x13
  50. #define CUE_FORM_MODE1_GDATA_GECC_0 0x14
  51. // CD-XA, CD-I Forms:
  52. // SY = sync header of 16 bytes
  53. // SU = sub header of 8 bytes
  54. // DATA<n> = data frame of <n> bytes
  55. // ECC<n> = EDC/ECC area of <n> bytes
  56. //
  57. // trailing number is the number of bytes expected to be sent by the initiator
  58. //
  59. #define CUE_FORM_XA1_GSY_SSU_SDATA2048_IECC280_2336 0x20
  60. #define CUE_FORM_XA2_GSY_SSU_SDATA2324_IECC4_2336 0x20
  61. #define CUE_FORM_XA1_ISY_SSU_SDATA2048_IECC280_2352 0x21
  62. #define CUE_FORM_XA2_ISY_SSU_SDATA2324_IECC4_2352 0x21
  63. #define CUE_FORM_XA1_GSY_SSU_IDATA2048_IECC280_2336 0x22
  64. #define CUE_FORM_XA2_GSY_SSU_IDATA2324_IECC4_2336 0x22
  65. #define CUE_FORM_XA1_ISY_SSU_IDATA2048_IECC280_2352 0x23
  66. #define CUE_FORM_XA2_ISY_SSU_IDATA2324_IECC4_2352 0x23
  67. #define CUE_FORM_XA2_GSY_GSU_GDATA2324_GECC4_0 0x24
  68. // CD-ROM Mode 2 Forms:
  69. // SY = sync header of 16 bytes
  70. // DATA = data frame of 2336 bytes
  71. #define CUE_FORM_MODE2_GSY_SDATA_2336 0x30
  72. #define CUE_FORM_MODE2_ISY_SDATA_2352 0x31
  73. #define CUE_FORM_MODE2_GSY_IDATA_2336 0x32
  74. #define CUE_FORM_MODE2_ISY_IDATA_2352 0x33
  75. #define CUE_FORM_MODE2_GSY_GDATA_0 0x34
  76. //
  77. // Data form of sub channel data.
  78. //
  79. #define CUE_SCFORM_ZEROED_0 0x0
  80. #define CUE_SCFORM_RAW_96 0x1
  81. #define CUE_SCFORM_PACKED_96 0x3