home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 June / PCFJune.iso / Xenon / C++ / FreeCommandLineTools.exe / Include / dvdevcod.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-31  |  12.2 KB  |  291 lines

  1. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  2. //==========================================================================;
  3. //
  4. //  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  5. //  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  6. //  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
  7. //  PURPOSE.
  8. //
  9. //  Copyright (c) 1992 - 1997  Microsoft Corporation.  All Rights Reserved.
  10. //
  11. //--------------------------------------------------------------------------;
  12.  
  13. //
  14. // list of standard DVD-Video event codes and the expected params
  15. // 
  16.  
  17.  
  18. #define EC_DVDBASE                            0x0100
  19.  
  20. #ifndef EXCLUDE_DVDEVCODE_ENUMS
  21.  
  22. typedef enum _tagDVD_ERROR {
  23.     DVD_ERROR_Unexpected=1,         // Something unexpected happened, perhaps content
  24.                                     //   is incorrectly authored.  Playback is stopped.
  25.     DVD_ERROR_CopyProtectFail=2,    // Key exchange for DVD copy protection failed. 
  26.                                     //   Playback is stopped.
  27.     DVD_ERROR_InvalidDVD1_0Disc=3,  // DVD-Video disc is incorrectly authored for v1.0 
  28.                                     //   of spec. Playback is stopped.
  29.     DVD_ERROR_InvalidDiscRegion=4,  // The Disc cannot be played because the disc is not
  30.                                     // authored to play in system region.
  31.                                     // The region mismatch may be fixable by 
  32.                                     // changing the system region with dvdrgn.exe
  33.     DVD_ERROR_LowParentalLevel=5,   // Player parental level is lower than the lowest parental
  34.                                     //   level available in the DVD content. Playback is stopped.
  35.     DVD_ERROR_MacrovisionFail=6,    // Macrovision Distribution Failed.
  36.                                     // Playback is stopped.
  37.     DVD_ERROR_IncompatibleSystemAndDecoderRegions=7,
  38.                                     // No discs can be played because the system region
  39.                                     // does not match the decoder region.
  40.     DVD_ERROR_IncompatibleDiscAndDecoderRegions=8
  41.                                     // The disc cannot be played because the disc is
  42.                                     // not authored to be played in the decoder's region
  43. } DVD_ERROR;
  44.  
  45. typedef enum _tagDVD_WARNING {
  46.     DVD_WARNING_InvalidDVD1_0Disc=1,// DVD-Video disc is incorrectly authored. Playback
  47.                                     //   can continue, but unexpected behavior may occur.
  48.     DVD_WARNING_FormatNotSupported=2,// A decoder would not support the current format.  Playback
  49.                                     //   of a stream (audio, video of SP) may not function.
  50.     DVD_WARNING_IllegalNavCommand=3 // The internal DVD navigation command processor attempted to 
  51.                                     //   process an illegal command.
  52. } DVD_WARNING;
  53.  
  54. #endif
  55.  
  56. // DVD-Video event codes
  57. // ======================
  58. //
  59. // All DVD-Video event are always passed on to the application, and are 
  60. // never processed by the filter graph
  61.  
  62.  
  63. #define EC_DVD_DOMAIN_CHANGE                    (EC_DVDBASE + 0x01)
  64. // Parameters: ( DWORD, void ) 
  65. // lParam1 is enum DVD_DOMAIN, and indicates the player's new domain
  66. //
  67. // Raised from following domains: all
  68. //
  69. // Signaled when ever the DVD player changes domains.
  70.  
  71.  
  72. #define EC_DVD_TITLE_CHANGE                     (EC_DVDBASE + 0x02)
  73. // Parameters: ( DWORD, void ) 
  74. // lParam1 is the new title number.
  75. //
  76. // Raised from following domains: DVD_DOMAIN_Title
  77. //
  78. // Indicates when the current title number changes.  Title numbers
  79. // range 1 to 99.  This indicates the TTN, which is the title number
  80. // with respect to the whole disc, not the VTS_TTN which is the title
  81. // number with respect to just a current VTS.
  82.  
  83.  
  84. #define EC_DVD_CHAPTER_START                   (EC_DVDBASE + 0x03)
  85. // Parameters: ( DWORD, void ) 
  86. // lParam1 is the new chapter number (which is the program number for 
  87. // One_Sequential_PGC_Titles).
  88. //
  89. // Raised from following domains: DVD_DOMAIN_Title
  90. //
  91. // Signales that DVD player started playback of a new program in the Title 
  92. // domain.  This is only signaled for One_Sequential_PGC_Titles.
  93.  
  94.  
  95. #define EC_DVD_AUDIO_STREAM_CHANGE              (EC_DVDBASE + 0x04)
  96. // Parameters: ( DWORD, void ) 
  97. // lParam1 is the new user audio stream number.
  98. //
  99. // Raised from following domains: all
  100. //
  101. // Signaled when ever the current user audio stream number changes for the main 
  102. // title.  This can be changed automatically with a navigation command on disc
  103. // as well as through IDVDAnnexJ.
  104. // Audio stream numbers range from 0 to 7.  Stream 0xffffffff
  105. // indicates that no stream is selected.
  106.  
  107. #define EC_DVD_SUBPICTURE_STREAM_CHANGE         (EC_DVDBASE + 0x05)
  108. // Parameters: ( DWORD, void ) 
  109. // lParam1 is the new user subpicture stream number.
  110. //
  111. // Raised from following domains: all
  112. //
  113. // Signaled when ever the current user subpicture stream number changes for the main 
  114. // title.  This can be changed automatically with a navigation command on disc
  115. // as well as through IDVDAnnexJ.  
  116. // Subpicture stream numbers range from 0 to 31.  Stream 0xffffffff
  117. // indicates that no stream is selected.  
  118.  
  119. #define EC_DVD_ANGLE_CHANGE                     (EC_DVDBASE + 0x06)
  120. // Parameters: ( DWORD, DWORD ) 
  121. // lParam1 is the number of available angles.
  122. // lParam2 is the current user angle number.
  123. //
  124. // Raised from following domains: all
  125. //
  126. // Signaled when ever either 
  127. //   a) the number of available angles changes, or  
  128. //   b) the current user angle number changes.
  129. // Current angle number can be changed automatically with navigation command 
  130. // on disc as well as through IDVDAnnexJ.
  131. // When the number of available angles is 1, the current video is not multiangle.
  132. // Angle numbers range from 1 to 9.
  133.  
  134.  
  135. #define EC_DVD_BUTTON_CHANGE                    (EC_DVDBASE + 0x07)
  136. // Parameters: ( DWORD, DWORD ) 
  137. // lParam1 is the number of available buttons.
  138. // lParam2 is the current selected button number.
  139. //
  140. // Raised from following domains: all
  141. //
  142. // Signaled when ever either 
  143. //   a) the number of available buttons changes, or  
  144. //   b) the current selected button number changes.
  145. // The current selected button can be changed automatically with navigation 
  146. // commands on disc as well as through IDVDAnnexJ.  
  147. // Button numbers range from 1 to 36.  Selected button number 0 implies that
  148. // no button is selected.  Note that these button numbers enumerate all 
  149. // available button numbers, and do not always correspond to button numbers
  150. // used for IDVDAnnexJ::ButtonSelectAndActivate since only a subset of buttons
  151. // may be activated with ButtonSelectAndActivate.
  152.  
  153.  
  154. #define EC_DVD_VALID_UOPS_CHANGE                (EC_DVDBASE + 0x08)
  155. // Parameters: ( DWORD, void ) 
  156. // lParam1 is a VALID_UOP_SOMTHING_OR_OTHER bit-field stuct which indicates
  157. //   which IDVDAnnexJ commands are explicitly disable by the DVD disc.
  158. //
  159. // Raised from following domains: all
  160. //
  161. // Signaled when ever the available set of IDVDAnnexJ methods changes.  This
  162. // only indicates which operations are explicited disabled by the content on 
  163. // the DVD disc, and does not guarentee that it is valid to call methods 
  164. // which are not disabled.  For example, if no buttons are currently present,
  165. // IDVDAnnexJ::ButtonActivate() won't work, even though the buttons are not
  166. // explicitly disabled. 
  167.  
  168.  
  169. #define EC_DVD_STILL_ON                         (EC_DVDBASE + 0x09)
  170. // Parameters: ( BOOL, DWORD ) 
  171. // lParam1 == 0  -->  buttons are available, so StillOff won't work
  172. // lParam1 == 1  -->  no buttons available, so StillOff will work
  173. // lParam2 indicates the number of seconds the still will last, with 0xffffffff 
  174. //   indicating an infinite still (wait till button or StillOff selected).
  175. //
  176. // Raised from following domains: all
  177. //
  178. // Signaled at the beginning of any still: PGC still, Cell Still, or VOBU Still.
  179. // Note that all combinations of buttons and still are possible (buttons on with
  180. // still on, buttons on with still off, button off with still on, button off
  181. // with still off).
  182.  
  183. #define EC_DVD_STILL_OFF                         (EC_DVDBASE + 0x0a)
  184. // Parameters: ( void, void ) 
  185. //
  186. //   Indicating that any still that is currently active
  187. //   has been released.
  188. //
  189. // Raised from following domains: all
  190. //
  191. // Signaled at the end of any still: PGC still, Cell Still, or VOBU Still.
  192. //
  193.  
  194. #define EC_DVD_CURRENT_TIME                     (EC_DVDBASE + 0x0b)
  195. // Parameters: ( DWORD, BOOL ) 
  196. // lParam1 is a DVD_TIMECODE which indicates the current 
  197. //   playback time code in a BCD HH:MM:SS:FF format.
  198. // lParam2 == 0  -->  time code is 25 frames/sec
  199. // lParam2 == 1  -->  time code is 30 frames/sec (non-drop).
  200. // lParam2 == 2  -->  time code is invalid (current playback time 
  201. //                    cannot be determined for current title)
  202. //
  203. // Raised from following domains: DVD_DOMAIN_Title
  204. //
  205. // Signaled at the beginning of every VOBU, which occurs every .4 to 1.0 sec.
  206. // This is only signaled for One_Sequential_PGC_Titles.
  207.  
  208.  
  209. #define EC_DVD_ERROR                            (EC_DVDBASE + 0x0c)
  210. // Parameters: ( DWORD, void) 
  211. // lParam1 is an enum DVD_ERROR which notifies the app of some error condition.
  212. //
  213. // Raised from following domains: all
  214. //
  215.  
  216. #define EC_DVD_WARNING                           (EC_DVDBASE + 0x0d)
  217. // Parameters: ( DWORD, void) 
  218. // lParam1 is an enum DVD_WARNING which notifies the app of some warning condition.
  219. //
  220. // Raised from following domains: all
  221. //
  222.  
  223. #define EC_DVD_CHAPTER_AUTOSTOP                  (EC_DVDBASE + 0x0e)
  224. // Parameters: (BOOL, void)
  225. // lParam1 is a BOOL which indicates the reason for the cancellation of ChapterPlayAutoStop
  226. // lParam1 == 0 indicates successful completion of ChapterPlayAutoStop
  227. // lParam1 == 1 indicates that ChapterPlayAutoStop is being cancelled as a result of another
  228. //            IDVDControl call or the end of content has been reached & no more chapters
  229. //            can be played.
  230. //  Indicating that playback is stopped as a result of a call
  231. //  to IDVDControl::ChapterPlayAutoStop()
  232. //
  233. // Raised from following domains : DVD_DOMAIN_TITLE
  234. //
  235.  
  236. #define EC_DVD_NO_FP_PGC                         (EC_DVDBASE + 0x0f)
  237. //  Parameters : (void, void)
  238. //
  239. //  Raised from the following domains : FP_DOM
  240. //
  241. //  Indicates that the DVD disc does not have a FP_PGC (First Play Program Chain)
  242. //  and the DVD Navigator will not automatically load any PGC and start playback.
  243. //
  244.  
  245. #define EC_DVD_PLAYBACK_RATE_CHANGE              (EC_DVDBASE + 0x10)
  246. //  Parameters : (LONG, void)
  247. //  lParam1 is a LONG indicating the new playback rate.
  248. //  lParam1 < 0 indicates reverse playback mode.
  249. //  lParam1 > 0 indicates forward playback mode
  250. //  Value of lParam1 is the actual playback rate multiplied by 10000.
  251. //  i.e. lParam1 = rate * 10000
  252. //
  253. //  Raised from the following domains : TT_DOM
  254. //
  255. //  Indicates that a rate change in playback has been initiated and the parameter
  256. //  lParam1 indicates the new playback rate that is being used.
  257. //
  258.  
  259. #define EC_DVD_PARENTAL_LEVEL_CHANGE            (EC_DVDBASE + 0x11)
  260. //  Parameters : (LONG, void)
  261. //  lParam1 is a LONG indicating the new parental level.
  262. //
  263. //  Raised from the following domains : VMGM_DOM
  264. //
  265. //  Indicates that an authored Nav command has changed the parental level
  266. //  setting in the player.
  267. //
  268.  
  269. #define EC_DVD_PLAYBACK_STOPPED                 (EC_DVDBASE + 0x12)
  270. //  Parameters : (void, void)
  271. //
  272. //  Raised from the following domains : All Domains
  273. //
  274. // Indicates that playback has been stopped as the Navigator has completed
  275. // playback of the pgc and did not find any other branching instruction for
  276. // subsequent playback.
  277. //
  278.  
  279. #define EC_DVD_ANGLES_AVAILABLE                 (EC_DVDBASE + 0x13)
  280. //  Parameters : (BOOL, void)
  281. //  lParam1 == 0 indicates that playback is not in an angle block and angles are
  282. //             not available
  283. //  lParam1 == 1 indicates that an angle block is being played back and angle changes
  284. //             can be performed.
  285. //
  286. //  Indicates whether an angle block is being played and if angle changes can be 
  287. //  performed. However, angle changes are not restricted to angle blocks and the
  288. //  manifestation of the angle change can be seen only in an angle block.
  289.  
  290. #pragma option pop /*P_O_Pop*/
  291.