1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef __VCR_H__ 7 #define __VCR_H__ 8 9 #define MCI_VCR_OFFSET 1280 10 11 #define MCI_LIST 0x0878 12 #define MCI_SETAUDIO 0x0873 13 #define MCI_SETVIDEO 0x0876 14 #define MCI_SIGNAL 0x0875 15 16 #define MCI_MARK (MCI_USER_MESSAGES + 0) 17 #define MCI_INDEX (MCI_USER_MESSAGES + 1) 18 #define MCI_SETTUNER (MCI_USER_MESSAGES + 2) 19 #define MCI_SETVCR (MCI_USER_MESSAGES + 3) 20 #define MCI_SETTIMECODE (MCI_USER_MESSAGES + 4) 21 22 #define MCI_TEST __MSABI_LONG(0x00000020) 23 24 #define MCI_VCR_GETDEVCAPS_CAN_DETECT_LENGTH __MSABI_LONG(0x00004001) 25 #define MCI_VCR_GETDEVCAPS_SEEK_ACCURACY __MSABI_LONG(0x00004002) 26 #define MCI_VCR_GETDEVCAPS_HAS_CLOCK __MSABI_LONG(0x00004003) 27 #define MCI_VCR_GETDEVCAPS_CAN_REVERSE __MSABI_LONG(0x00004004) 28 #define MCI_VCR_GETDEVCAPS_NUMBER_OF_MARKS __MSABI_LONG(0x00004005) 29 #define MCI_VCR_GETDEVCAPS_CAN_TEST __MSABI_LONG(0x00004006) 30 #define MCI_VCR_GETDEVCAPS_CAN_PREROLL __MSABI_LONG(0x00004007) 31 #define MCI_VCR_GETDEVCAPS_CAN_PREVIEW __MSABI_LONG(0x00004008) 32 #define MCI_VCR_GETDEVCAPS_CAN_MONITOR_SOURCES __MSABI_LONG(0x00004009) 33 #define MCI_VCR_GETDEVCAPS_HAS_TIMECODE __MSABI_LONG(0x0000400A) 34 #define MCI_VCR_GETDEVCAPS_CAN_FREEZE __MSABI_LONG(0x0000401B) 35 #define MCI_VCR_GETDEVCAPS_CLOCK_INCREMENT_RATE __MSABI_LONG(0x0000401C) 36 37 #define MCI_VCR_INFO_VERSION __MSABI_LONG(0x00010000) 38 39 #define MCI_VCR_PLAY_REVERSE __MSABI_LONG(0x00010000) 40 #define MCI_VCR_PLAY_AT __MSABI_LONG(0x00020000) 41 #define MCI_VCR_PLAY_SCAN __MSABI_LONG(0x00040000) 42 43 #define MCI_VCR_RECORD_INITIALIZE __MSABI_LONG(0x00010000) 44 #define MCI_VCR_RECORD_AT __MSABI_LONG(0x00020000) 45 #define MCI_VCR_RECORD_PREVIEW __MSABI_LONG(0x00040000) 46 47 #define MCI_VCR_CUE_INPUT __MSABI_LONG(0x00010000) 48 #define MCI_VCR_CUE_OUTPUT __MSABI_LONG(0x00020000) 49 #define MCI_VCR_CUE_PREROLL __MSABI_LONG(0x00040000) 50 #define MCI_VCR_CUE_REVERSE __MSABI_LONG(0x00080000) 51 52 #define MCI_VCR_SEEK_REVERSE __MSABI_LONG(0x00010000) 53 #define MCI_VCR_SEEK_MARK __MSABI_LONG(0x00020000) 54 #define MCI_VCR_SEEK_AT __MSABI_LONG(0x00040000) 55 56 #define MCI_VCR_SETTUNER_CHANNEL __MSABI_LONG(0x00010000) 57 #define MCI_VCR_SETTUNER_CHANNEL_UP __MSABI_LONG(0x00020000) 58 #define MCI_VCR_SETTUNER_CHANNEL_DOWN __MSABI_LONG(0x00040000) 59 #define MCI_VCR_SETTUNER_CHANNEL_SEEK_UP __MSABI_LONG(0x00080000) 60 #define MCI_VCR_SETTUNER_CHANNEL_SEEK_DOWN __MSABI_LONG(0x00100000) 61 #define MCI_VCR_SETTUNER_NUMBER __MSABI_LONG(0x00200000) 62 63 #define MCI_VCR_SET_TIME_MODE __MSABI_LONG(0x00010000) 64 #define MCI_VCR_SET_POWER __MSABI_LONG(0x00020000) 65 #define MCI_VCR_SET_RECORD_FORMAT __MSABI_LONG(0x00040000) 66 #define MCI_VCR_SET_COUNTER_FORMAT __MSABI_LONG(0x00080000) 67 #define MCI_VCR_SET_INDEX __MSABI_LONG(0x00100000) 68 #define MCI_VCR_SET_ASSEMBLE_RECORD __MSABI_LONG(0x00200000) 69 #define MCI_VCR_SET_TRACKING __MSABI_LONG(0x00400000) 70 #define MCI_VCR_SET_SPEED __MSABI_LONG(0x00800000) 71 #define MCI_VCR_SET_TAPE_LENGTH __MSABI_LONG(0x01000000) 72 #define MCI_VCR_SET_COUNTER_VALUE __MSABI_LONG(0x02000000) 73 #define MCI_VCR_SET_CLOCK __MSABI_LONG(0x04000000) 74 #define MCI_VCR_SET_PAUSE_TIMEOUT __MSABI_LONG(0x08000000) 75 #define MCI_VCR_SET_PREROLL_DURATION __MSABI_LONG(0x10000000) 76 #define MCI_VCR_SET_POSTROLL_DURATION __MSABI_LONG(0x20000000) 77 78 #define MCI_VCR_SETTIMECODE_RECORD __MSABI_LONG(0x00010000) 79 80 #define MCI_VCR_STATUS_FRAME_RATE __MSABI_LONG(0x00004001) 81 #define MCI_VCR_STATUS_SPEED __MSABI_LONG(0x00004002) 82 #define MCI_VCR_STATUS_MEDIA_TYPE __MSABI_LONG(0x00004003) 83 #define MCI_VCR_STATUS_RECORD_FORMAT __MSABI_LONG(0x00004004) 84 #define MCI_VCR_STATUS_PLAY_FORMAT __MSABI_LONG(0x00004005) 85 #define MCI_VCR_STATUS_AUDIO_SOURCE __MSABI_LONG(0x00004006) 86 #define MCI_VCR_STATUS_AUDIO_SOURCE_NUMBER __MSABI_LONG(0x00004007) 87 #define MCI_VCR_STATUS_VIDEO_SOURCE __MSABI_LONG(0x00004008) 88 #define MCI_VCR_STATUS_VIDEO_SOURCE_NUMBER __MSABI_LONG(0x00004009) 89 #define MCI_VCR_STATUS_AUDIO_MONITOR __MSABI_LONG(0x0000400A) 90 #define MCI_VCR_STATUS_AUDIO_MONITOR_NUMBER __MSABI_LONG(0x0000400B) 91 #define MCI_VCR_STATUS_VIDEO_MONITOR __MSABI_LONG(0x0000400C) 92 #define MCI_VCR_STATUS_VIDEO_MONITOR_NUMBER __MSABI_LONG(0x0000400D) 93 #define MCI_VCR_STATUS_INDEX_ON __MSABI_LONG(0x0000400E) 94 #define MCI_VCR_STATUS_INDEX __MSABI_LONG(0x0000400F) 95 #define MCI_VCR_STATUS_COUNTER_FORMAT __MSABI_LONG(0x00004010) 96 #define MCI_VCR_STATUS_COUNTER_RESOLUTION __MSABI_LONG(0x00004011) 97 #define MCI_VCR_STATUS_TIMECODE_TYPE __MSABI_LONG(0x00004012) 98 #define MCI_VCR_STATUS_COUNTER_VALUE __MSABI_LONG(0x00004013) 99 #define MCI_VCR_STATUS_TUNER_CHANNEL __MSABI_LONG(0x00004014) 100 #define MCI_VCR_STATUS_WRITE_PROTECTED __MSABI_LONG(0x00004015) 101 #define MCI_VCR_STATUS_TIMECODE_RECORD __MSABI_LONG(0x00004016) 102 #define MCI_VCR_STATUS_VIDEO_RECORD __MSABI_LONG(0x00004017) 103 #define MCI_VCR_STATUS_AUDIO_RECORD __MSABI_LONG(0x00004018) 104 #define MCI_VCR_STATUS_TIME_TYPE __MSABI_LONG(0x00004019) 105 #define MCI_VCR_STATUS_TIME_MODE __MSABI_LONG(0x0000401A) 106 #define MCI_VCR_STATUS_POWER_ON __MSABI_LONG(0x0000401B) 107 #define MCI_VCR_STATUS_CLOCK __MSABI_LONG(0x0000401C) 108 #define MCI_VCR_STATUS_ASSEMBLE_RECORD __MSABI_LONG(0x0000401D) 109 #define MCI_VCR_STATUS_TIMECODE_PRESENT __MSABI_LONG(0x0000401E) 110 #define MCI_VCR_STATUS_NUMBER_OF_VIDEO_TRACKS __MSABI_LONG(0x0000401F) 111 #define MCI_VCR_STATUS_NUMBER_OF_AUDIO_TRACKS __MSABI_LONG(0x00004020) 112 #define MCI_VCR_STATUS_CLOCK_ID __MSABI_LONG(0x00004021) 113 #define MCI_VCR_STATUS_PAUSE_TIMEOUT __MSABI_LONG(0x00004022) 114 #define MCI_VCR_STATUS_PREROLL_DURATION __MSABI_LONG(0x00004023) 115 #define MCI_VCR_STATUS_POSTROLL_DURATION __MSABI_LONG(0x00004024) 116 #define MCI_VCR_STATUS_VIDEO __MSABI_LONG(0x00004025) 117 #define MCI_VCR_STATUS_AUDIO __MSABI_LONG(0x00004026) 118 119 #define MCI_VCR_STATUS_NUMBER __MSABI_LONG(0x00080000) 120 121 #define MCI_VCR_ESCAPE_STRING __MSABI_LONG(0x00000100) 122 123 #define MCI_VCR_LIST_VIDEO_SOURCE __MSABI_LONG(0x00010000) 124 #define MCI_VCR_LIST_AUDIO_SOURCE __MSABI_LONG(0x00020000) 125 #define MCI_VCR_LIST_COUNT __MSABI_LONG(0x00040000) 126 #define MCI_VCR_LIST_NUMBER __MSABI_LONG(0x00080000) 127 128 #define MCI_VCR_MARK_WRITE __MSABI_LONG(0x00010000) 129 #define MCI_VCR_MARK_ERASE __MSABI_LONG(0x00020000) 130 131 #define MCI_VCR_SETAUDIO_RECORD __MSABI_LONG(0x00010000) 132 #define MCI_VCR_SETAUDIO_SOURCE __MSABI_LONG(0x00020000) 133 #define MCI_VCR_SETAUDIO_MONITOR __MSABI_LONG(0x00040000) 134 #define MCI_VCR_SETAUDIO_TO __MSABI_LONG(0x00200000) 135 #define MCI_VCR_SETAUDIO_NUMBER __MSABI_LONG(0x00400000) 136 137 #define MCI_VCR_SETVIDEO_RECORD __MSABI_LONG(0x00010000) 138 #define MCI_VCR_SETVIDEO_SOURCE __MSABI_LONG(0x00020000) 139 #define MCI_VCR_SETVIDEO_MONITOR __MSABI_LONG(0x00040000) 140 #define MCI_VCR_SETVIDEO_TO __MSABI_LONG(0x00100000) 141 #define MCI_VCR_SETVIDEO_NUMBER __MSABI_LONG(0x00200000) 142 143 #define SEND_VCRSIGNAL(dwFlags,dwCallback,hDriver,wDeviceID,dwUser,dwPos) DriverCallback((dwCallback),DCB_WINDOW,(HANDLE)(wDeviceID),MM_MCISIGNAL,hDriver,((dwFlags) & MCI_VCR_SIGNAL_POSITION) ? (dwPos):(dwUser),((dwFlags) & MCI_VCR_SIGNAL_POSITION) ? (dwUser):(dwPos)) 144 145 #define MM_MCISIGNAL 0x3CB 146 147 #define MCI_VCR_SIGNAL_AT __MSABI_LONG(0x00010000) 148 #define MCI_VCR_SIGNAL_EVERY __MSABI_LONG(0x00020000) 149 #define MCI_VCR_SIGNAL_USERVAL __MSABI_LONG(0x00040000) 150 #define MCI_VCR_SIGNAL_CANCEL __MSABI_LONG(0x00080000) 151 #define MCI_VCR_SIGNAL_POSITION __MSABI_LONG(0x00100000) 152 153 #define MCI_VCR_STEP_FRAMES __MSABI_LONG(0x00010000) 154 #define MCI_VCR_STEP_REVERSE __MSABI_LONG(0x00020000) 155 156 #define MCI_VCR_FREEZE_INPUT __MSABI_LONG(0x00010000) 157 #define MCI_VCR_FREEZE_OUTPUT __MSABI_LONG(0x00020000) 158 #define MCI_VCR_FREEZE_FIELD __MSABI_LONG(0x00040000) 159 #define MCI_VCR_FREEZE_FRAME __MSABI_LONG(0x00080000) 160 161 #define MCI_VCR_UNFREEZE_INPUT __MSABI_LONG(0x00010000) 162 #define MCI_VCR_UNFREEZE_OUTPUT __MSABI_LONG(0x00020000) 163 164 #define MCI_VCR_MEDIA_8MM (MCI_VCR_OFFSET + 1) 165 #define MCI_VCR_MEDIA_HI8 (MCI_VCR_OFFSET + 2) 166 #define MCI_VCR_MEDIA_VHS (MCI_VCR_OFFSET + 3) 167 #define MCI_VCR_MEDIA_SVHS (MCI_VCR_OFFSET + 4) 168 #define MCI_VCR_MEDIA_BETA (MCI_VCR_OFFSET + 5) 169 #define MCI_VCR_MEDIA_EDBETA (MCI_VCR_OFFSET + 6) 170 #define MCI_VCR_MEDIA_OTHER (MCI_VCR_OFFSET + 7) 171 172 #define MCI_VCR_FORMAT_SP (MCI_VCR_OFFSET + 8) 173 #define MCI_VCR_FORMAT_LP (MCI_VCR_OFFSET + 9) 174 #define MCI_VCR_FORMAT_EP (MCI_VCR_OFFSET + 10) 175 #define MCI_VCR_FORMAT_OTHER (MCI_VCR_OFFSET + 11) 176 177 #define MCI_VCR_TIME_TIMECODE (MCI_VCR_OFFSET + 12) 178 #define MCI_VCR_TIME_COUNTER (MCI_VCR_OFFSET + 13) 179 #define MCI_VCR_TIME_DETECT (MCI_VCR_OFFSET + 14) 180 181 #define MCI_VCR_SRC_TYPE_TUNER (MCI_VCR_OFFSET + 15) 182 #define MCI_VCR_SRC_TYPE_LINE (MCI_VCR_OFFSET + 16) 183 #define MCI_VCR_SRC_TYPE_SVIDEO (MCI_VCR_OFFSET + 17) 184 #define MCI_VCR_SRC_TYPE_RGB (MCI_VCR_OFFSET + 18) 185 #define MCI_VCR_SRC_TYPE_AUX (MCI_VCR_OFFSET + 19) 186 #define MCI_VCR_SRC_TYPE_GENERIC (MCI_VCR_OFFSET + 20) 187 #define MCI_VCR_SRC_TYPE_MUTE (MCI_VCR_OFFSET + 21) 188 #define MCI_VCR_SRC_TYPE_OUTPUT (MCI_VCR_OFFSET + 22) 189 190 #define MCI_VCR_INDEX_TIMECODE (MCI_VCR_OFFSET + 23) 191 #define MCI_VCR_INDEX_COUNTER (MCI_VCR_OFFSET + 24) 192 #define MCI_VCR_INDEX_DATE (MCI_VCR_OFFSET + 25) 193 #define MCI_VCR_INDEX_TIME (MCI_VCR_OFFSET + 26) 194 195 #define MCI_VCR_COUNTER_RES_SECONDS (MCI_VCR_OFFSET + 27) 196 #define MCI_VCR_COUNTER_RES_FRAMES (MCI_VCR_OFFSET + 28) 197 198 #define MCI_VCR_TIMECODE_TYPE_SMPTE (MCI_VCR_OFFSET + 29) 199 #define MCI_VCR_TIMECODE_TYPE_SMPTE_DROP (MCI_VCR_OFFSET + 30) 200 #define MCI_VCR_TIMECODE_TYPE_OTHER (MCI_VCR_OFFSET + 31) 201 #define MCI_VCR_TIMECODE_TYPE_NONE (MCI_VCR_OFFSET + 32) 202 203 #define MCI_VCR_PLUS (MCI_VCR_OFFSET + 33) 204 #define MCI_VCR_MINUS (MCI_VCR_OFFSET + 34) 205 #define MCI_VCR_RESET (MCI_VCR_OFFSET + 35) 206 207 #ifndef RC_INVOKED 208 209 typedef struct tagMCI_VCR_SEEK_PARMS { 210 DWORD dwCallback; 211 DWORD dwTo; 212 DWORD dwMark; 213 DWORD dwAt; 214 } MCI_VCR_SEEK_PARMS; 215 typedef MCI_VCR_SEEK_PARMS *LPMCI_VCR_SEEK_PARMS; 216 217 typedef struct tagMCI_VCR_SET_PARMS { 218 DWORD dwCallback; 219 DWORD dwTimeFormat; 220 DWORD dwAudio; 221 DWORD dwTimeMode; 222 DWORD dwRecordFormat; 223 DWORD dwCounterFormat; 224 DWORD dwIndex; 225 DWORD dwTracking; 226 DWORD dwSpeed; 227 DWORD dwLength; 228 DWORD dwCounter; 229 DWORD dwClock; 230 DWORD dwPauseTimeout; 231 DWORD dwPrerollDuration; 232 DWORD dwPostrollDuration; 233 } MCI_VCR_SET_PARMS; 234 typedef MCI_VCR_SET_PARMS *LPMCI_VCR_SET_PARMS; 235 236 typedef struct tagMCI_VCR_SETTUNER_PARMS { 237 DWORD dwCallback; 238 DWORD dwChannel; 239 DWORD dwNumber; 240 } MCI_VCR_SETTUNER_PARMS; 241 typedef MCI_VCR_SETTUNER_PARMS *LPMCI_VCR_SETTUNER_PARMS; 242 243 typedef struct tagMCI_VCR_ESCAPE_PARMS { 244 DWORD dwCallback; 245 LPCSTR lpstrCommand; 246 } MCI_VCR_ESCAPE_PARMS; 247 typedef MCI_VCR_ESCAPE_PARMS *LPMCI_VCR_ESCAPE_PARMS; 248 249 typedef struct tagMCI_VCR_LIST_PARMS { 250 DWORD dwCallback; 251 DWORD dwReturn; 252 DWORD dwNumber; 253 } MCI_VCR_LIST_PARMS; 254 typedef MCI_VCR_LIST_PARMS *LPMCI_VCR_LIST_PARMS; 255 256 typedef struct tagMCI_VCR_RECORD_PARMS { 257 DWORD dwCallback; 258 DWORD dwFrom; 259 DWORD dwTo; 260 DWORD dwAt; 261 } MCI_VCR_RECORD_PARMS; 262 typedef MCI_VCR_RECORD_PARMS *LPMCI_VCR_RECORD_PARMS; 263 264 typedef struct tagMCI_VCR_PLAY_PARMS { 265 DWORD dwCallback; 266 DWORD dwFrom; 267 DWORD dwTo; 268 DWORD dwAt; 269 } MCI_VCR_PLAY_PARMS; 270 typedef MCI_VCR_PLAY_PARMS *LPMCI_VCR_PLAY_PARMS; 271 272 typedef struct tagMCI_VCR_SETAUDIO_PARMS { 273 DWORD dwCallback; 274 DWORD dwTrack; 275 DWORD dwTo; 276 DWORD dwNumber; 277 } MCI_VCR_SETAUDIO_PARMS; 278 typedef MCI_VCR_SETAUDIO_PARMS *LPMCI_VCR_SETAUDIO_PARMS; 279 280 typedef struct tagMCI_VCR_SIGNAL_PARMS { 281 DWORD dwCallback; 282 DWORD dwPosition; 283 DWORD dwPeriod; 284 DWORD dwUserParm; 285 } MCI_VCR_SIGNAL_PARMS; 286 typedef MCI_VCR_SIGNAL_PARMS *LPMCI_VCR_SIGNAL_PARMS; 287 288 typedef struct tagMCI_VCR_STATUS_PARMS { 289 DWORD dwCallback; 290 DWORD dwReturn; 291 DWORD dwItem; 292 DWORD dwTrack; 293 DWORD dwNumber; 294 } MCI_VCR_STATUS_PARMS; 295 typedef MCI_VCR_STATUS_PARMS *LPMCI_VCR_STATUS_PARMS; 296 297 typedef struct tagMCI_VCR_SETVIDEO_PARMS { 298 DWORD dwCallback; 299 DWORD dwTrack; 300 DWORD dwTo; 301 DWORD dwNumber; 302 } MCI_VCR_SETVIDEO_PARMS; 303 typedef MCI_VCR_SETVIDEO_PARMS *LPMCI_VCR_SETVIDEO_PARMS; 304 305 typedef struct tagMCI_VCR_STEP_PARMS { 306 DWORD dwCallback; 307 DWORD dwFrames; 308 } MCI_VCR_STEP_PARMS; 309 typedef MCI_VCR_STEP_PARMS *LPMCI_VCR_STEP_PARMS; 310 311 typedef struct tagMCI_VCR_CUE_PARMS { 312 DWORD dwCallback; 313 DWORD dwFrom; 314 DWORD dwTo; 315 } MCI_VCR_CUE_PARMS; 316 typedef MCI_VCR_CUE_PARMS *LPMCI_VCR_CUE_PARMS; 317 #endif 318 319 #define MCIERR_VCR_CANNOT_OPEN_COMM (MCIERR_CUSTOM_DRIVER_BASE + 1) 320 #define MCIERR_VCR_CANNOT_WRITE_COMM (MCIERR_CUSTOM_DRIVER_BASE + 2) 321 #define MCIERR_VCR_READ_TIMEOUT (MCIERR_CUSTOM_DRIVER_BASE + 3) 322 #define MCIERR_VCR_COMMAND_BUFFER_FULL (MCIERR_CUSTOM_DRIVER_BASE + 4) 323 #define MCIERR_VCR_COMMAND_CANCELLED (MCIERR_CUSTOM_DRIVER_BASE + 5) 324 #define MCIERR_VCR_POWER_OFF (MCIERR_CUSTOM_DRIVER_BASE + 6) 325 #define MCIERR_VCR_COMMAND_FAILED (MCIERR_CUSTOM_DRIVER_BASE + 7) 326 #define MCIERR_VCR_SEARCH (MCIERR_CUSTOM_DRIVER_BASE + 8) 327 #define MCIERR_VCR_CONDITION (MCIERR_CUSTOM_DRIVER_BASE + 9) 328 #define MCIERR_VCR_CAMERA_MODE (MCIERR_CUSTOM_DRIVER_BASE + 10) 329 #define MCIERR_VCR_VCR_MODE (MCIERR_CUSTOM_DRIVER_BASE + 11) 330 #define MCIERR_VCR_COUNTER_TYPE (MCIERR_CUSTOM_DRIVER_BASE + 12) 331 #define MCIERR_VCR_TUNER (MCIERR_CUSTOM_DRIVER_BASE + 13) 332 #define MCIERR_VCR_EMERGENCY_STOP (MCIERR_CUSTOM_DRIVER_BASE + 14) 333 #define MCIERR_VCR_MEDIA_UNMOUNTED (MCIERR_CUSTOM_DRIVER_BASE + 15) 334 #define MCIERR_VCR_REGISTER (MCIERR_CUSTOM_DRIVER_BASE + 16) 335 #define MCIERR_VCR_TRACK_FAILURE (MCIERR_CUSTOM_DRIVER_BASE + 17) 336 #define MCIERR_VCR_CUE_FAILED_FLAGS (MCIERR_CUSTOM_DRIVER_BASE + 18) 337 #define MCIERR_VCR_ISWRITEPROTECTED (MCIERR_CUSTOM_DRIVER_BASE + 19) 338 #endif 339