home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / dvdevcod.h < prev    next >
Text File  |  1998-04-25  |  9KB  |  222 lines

  1. //==========================================================================;
  2. //
  3. //  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  4. //  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  5. //  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
  6. //  PURPOSE.
  7. //
  8. //  Copyright (c) 1992 - 1997  Microsoft Corporation.  All Rights Reserved.
  9. //
  10. //--------------------------------------------------------------------------;
  11.  
  12. //
  13. // list of standard DVD-Video event codes and the expected params
  14. // 
  15.  
  16.  
  17. #define EC_DVDBASE                            0x0100
  18.  
  19.  
  20. typedef enum _tagDVD_ERROR {
  21.     DVD_ERROR_Unexpected=1,         // Something unexpected happened, perhaps content
  22.                                     //   is incorrectly authored.  Playback is stopped.
  23.     DVD_ERROR_CopyProtectFail=2,    // Key exchange for DVD copy protection failed. 
  24.                                     //   Playback is stopped.
  25.     DVD_ERROR_InvalidDVD1_0Disc=3,  // DVD-Video disc is incorrectly authored for v1.0 
  26.                                     //   of spec. Playback is stopped.
  27.     DVD_ERROR_InvalidDiscRegion=4,  // The Disc is not approved for playback by decoders
  28.                                     //   from this DVD region.
  29.     DVD_ERROR_LowParentalLevel=5    // Player parental level is lower than the lowest parental
  30.                                     //   level available in the DVD content. Playback is stopped.
  31. } DVD_ERROR;
  32.  
  33. typedef enum _tagDVD_WARNING {
  34.     DVD_WARNING_InvalidDVD1_0Disc=1, // DVD-Video disc is incorrectly authored. Playback
  35.                                     //   can continue, but unexpected behavior may occur.
  36.     DVD_WARNING_FormatNotSupported=2// A decoder would not support the current format.  Playback
  37.                                     //   of a stream (audio, video of SP) may not function.
  38. } DVD_WARNING;
  39.  
  40. // DVD-Video event codes
  41. // ======================
  42. //
  43. // All DVD-Video event are always passed on to the application, and are 
  44. // never processed by the filter graph
  45.  
  46.  
  47. #define EC_DVD_DOMAIN_CHANGE                    (EC_DVDBASE + 0x01)
  48. // Parameters: ( DWORD, void ) 
  49. // lParam1 is enum DVD_DOMAIN, and indicates the player's new domain
  50. //
  51. // Raised from following domains: all
  52. //
  53. // Signaled when ever the DVD player changes domains.
  54.  
  55.  
  56. #define EC_DVD_TITLE_CHANGE                     (EC_DVDBASE + 0x02)
  57. // Parameters: ( DWORD, void ) 
  58. // lParam1 is the new title number.
  59. //
  60. // Raised from following domains: DVD_DOMAIN_Title
  61. //
  62. // Indicates when the current title number changes.  Title numbers
  63. // range 1 to 99.  This indicates the TTN, which is the title number
  64. // with respect to the whole disc, not the VTS_TTN which is the title
  65. // number with respect to just a current VTS.
  66.  
  67.  
  68. #define EC_DVD_CHAPTER_START                   (EC_DVDBASE + 0x03)
  69. // Parameters: ( DWORD, void ) 
  70. // lParam1 is the new chapter number (which is the program number for 
  71. // One_Sequential_PGC_Titles).
  72. //
  73. // Raised from following domains: DVD_DOMAIN_Title
  74. //
  75. // Signales that DVD player started playback of a new program in the Title 
  76. // domain.  This is only signaled for One_Sequential_PGC_Titles.
  77.  
  78.  
  79. #define EC_DVD_AUDIO_STREAM_CHANGE              (EC_DVDBASE + 0x04)
  80. // Parameters: ( DWORD, void ) 
  81. // lParam1 is the new user audio stream number.
  82. //
  83. // Raised from following domains: all
  84. //
  85. // Signaled when ever the current user audio stream number changes for the main 
  86. // title.  This can be changed automatically with a navigation command on disc
  87. // as well as through IDVDAnnexJ.
  88. // Audio stream numbers range from 0 to 7.  Stream 0xffffffff
  89. // indicates that no stream is selected.
  90.  
  91. #define EC_DVD_SUBPICTURE_STREAM_CHANGE         (EC_DVDBASE + 0x05)
  92. // Parameters: ( DWORD, void ) 
  93. // lParam1 is the new user subpicture stream number.
  94. //
  95. // Raised from following domains: all
  96. //
  97. // Signaled when ever the current user subpicture stream number changes for the main 
  98. // title.  This can be changed automatically with a navigation command on disc
  99. // as well as through IDVDAnnexJ.  
  100. // Subpicture stream numbers range from 0 to 31.  Stream 0xffffffff
  101. // indicates that no stream is selected.  
  102.  
  103. #define EC_DVD_ANGLE_CHANGE                     (EC_DVDBASE + 0x06)
  104. // Parameters: ( DWORD, DWORD ) 
  105. // lParam1 is the number of available angles.
  106. // lParam2 is the current user angle number.
  107. //
  108. // Raised from following domains: all
  109. //
  110. // Signaled when ever either 
  111. //   a) the number of available angles changes, or  
  112. //   b) the current user angle number changes.
  113. // Current angle number can be changed automatically with navigation command 
  114. // on disc as well as through IDVDAnnexJ.
  115. // When the number of available angles is 1, the current video is not multiangle.
  116. // Angle numbers range from 1 to 9.
  117.  
  118.  
  119. #define EC_DVD_BUTTON_CHANGE                    (EC_DVDBASE + 0x07)
  120. // Parameters: ( DWORD, DWORD ) 
  121. // lParam1 is the number of available buttons.
  122. // lParam2 is the current selected button number.
  123. //
  124. // Raised from following domains: all
  125. //
  126. // Signaled when ever either 
  127. //   a) the number of available buttons changes, or  
  128. //   b) the current selected button number changes.
  129. // The current selected button can be changed automatically with navigation 
  130. // commands on disc as well as through IDVDAnnexJ.  
  131. // Button numbers range from 1 to 36.  Selected button number 0 implies that
  132. // no button is selected.  Note that these button numbers enumerate all 
  133. // available button numbers, and do not always correspond to button numbers
  134. // used for IDVDAnnexJ::ButtonSelectAndActivate since only a subset of buttons
  135. // may be activated with ButtonSelectAndActivate.
  136.  
  137.  
  138. #define EC_DVD_VALID_UOPS_CHANGE                (EC_DVDBASE + 0x08)
  139. // Parameters: ( DWORD, void ) 
  140. // lParam1 is a VALID_UOP_SOMTHING_OR_OTHER bit-field stuct which indicates
  141. //   which IDVDAnnexJ commands are explicitly disable by the DVD disc.
  142. //
  143. // Raised from following domains: all
  144. //
  145. // Signaled when ever the available set of IDVDAnnexJ methods changes.  This
  146. // only indicates which operations are explicited disabled by the content on 
  147. // the DVD disc, and does not guarentee that it is valid to call methods 
  148. // which are not disabled.  For example, if no buttons are currently present,
  149. // IDVDAnnexJ::ButtonActivate() won't work, even though the buttons are not
  150. // explicitly disabled. 
  151.  
  152.  
  153. #define EC_DVD_STILL_ON                         (EC_DVDBASE + 0x09)
  154. // Parameters: ( BOOL, DWORD ) 
  155. // lParam1 == 0  -->  buttons are available, so StillOff won't work
  156. // lParam1 == 1  -->  no buttons available, so StillOff will work
  157. // lParam2 indicates the number of seconds the still will last, with 0xffffffff 
  158. //   indicating an infinite still (wait till button or StillOff selected).
  159. //
  160. // Raised from following domains: all
  161. //
  162. // Signaled at the beginning of any still: PGC still, Cell Still, or VOBU Still.
  163. // Note that all combinations of buttons and still are possible (buttons on with
  164. // still on, buttons on with still off, button off with still on, button off
  165. // with still off).
  166.  
  167. #define EC_DVD_STILL_OFF                         (EC_DVDBASE + 0x0a)
  168. // Parameters: ( void, void ) 
  169. //
  170. //   Indicating that any still that is currently active
  171. //   has been released.
  172. //
  173. // Raised from following domains: all
  174. //
  175. // Signaled at the end of any still: PGC still, Cell Still, or VOBU Still.
  176. //
  177.  
  178. #define EC_DVD_CURRENT_TIME                     (EC_DVDBASE + 0x0b)
  179. // Parameters: ( DWORD, BOOL ) 
  180. // lParam1 is a DVD_TIMECODE which indicates the current 
  181. //   playback time code in a BCD HH:MM:SS:FF format.
  182. // lParam2 == 0  -->  time code is 25 frames/sec
  183. // lParam2 == 1  -->  time code is 30 frames/sec (non-drop).
  184. //
  185. // Raised from following domains: DVD_DOMAIN_Title
  186. //
  187. // Signaled at the beginning of every VOBU, which occurs every .4 to 1.0 sec.
  188. // This is only signaled for One_Sequential_PGC_Titles.
  189.  
  190.  
  191. #define EC_DVD_ERROR                            (EC_DVDBASE + 0x0c)
  192. // Parameters: ( DWORD, void) 
  193. // lParam1 is an enum DVD_ERROR which notifies the app of some error condition.
  194. //
  195. // Raised from following domains: all
  196. //
  197.  
  198. #define EC_DVD_WARNING                           (EC_DVDBASE + 0x0d)
  199. // Parameters: ( DWORD, void) 
  200. // lParam1 is an enum DVD_WARNING which notifies the app of some warning condition.
  201. //
  202. // Raised from following domains: all
  203. //
  204.  
  205. #define EC_DVD_CHAPTER_AUTOSTOP                  (EC_DVDBASE + 0x0e)
  206. // Parameters: (void, void)
  207. // 
  208. //  Indicating that playback is stopped as a result of a call
  209. //  to IDVDControl::ChapterPlayAutoStop()
  210. //
  211. // Raised from following domains : DVD_DOMAIN_TITLE
  212. //
  213.  
  214. #define EC_DVD_NO_FP_PGC                         (EC_DVDBASE + 0x0f)
  215. //  Parameters : (void, void)
  216. //
  217. //  Raised from the following domains : FP_DOM
  218. //
  219. //  Indicates that the DVD disc does not have a FP_PGC (First Play Program Chain)
  220. //  and the DVD Navigator will not automatically load any PGC and start playback.
  221. //
  222.