Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
efba9f80
Commit
efba9f80
authored
Mar 15, 1999
by
Eric Pouech
Committed by
Alexandre Julliard
Mar 15, 1999
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make use of digitalv.h file.
parent
8e361310
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
1722 additions
and
33 deletions
+1722
-33
digitalv.h
include/digitalv.h
+1002
-0
mciavi.c
multimedia/mciavi.c
+720
-33
No files found.
include/digitalv.h
0 → 100644
View file @
efba9f80
/* -*- tab-width: 8; c-basic-offset: 4 -*- */
/*
* Wine Digital Video extensions
*/
#ifdef __cplusplus
extern
"C"
{
#endif
#define MCI_TEST 0x00000020L
/* Message values */
#define MCI_CAPTURE 0x0870
#define MCI_MONITOR 0x0871
#define MCI_RESERVE 0x0872
#define MCI_SETAUDIO 0x0873
#define MCI_SIGNAL 0x0875
#define MCI_SETVIDEO 0x0876
#define MCI_QUALITY 0x0877
#define MCI_LIST 0x0878
#define MCI_UNDO 0x0879
#define MCI_CONFIGURE 0x087A
#define MCI_RESTORE 0x087B
/* Return and string constant values */
#define MCI_ON 1
#define MCI_OFF 0
#define MCI_DGV_FILE_MODE_SAVING 0x0001
#define MCI_DGV_FILE_MODE_LOADING 0x0002
#define MCI_DGV_FILE_MODE_EDITING 0x0003
#define MCI_DGV_FILE_MODE_IDLE 0x0004
/* These identifiers are used only by device drivers */
#define MCI_ON_S 0x00008000L
#define MCI_OFF_S 0x00008001L
#define MCI_DGV_FILE_S 0x00008002L
#define MCI_DGV_INPUT_S 0x00008003L
#define MCI_DGV_FILE_MODE_SAVING_S 0x00008004L
#define MCI_DGV_FILE_MODE_LOADING_S 0x00008005L
#define MCI_DGV_FILE_MODE_EDITING_S 0x00008006L
#define MCI_DGV_FILE_MODE_IDLE_S 0x00008007L
#define MCI_DGV_SETVIDEO_SRC_NTSC_S 0x00008010L
#define MCI_DGV_SETVIDEO_SRC_RGB_S 0x00008011L
#define MCI_DGV_SETVIDEO_SRC_SVIDEO_S 0x00008012L
#define MCI_DGV_SETVIDEO_SRC_PAL_S 0x00008013L
#define MCI_DGV_SETVIDEO_SRC_SECAM_S 0x00008014L
#define MCI_DGV_SETVIDEO_SRC_GENERIC_S 0x00008015L
#define MCI_DGV_SETAUDIO_SRC_LEFT_S 0x00008020L
#define MCI_DGV_SETAUDIO_SRC_RIGHT_S 0x00008021L
#define MCI_DGV_SETAUDIO_SRC_AVERAGE_S 0x00008022L
#define MCI_DGV_SETAUDIO_SRC_STEREO_S 0x00008023L
/* Window message for signal notification */
#ifndef MM_MCISIGNAL
#define MM_MCISIGNAL 0x3CB
#endif
/* error values */
#define MCIERR_DGV_DEVICE_LIMIT (MCIERR_CUSTOM_DRIVER_BASE+0)
#define MCIERR_DGV_IOERR (MCIERR_CUSTOM_DRIVER_BASE+1)
#define MCIERR_DGV_WORKSPACE_EMPTY (MCIERR_CUSTOM_DRIVER_BASE+2)
#define MCIERR_DGV_DISK_FULL (MCIERR_CUSTOM_DRIVER_BASE+3)
#define MCIERR_DGV_DEVICE_MEMORY_FULL (MCIERR_CUSTOM_DRIVER_BASE+4)
#define MCIERR_DGV_BAD_CLIPBOARD_RANGE (MCIERR_CUSTOM_DRIVER_BASE+5)
/* defines for monitor methods */
#define MCI_DGV_METHOD_PRE 0x0000a000L
#define MCI_DGV_METHOD_POST 0x0000a001L
#define MCI_DGV_METHOD_DIRECT 0x0000a002L
/* defines for known file formats */
#define MCI_DGV_FF_AVSS 0x00004000L
#define MCI_DGV_FF_AVI 0x00004001L
#define MCI_DGV_FF_DIB 0x00004002L
#define MCI_DGV_FF_RDIB 0x00004003L
#define MCI_DGV_FF_JPEG 0x00004004L
#define MCI_DGV_FF_RJPEG 0x00004005L
#define MCI_DGV_FF_JFIF 0x00004006L
#define MCI_DGV_FF_MPEG 0x00004007L
/* values for dwItem field of MCI_CAPABILITY_PARMS structure */
#define MCI_DGV_GETDEVCAPS_CAN_LOCK 0x00004000L
#define MCI_DGV_GETDEVCAPS_CAN_STRETCH 0x00004001L
#define MCI_DGV_GETDEVCAPS_CAN_FREEZE 0x00004002L
#define MCI_DGV_GETDEVCAPS_MAX_WINDOWS 0x00004003L
#define MCI_DGV_GETDEVCAPS_CAN_REVERSE 0x00004004L
#define MCI_DGV_GETDEVCAPS_HAS_STILL 0x00004005L
#define MCI_DGV_GETDEVCAPS_PALETTES 0x00004006L
#define MCI_DGV_GETDEVCAPS_CAN_STR_IN 0x00004008L
#define MCI_DGV_GETDEVCAPS_CAN_TEST 0x00004009L
#define MCI_DGV_GETDEVCAPS_MAXIMUM_RATE 0x0000400aL
#define MCI_DGV_GETDEVCAPS_MINIMUM_RATE 0x0000400bL
/* flags for dwFlags parameter of MCI_CAPTURE command message */
#define MCI_DGV_CAPTURE_AS 0x00010000L
#define MCI_DGV_CAPTURE_AT 0x00020000L
/* flags for dwFlags parameter of MCI_COPY command message */
#define MCI_DGV_COPY_AT 0x00010000L
#define MCI_DGV_COPY_AUDIO_STREAM 0x00020000L
#define MCI_DGV_COPY_VIDEO_STREAM 0x00040000L
/* flags for dwFlags parameter of MCI_CUE command message */
#define MCI_DGV_CUE_INPUT 0x00010000L
#define MCI_DGV_CUE_OUTPUT 0x00020000L
#define MCI_DGV_CUE_NOSHOW 0x00040000L
/* flags for dwFlags parameter of MCI_CUT command message */
#define MCI_DGV_CUT_AT 0x00010000L
#define MCI_DGV_CUT_AUDIO_STREAM 0x00020000L
#define MCI_DGV_CUT_VIDEO_STREAM 0x00040000L
/* flags for dwFlags parameter of MCI_DELETE command message */
#define MCI_DGV_DELETE_AT 0x00010000L
#define MCI_DGV_DELETE_AUDIO_STREAM 0x00020000L
#define MCI_DGV_DELETE_VIDEO_STREAM 0x00040000L
/* flags for dwFlags parameter of MCI_FREEZE command message */
#define MCI_DGV_FREEZE_AT 0x00010000L
#define MCI_DGV_FREEZE_OUTSIDE 0x00020000L
/* flags for dwFlags parameter of MCI_INFO command message */
#define MCI_DGV_INFO_TEXT 0x00010000L
#define MCI_DGV_INFO_ITEM 0X00020000L
/* values for dwItem field of MCI_DGV_INFO_PARMS structure */
#define MCI_INFO_VERSION 0x00000400L
#define MCI_DGV_INFO_USAGE 0x00004000L
#define MCI_DGV_INFO_AUDIO_QUALITY 0x00004001L
#define MCI_DGV_INFO_STILL_QUALITY 0x00004002L
#define MCI_DGV_INFO_VIDEO_QUALITY 0x00004003L
#define MCI_DGV_INFO_AUDIO_ALG 0x00004004L
#define MCI_DGV_INFO_STILL_ALG 0x00004005L
#define MCI_DGV_INFO_VIDEO_ALG 0x00004006L
/* flags for dwFlags parameter of MCI_LIST command message */
#define MCI_DGV_LIST_ITEM 0x00010000L
#define MCI_DGV_LIST_COUNT 0x00020000L
#define MCI_DGV_LIST_NUMBER 0x00040000L
#define MCI_DGV_LIST_ALG 0x00080000L
/* values for dwItem field of MCI_DGV_LIST_PARMS structure */
#define MCI_DGV_LIST_AUDIO_ALG 0x00004000L
#define MCI_DGV_LIST_AUDIO_QUALITY 0x00004001L
#define MCI_DGV_LIST_AUDIO_STREAM 0x00004002L
#define MCI_DGV_LIST_STILL_ALG 0x00004003L
#define MCI_DGV_LIST_STILL_QUALITY 0x00004004L
#define MCI_DGV_LIST_VIDEO_ALG 0x00004005L
#define MCI_DGV_LIST_VIDEO_QUALITY 0x00004006L
#define MCI_DGV_LIST_VIDEO_STREAM 0x00004007L
#define MCI_DGV_LIST_VIDEO_SOURCE 0x00004008L
/* flags for dwFlags parameter of MCI_MONITOR command message */
#define MCI_DGV_MONITOR_METHOD 0x00010000L
#define MCI_DGV_MONITOR_SOURCE 0x00020000L
/* values for dwSource parameter of the MCI_DGV_MONITOR_PARMS struture */
#define MCI_DGV_MONITOR_INPUT 0x00004000L
#define MCI_DGV_MONITOR_FILE 0x00004001L
/* flags for dwFlags parameter of MCI_OPEN command message */
#define MCI_DGV_OPEN_WS 0x00010000L
#define MCI_DGV_OPEN_PARENT 0x00020000L
#define MCI_DGV_OPEN_NOSTATIC 0x00040000L
#define MCI_DGV_OPEN_16BIT 0x00080000L
#define MCI_DGV_OPEN_32BIT 0x00100000L
/* flags for dwFlags parameter of MCI_PASTE command message */
#define MCI_DGV_PASTE_AT 0x00010000L
#define MCI_DGV_PASTE_AUDIO_STREAM 0x00020000L
#define MCI_DGV_PASTE_VIDEO_STREAM 0x00040000L
#define MCI_DGV_PASTE_INSERT 0x00080000L
#define MCI_DGV_PASTE_OVERWRITE 0x00100000L
/* flags for dwFlags parameter of MCI_PLAY command message */
#define MCI_DGV_PLAY_REPEAT 0x00010000L
#define MCI_DGV_PLAY_REVERSE 0x00020000L
/* flags for dwFlags parameter of MCI_PUT command message */
#define MCI_DGV_RECT 0x00010000L
#define MCI_DGV_PUT_SOURCE 0x00020000L
#define MCI_DGV_PUT_DESTINATION 0x00040000L
#define MCI_DGV_PUT_FRAME 0x00080000L
#define MCI_DGV_PUT_VIDEO 0x00100000L
#define MCI_DGV_PUT_WINDOW 0x00200000L
#define MCI_DGV_PUT_CLIENT 0x00400000L
/* flags for dwFlags parameter of MCI_QUALITY command message */
#define MCI_QUALITY_ITEM 0x00010000L
#define MCI_QUALITY_NAME 0x00020000L
#define MCI_QUALITY_ALG 0x00040000L
#define MCI_QUALITY_DIALOG 0x00080000L
#define MCI_QUALITY_HANDLE 0x00100000L
/* values for dwItem field of MCI_QUALITY_PARMS structure */
#define MCI_QUALITY_ITEM_AUDIO 0x00004000L
#define MCI_QUALITY_ITEM_STILL 0x00004001L
#define MCI_QUALITY_ITEM_VIDEO 0x00004002L
/* flags for dwFlags parameter of MCI_REALIZE command message */
#define MCI_DGV_REALIZE_NORM 0x00010000L
#define MCI_DGV_REALIZE_BKGD 0x00020000L
/* flags for dwFlags parameter of MCI_RECORD command message */
#define MCI_DGV_RECORD_HOLD 0x00020000L
#define MCI_DGV_RECORD_AUDIO_STREAM 0x00040000L
#define MCI_DGV_RECORD_VIDEO_STREAM 0x00080000L
/* flags for dwFlags parameters of MCI_RESERVE command message */
#define MCI_DGV_RESERVE_IN 0x00010000L
#define MCI_DGV_RESERVE_SIZE 0x00020000L
/* flags for dwFlags parameter of MCI_RESTORE command message */
#define MCI_DGV_RESTORE_FROM 0x00010000L
#define MCI_DGV_RESTORE_AT 0x00020000L
/* flags for dwFlags parameters of MCI_SAVE command message */
#define MCI_DGV_SAVE_ABORT 0x00020000L
#define MCI_DGV_SAVE_KEEPRESERVE 0x00040000L
/* flags for dwFlags parameters of MCI_SET command message */
#define MCI_DGV_SET_SEEK_EXACTLY 0x00010000L
#define MCI_DGV_SET_SPEED 0x00020000L
#define MCI_DGV_SET_STILL 0x00040000L
#define MCI_DGV_SET_FILEFORMAT 0x00080000L
/* flags for the dwFlags parameter of MCI_SETAUDIO command message */
#define MCI_DGV_SETAUDIO_OVER 0x00010000L
#define MCI_DGV_SETAUDIO_CLOCKTIME 0x00020000L
#define MCI_DGV_SETAUDIO_ALG 0x00040000L
#define MCI_DGV_SETAUDIO_QUALITY 0x00080000L
#define MCI_DGV_SETAUDIO_RECORD 0x00100000L
#define MCI_DGV_SETAUDIO_LEFT 0x00200000L
#define MCI_DGV_SETAUDIO_RIGHT 0x00400000L
#define MCI_DGV_SETAUDIO_ITEM 0x00800000L
#define MCI_DGV_SETAUDIO_VALUE 0x01000000L
#define MCI_DGV_SETAUDIO_INPUT 0x02000000L
#define MCI_DGV_SETAUDIO_OUTPUT 0x04000000L
/* values for the dwItem parameter of MCI_DGV_SETAUDIO_PARMS */
#define MCI_DGV_SETAUDIO_TREBLE 0x00004000L
#define MCI_DGV_SETAUDIO_BASS 0x00004001L
#define MCI_DGV_SETAUDIO_VOLUME 0x00004002L
#define MCI_DGV_SETAUDIO_STREAM 0x00004003L
#define MCI_DGV_SETAUDIO_SOURCE 0x00004004L
#define MCI_DGV_SETAUDIO_SAMPLESPERSEC 0x00004005L
#define MCI_DGV_SETAUDIO_AVGBYTESPERSEC 0x00004006L
#define MCI_DGV_SETAUDIO_BLOCKALIGN 0x00004007L
#define MCI_DGV_SETAUDIO_BITSPERSAMPLE 0x00004008L
/* values for the dwValue parameter of MCI_DGV_SETAUDIO_PARMS
used with MCI_DGV_SETAUDIO_SOURCE */
#define MCI_DGV_SETAUDIO_SOURCE_STEREO 0x00000000L
#define MCI_DGV_SETAUDIO_SOURCE_LEFT 0x00000001L
#define MCI_DGV_SETAUDIO_SOURCE_RIGHT 0x00000002L
#define MCI_DGV_SETAUDIO_SOURCE_AVERAGE 0x00004000L
/* flags for the dwFlags parameter of MCI_SETVIDEO command */
#define MCI_DGV_SETVIDEO_QUALITY 0x00010000L
#define MCI_DGV_SETVIDEO_ALG 0x00020000L
#define MCI_DGV_SETVIDEO_CLOCKTIME 0x00040000L
#define MCI_DGV_SETVIDEO_SRC_NUMBER 0x00080000L
#define MCI_DGV_SETVIDEO_ITEM 0x00100000L
#define MCI_DGV_SETVIDEO_OVER 0x00200000L
#define MCI_DGV_SETVIDEO_RECORD 0x00400000L
#define MCI_DGV_SETVIDEO_STILL 0x00800000L
#define MCI_DGV_SETVIDEO_VALUE 0x01000000L
#define MCI_DGV_SETVIDEO_INPUT 0x02000000L
#define MCI_DGV_SETVIDEO_OUTPUT 0x04000000L
/* values for the dwTo field of MCI_SETVIDEO_PARMS
used with MCI_DGV_SETVIDEO_SOURCE */
#define MCI_DGV_SETVIDEO_SRC_NTSC 0x00004000L
#define MCI_DGV_SETVIDEO_SRC_RGB 0x00004001L
#define MCI_DGV_SETVIDEO_SRC_SVIDEO 0x00004002L
#define MCI_DGV_SETVIDEO_SRC_PAL 0x00004003L
#define MCI_DGV_SETVIDEO_SRC_SECAM 0x00004004L
#define MCI_DGV_SETVIDEO_SRC_GENERIC 0x00004005L
/* values for the dwItem field of MCI_SETVIDEO_PARMS */
#define MCI_DGV_SETVIDEO_BRIGHTNESS 0x00004000L
#define MCI_DGV_SETVIDEO_COLOR 0x00004001L
#define MCI_DGV_SETVIDEO_CONTRAST 0x00004002L
#define MCI_DGV_SETVIDEO_TINT 0x00004003L
#define MCI_DGV_SETVIDEO_SHARPNESS 0x00004004L
#define MCI_DGV_SETVIDEO_GAMMA 0x00004005L
#define MCI_DGV_SETVIDEO_STREAM 0x00004006L
#define MCI_DGV_SETVIDEO_PALHANDLE 0x00004007L
#define MCI_DGV_SETVIDEO_FRAME_RATE 0x00004008L
#define MCI_DGV_SETVIDEO_SOURCE 0x00004009L
#define MCI_DGV_SETVIDEO_KEY_INDEX 0x0000400aL
#define MCI_DGV_SETVIDEO_KEY_COLOR 0x0000400bL
#define MCI_DGV_SETVIDEO_BITSPERPEL 0x0000400cL
/* flags for the dwFlags parameter of MCI_SIGNAL */
#define MCI_DGV_SIGNAL_AT 0x00010000L
#define MCI_DGV_SIGNAL_EVERY 0x00020000L
#define MCI_DGV_SIGNAL_USERVAL 0x00040000L
#define MCI_DGV_SIGNAL_CANCEL 0x00080000L
#define MCI_DGV_SIGNAL_POSITION 0x00100000L
/* flags for the dwFlags parameter of MCI_STATUS command */
#define MCI_DGV_STATUS_NOMINAL 0x00020000L
#define MCI_DGV_STATUS_REFERENCE 0x00040000L
#define MCI_DGV_STATUS_LEFT 0x00080000L
#define MCI_DGV_STATUS_RIGHT 0x00100000L
#define MCI_DGV_STATUS_DISKSPACE 0x00200000L
#define MCI_DGV_STATUS_INPUT 0x00400000L
#define MCI_DGV_STATUS_OUTPUT 0x00800000L
#define MCI_DGV_STATUS_RECORD 0x01000000L
/* values for dwItem field of MCI_STATUS_PARMS structure */
#define MCI_DGV_STATUS_AUDIO_INPUT 0x00004000L
#define MCI_DGV_STATUS_HWND 0x00004001L
#define MCI_DGV_STATUS_SPEED 0x00004003L
#define MCI_DGV_STATUS_HPAL 0x00004004L
#define MCI_DGV_STATUS_BRIGHTNESS 0x00004005L
#define MCI_DGV_STATUS_COLOR 0x00004006L
#define MCI_DGV_STATUS_CONTRAST 0x00004007L
#define MCI_DGV_STATUS_FILEFORMAT 0x00004008L
#define MCI_DGV_STATUS_AUDIO_SOURCE 0x00004009L
#define MCI_DGV_STATUS_GAMMA 0x0000400aL
#define MCI_DGV_STATUS_MONITOR 0x0000400bL
#define MCI_DGV_STATUS_MONITOR_METHOD 0x0000400cL
#define MCI_DGV_STATUS_FRAME_RATE 0x0000400eL
#define MCI_DGV_STATUS_BASS 0x0000400fL
#define MCI_DGV_STATUS_SIZE 0x00004010L
#define MCI_DGV_STATUS_SEEK_EXACTLY 0x00004011L
#define MCI_DGV_STATUS_SHARPNESS 0x00004012L
#define MCI_DGV_STATUS_SMPTE 0x00004013L
#define MCI_DGV_STATUS_AUDIO 0x00004014L
#define MCI_DGV_STATUS_TINT 0x00004015L
#define MCI_DGV_STATUS_TREBLE 0x00004016L
#define MCI_DGV_STATUS_UNSAVED 0x00004017L
#define MCI_DGV_STATUS_VIDEO 0x00004018L
#define MCI_DGV_STATUS_VOLUME 0x00004019L
#define MCI_DGV_STATUS_AUDIO_RECORD 0x0000401aL
#define MCI_DGV_STATUS_VIDEO_SOURCE 0x0000401bL
#define MCI_DGV_STATUS_VIDEO_RECORD 0x0000401cL
#define MCI_DGV_STATUS_STILL_FILEFORMAT 0x0000401dL
#define MCI_DGV_STATUS_VIDEO_SRC_NUM 0x0000401eL
#define MCI_DGV_STATUS_FILE_MODE 0x0000401fL
#define MCI_DGV_STATUS_FILE_COMPLETION 0x00004020L
#define MCI_DGV_STATUS_WINDOW_VISIBLE 0x00004021L
#define MCI_DGV_STATUS_WINDOW_MINIMIZED 0x00004022L
#define MCI_DGV_STATUS_WINDOW_MAXIMIZED 0x00004023L
#define MCI_DGV_STATUS_KEY_INDEX 0x00004024L
#define MCI_DGV_STATUS_KEY_COLOR 0x00004025L
#define MCI_DGV_STATUS_PAUSE_MODE 0x00004026L
#define MCI_DGV_STATUS_SAMPLESPERSEC 0x00004027L
#define MCI_DGV_STATUS_AVGBYTESPERSEC 0x00004028L
#define MCI_DGV_STATUS_BLOCKALIGN 0x00004029L
#define MCI_DGV_STATUS_BITSPERSAMPLE 0x0000402aL
#define MCI_DGV_STATUS_BITSPERPEL 0x0000402bL
#define MCI_DGV_STATUS_FORWARD 0x0000402cL
#define MCI_DGV_STATUS_AUDIO_STREAM 0x0000402dL
#define MCI_DGV_STATUS_VIDEO_STREAM 0x0000402eL
/* flags for dwFlags parameter of MCI_STEP command message */
#define MCI_DGV_STEP_REVERSE 0x00010000L
#define MCI_DGV_STEP_FRAMES 0x00020000L
/* flags for dwFlags parameter of MCI_STOP command message */
#define MCI_DGV_STOP_HOLD 0x00010000L
/* flags for dwFlags parameter of MCI_UPDATE command message */
#define MCI_DGV_UPDATE_HDC 0x00020000L
#define MCI_DGV_UPDATE_PAINT 0x00040000L
/* flags for dwFlags parameter of MCI_WHERE command message */
#define MCI_DGV_WHERE_SOURCE 0x00020000L
#define MCI_DGV_WHERE_DESTINATION 0x00040000L
#define MCI_DGV_WHERE_FRAME 0x00080000L
#define MCI_DGV_WHERE_VIDEO 0x00100000L
#define MCI_DGV_WHERE_WINDOW 0x00200000L
#define MCI_DGV_WHERE_MAX 0x00400000L
/* flags for dwFlags parameter of MCI_WINDOW command message */
#define MCI_DGV_WINDOW_HWND 0x00010000L
#define MCI_DGV_WINDOW_STATE 0x00040000L
#define MCI_DGV_WINDOW_TEXT 0x00080000L
/* flags for hWnd parameter of MCI_DGV_WINDOW_PARMS parameter block */
#define MCI_DGV_WINDOW_DEFAULT 0x00000000L
/* parameter block for MCI_WHERE, MCI_PUT, MCI_FREEZE, MCI_UNFREEZE cmds */
typedef
struct
{
DWORD
dwCallback
;
RECT16
rc
;
}
MCI_DGV_RECT_PARMS16
,
*
LPMCI_DGV_RECT_PARMS16
;
typedef
struct
{
DWORD
dwCallback
;
RECT
rc
;
}
MCI_DGV_RECT_PARMS
,
*
LPMCI_DGV_RECT_PARMS
;
/* parameter block for MCI_CAPTURE command message */
typedef
struct
{
DWORD
dwCallback
;
LPSTR
lpstrFileName
;
RECT16
rc
;
}
MCI_DGV_CAPTURE_PARMS16
,
*
LPMCI_DGV_CAPTURE_PARMS16
;
typedef
struct
{
DWORD
dwCallback
;
LPSTR
lpstrFileName
;
RECT
rc
;
}
MCI_DGV_CAPTURE_PARMSA
,
*
LPMCI_DGV_CAPTURE_PARMSA
;
typedef
struct
{
DWORD
dwCallback
;
LPWSTR
lpstrFileName
;
RECT
rc
;
}
MCI_DGV_CAPTURE_PARMSW
,
*
LPMCI_DGV_CAPTURE_PARMSW
;
DECL_WINELIB_TYPE_AW
(
MCI_DGV_CAPTURE_PARMS
)
DECL_WINELIB_TYPE_AW
(
LPMCI_DGV_CAPTURE_PARMS
)
/* parameter block for MCI_CLOSE command message */
typedef
MCI_GENERIC_PARMS
MCI_CLOSE_PARMS
,
*
LPMCI_CLOSE_PARMS
;
/* parameter block for MCI_COPY command message */
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwFrom
;
DWORD
dwTo
;
RECT16
rc
;
DWORD
dwAudioStream
;
DWORD
dwVideoStream
;
}
MCI_DGV_COPY_PARMS16
,
*
LPMCI_DGV_COPY_PARMS16
;
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwFrom
;
DWORD
dwTo
;
RECT
rc
;
DWORD
dwAudioStream
;
DWORD
dwVideoStream
;
}
MCI_DGV_COPY_PARMS
,
*
LPMCI_DGV_COPY_PARMS
;
/* parameter block for MCI_CUE command message */
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwTo
;
}
MCI_DGV_CUE_PARMS
,
*
LPMCI_DGV_CUE_PARMS
;
/* parameter block for MCI_CUT command message */
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwFrom
;
DWORD
dwTo
;
RECT16
rc
;
DWORD
dwAudioStream
;
DWORD
dwVideoStream
;
}
MCI_DGV_CUT_PARMS16
,
*
LPMCI_DGV_CUT_PARMS16
;
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwFrom
;
DWORD
dwTo
;
RECT
rc
;
DWORD
dwAudioStream
;
DWORD
dwVideoStream
;
}
MCI_DGV_CUT_PARMS
,
*
LPMCI_DGV_CUT_PARMS
;
/* parameter block for MCI_DELETE command message */
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwFrom
;
DWORD
dwTo
;
RECT16
rc
;
DWORD
dwAudioStream
;
DWORD
dwVideoStream
;
}
MCI_DGV_DELETE_PARMS16
,
*
LPMCI_DGV_DELETE_PARMS16
;
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwFrom
;
DWORD
dwTo
;
RECT
rc
;
DWORD
dwAudioStream
;
DWORD
dwVideoStream
;
}
MCI_DGV_DELETE_PARMS
,
*
LPMCI_DGV_DELETE_PARMS
;
/* parameter block for MCI_FREEZE command message */
typedef
MCI_DGV_RECT_PARMS16
MCI_DGV_FREEZE_PARMS16
,
*
LPMCI_DGV_FREEZE_PARMS16
;
typedef
MCI_DGV_RECT_PARMS
MCI_DGV_FREEZE_PARMS
,
*
LPMCI_DGV_FREEZE_PARMS
;
/* parameter block for MCI_INFO command message */
typedef
struct
{
DWORD
dwCallback
;
LPSTR
lpstrReturn
;
DWORD
dwRetSize
;
DWORD
dwItem
;
}
MCI_DGV_INFO_PARMS16
,
*
LPMCI_DGV_INFO_PARMS16
;
typedef
struct
{
DWORD
dwCallback
;
LPSTR
lpstrReturn
;
DWORD
dwRetSize
;
DWORD
dwItem
;
}
MCI_DGV_INFO_PARMSA
,
*
LPMCI_DGV_INFO_PARMSA
;
typedef
struct
{
DWORD
dwCallback
;
LPWSTR
lpstrReturn
;
DWORD
dwRetSize
;
DWORD
dwItem
;
}
MCI_DGV_INFO_PARMSW
,
*
LPMCI_DGV_INFO_PARMSW
;
DECL_WINELIB_TYPE_AW
(
MCI_DGV_INFO_PARMS
)
DECL_WINELIB_TYPE_AW
(
LPMCI_DGV_INFO_PARMS
)
/* parameter block for MCI_LIST command message */
typedef
struct
{
DWORD
dwCallback
;
LPSTR
lpstrReturn
;
DWORD
dwLength
;
DWORD
dwNumber
;
DWORD
dwItem
;
LPSTR
lpstrAlgorithm
;
}
MCI_DGV_LIST_PARMS16
,
*
LPMCI_DGV_LIST_PARMS16
;
typedef
struct
{
DWORD
dwCallback
;
LPSTR
lpstrReturn
;
DWORD
dwLength
;
DWORD
dwNumber
;
DWORD
dwItem
;
LPSTR
lpstrAlgorithm
;
}
MCI_DGV_LIST_PARMSA
,
*
LPMCI_DGV_LIST_PARMSA
;
typedef
struct
{
DWORD
dwCallback
;
LPWSTR
lpstrReturn
;
DWORD
dwLength
;
DWORD
dwNumber
;
DWORD
dwItem
;
LPWSTR
lpstrAlgorithm
;
}
MCI_DGV_LIST_PARMSW
,
*
LPMCI_DGV_LIST_PARMSW
;
DECL_WINELIB_TYPE_AW
(
MCI_DGV_LIST_PARMS
)
DECL_WINELIB_TYPE_AW
(
LPMCI_DGV_LIST_PARMS
)
/* parameter block for MCI_LOAD command message */
typedef
MCI_LOAD_PARMS16
MCI_DGV_LOAD_PARMS16
,
*
LPMCI_DGV_LOAD_PARMS16
;
typedef
MCI_LOAD_PARMSA
MCI_DGV_LOAD_PARMSA
,
*
LPMCI_DGV_LOAD_PARMSA
;
typedef
MCI_LOAD_PARMSW
MCI_DGV_LOAD_PARMSW
,
*
LPMCI_DGV_LOAD_PARMSW
;
DECL_WINELIB_TYPE_AW
(
MCI_DGV_LOAD_PARMS
)
DECL_WINELIB_TYPE_AW
(
LPMCI_DGV_LOAD_PARMS
)
/* parameter block for MCI_MONITOR command message */
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwSource
;
DWORD
dwMethod
;
}
MCI_DGV_MONITOR_PARMS
,
*
LPMCI_DGV_MONITOR_PARMS
;
/* parameter block for MCI_OPEN command message */
typedef
struct
{
DWORD
dwCallback
;
UINT16
wDeviceID
;
UINT16
wReserved0
;
LPSTR
lpstrDeviceType
;
LPSTR
lpstrElementName
;
LPSTR
lpstrAlias
;
DWORD
dwStyle
;
HWND16
hWndParent
;
UINT16
wReserved1
;
}
MCI_DGV_OPEN_PARMS16
,
*
LPMCI_DGV_OPEN_PARMS16
;
typedef
struct
{
DWORD
dwCallback
;
UINT
wDeviceID
;
LPSTR
lpstrDeviceType
;
LPSTR
lpstrElementName
;
LPSTR
lpstrAlias
;
DWORD
dwStyle
;
HWND
hWndParent
;
}
MCI_DGV_OPEN_PARMSA
,
*
LPMCI_DGV_OPEN_PARMSA
;
typedef
struct
{
DWORD
dwCallback
;
UINT
wDeviceID
;
LPWSTR
lpstrDeviceType
;
LPWSTR
lpstrElementName
;
LPWSTR
lpstrAlias
;
DWORD
dwStyle
;
HWND
hWndParent
;
}
MCI_DGV_OPEN_PARMSW
,
*
LPMCI_DGV_OPEN_PARMSW
;
DECL_WINELIB_TYPE_AW
(
MCI_DGV_OPEN_PARMS
)
DECL_WINELIB_TYPE_AW
(
LPMCI_DGV_OPEN_PARMS
)
/* parameter block for MCI_PAUSE command message */
typedef
MCI_GENERIC_PARMS
MCI_DGV_PAUSE_PARMS
,
*
LPMCI_DGV_PAUSE_PARMS
;
/* parameter block for MCI_PASTE command message */
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwTo
;
RECT16
rc
;
DWORD
dwAudioStream
;
DWORD
dwVideoStream
;
}
MCI_DGV_PASTE_PARMS16
,
*
LPMCI_DGV_PASTE_PARMS16
;
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwTo
;
RECT
rc
;
DWORD
dwAudioStream
;
DWORD
dwVideoStream
;
}
MCI_DGV_PASTE_PARMS
,
*
LPMCI_DGV_PASTE_PARMS
;
/* parameter block for MCI_PLAY command message */
typedef
MCI_PLAY_PARMS
MCI_DGV_PLAY_PARMS
,
*
LPMCI_DGV_PLAY_PARMS
;
/* parameter block for MCI_PUT command message */
typedef
MCI_DGV_RECT_PARMS16
MCI_DGV_PUT_PARMS16
,
*
LPMCI_DGV_PUT_PARMS16
;
typedef
MCI_DGV_RECT_PARMS
MCI_DGV_PUT_PARMS
,
*
LPMCI_DGV_PUT_PARMS
;
/* parameter block for MCI_QUALITY command message */
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwItem
;
LPSTR
lpstrName
;
DWORD
lpstrAlgorithm
;
DWORD
dwHandle
;
}
MCI_DGV_QUALITY_PARMS16
,
*
LPMCI_DGV_QUALITY_PARMS16
;
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwItem
;
LPSTR
lpstrName
;
DWORD
lpstrAlgorithm
;
DWORD
dwHandle
;
}
MCI_DGV_QUALITY_PARMSA
,
*
LPMCI_DGV_QUALITY_PARMSA
;
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwItem
;
LPWSTR
lpstrName
;
DWORD
lpstrAlgorithm
;
DWORD
dwHandle
;
}
MCI_DGV_QUALITY_PARMSW
,
*
LPMCI_DGV_QUALITY_PARMSW
;
DECL_WINELIB_TYPE_AW
(
MCI_DGV_QUALITY_PARMS
)
DECL_WINELIB_TYPE_AW
(
LPMCI_DGV_QUALITY_PARMS
)
/* parameter block for MCI_REALIZE command message */
typedef
MCI_GENERIC_PARMS
MCI_REALIZE_PARMS
,
*
LPMCI_REALIZE_PARMS
;
/* parameter block for MCI_RECORD command message */
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwFrom
;
DWORD
dwTo
;
RECT16
rc
;
DWORD
dwAudioStream
;
DWORD
dwVideoStream
;
}
MCI_DGV_RECORD_PARMS16
,
*
LPMCI_DGV_RECORD_PARMS16
;
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwFrom
;
DWORD
dwTo
;
RECT
rc
;
DWORD
dwAudioStream
;
DWORD
dwVideoStream
;
}
MCI_DGV_RECORD_PARMS
,
*
LPMCI_DGV_RECORD_PARMS
;
/* parameter block for MCI_RESERVE command message */
typedef
struct
{
DWORD
dwCallback
;
LPSTR
lpstrPath
;
DWORD
dwSize
;
}
MCI_DGV_RESERVE_PARMS16
,
*
LPMCI_DGV_RESERVE_PARMS16A
;
typedef
struct
{
DWORD
dwCallback
;
LPSTR
lpstrPath
;
DWORD
dwSize
;
}
MCI_DGV_RESERVE_PARMSA
,
*
LPMCI_DGV_RESERVE_PARMSA
;
typedef
struct
{
DWORD
dwCallback
;
LPWSTR
lpstrPath
;
DWORD
dwSize
;
}
MCI_DGV_RESERVE_PARMSW
,
*
LPMCI_DGV_RESERVE_PARMSW
;
DECL_WINELIB_TYPE_AW
(
MCI_DGV_RESERVE_PARMS
)
DECL_WINELIB_TYPE_AW
(
LPMCI_DGV_RESERVE_PARMS
)
/* parameter block for MCI_RESTORE command message */
typedef
struct
{
DWORD
dwCallback
;
LPSTR
lpstrFileName
;
RECT16
rc
;
}
MCI_DGV_RESTORE_PARMS16
,
*
LPMCI_DGV_RESTORE_PARMS16
;
typedef
struct
{
DWORD
dwCallback
;
LPSTR
lpstrFileName
;
RECT
rc
;
}
MCI_DGV_RESTORE_PARMSA
,
*
LPMCI_DGV_RESTORE_PARMSA
;
typedef
struct
{
DWORD
dwCallback
;
LPWSTR
lpstrFileName
;
RECT
rc
;
}
MCI_DGV_RESTORE_PARMSW
,
*
LPMCI_DGV_RESTORE_PARMSW
;
DECL_WINELIB_TYPE_AW
(
MCI_DGV_RESTORE_PARMS
)
DECL_WINELIB_TYPE_AW
(
LPMCI_DGV_RESTORE_PARMS
)
/* parameter block for MCI_RESUME command message */
typedef
MCI_GENERIC_PARMS
MCI_DGV_RESUME_PARMS
,
*
LPMCI_DGV_RESUME_PARMS
;
/* parameter block for MCI_SAVE command message */
typedef
struct
{
DWORD
dwCallback
;
LPSTR
lpstrFileName
;
RECT16
rc
;
}
MCI_DGV_SAVE_PARMS16
,
*
LPMCI_DGV_SAVE_PARMS16
;
typedef
struct
{
DWORD
dwCallback
;
LPSTR
lpstrFileName
;
RECT
rc
;
}
MCI_DGV_SAVE_PARMSA
,
*
LPMCI_DGV_SAVE_PARMSA
;
typedef
struct
{
DWORD
dwCallback
;
LPWSTR
lpstrFileName
;
RECT
rc
;
}
MCI_DGV_SAVE_PARMSW
,
*
LPMCI_DGV_SAVE_PARMSW
;
DECL_WINELIB_TYPE_AW
(
MCI_DGV_SAVE_PARMS
)
DECL_WINELIB_TYPE_AW
(
LPMCI_DGV_SAVE_PARMS
)
/* parameter block for MCI_SET command message */
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwTimeFormat
;
DWORD
dwAudio
;
DWORD
dwFileFormat
;
DWORD
dwSpeed
;
}
MCI_DGV_SET_PARMS
,
*
LPMCI_DGV_SET_PARMS
;
/* parameter block for MCI_SETAUDIO command message */
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwItem
;
DWORD
dwValue
;
DWORD
dwOver
;
LPSTR
lpstrAlgorithm
;
LPSTR
lpstrQuality
;
}
MCI_DGV_SETAUDIO_PARMS16
,
*
LPMCI_DGV_SETAUDIO_PARMS16
;
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwItem
;
DWORD
dwValue
;
DWORD
dwOver
;
LPSTR
lpstrAlgorithm
;
LPSTR
lpstrQuality
;
}
MCI_DGV_SETAUDIO_PARMSA
,
*
LPMCI_DGV_SETAUDIO_PARMSA
;
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwItem
;
DWORD
dwValue
;
DWORD
dwOver
;
LPWSTR
lpstrAlgorithm
;
LPWSTR
lpstrQuality
;
}
MCI_DGV_SETAUDIO_PARMSW
,
*
LPMCI_DGV_SETAUDIO_PARMSW
;
DECL_WINELIB_TYPE_AW
(
MCI_DGV_SETAUDIO_PARMS
)
DECL_WINELIB_TYPE_AW
(
LPMCI_DGV_SETAUDIO_PARMS
)
/* parameter block for MCI_SIGNAL command message */
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwPosition
;
DWORD
dwPeriod
;
DWORD
dwUserParm
;
}
MCI_DGV_SIGNAL_PARMS
,
*
LPMCI_DGV_SIGNAL_PARMS
;
/* parameter block for MCI_SETVIDEO command message */
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwItem
;
DWORD
dwValue
;
DWORD
dwOver
;
LPSTR
lpstrAlgorithm
;
LPSTR
lpstrQuality
;
DWORD
dwSourceNumber
;
}
MCI_DGV_SETVIDEO_PARMS16
,
*
LPMCI_DGV_SETVIDEO_PARMS16
;
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwItem
;
DWORD
dwValue
;
DWORD
dwOver
;
LPSTR
lpstrAlgorithm
;
LPSTR
lpstrQuality
;
DWORD
dwSourceNumber
;
}
MCI_DGV_SETVIDEO_PARMSA
,
*
LPMCI_DGV_SETVIDEO_PARMSA
;
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwItem
;
DWORD
dwValue
;
DWORD
dwOver
;
LPWSTR
lpstrAlgorithm
;
LPWSTR
lpstrQuality
;
DWORD
dwSourceNumber
;
}
MCI_DGV_SETVIDEO_PARMSW
,
*
LPMCI_DGV_SETVIDEO_PARMSW
;
DECL_WINELIB_TYPE_AW
(
MCI_DGV_SETVIDEO_PARMS
)
DECL_WINELIB_TYPE_AW
(
LPMCI_DGV_SETVIDEO_PARMS
)
/* parameter block for MCI_STATUS command message */
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwReturn
;
DWORD
dwItem
;
DWORD
dwTrack
;
LPSTR
lpstrDrive
;
DWORD
dwReference
;
}
MCI_DGV_STATUS_PARMS16
,
*
LPMCI_DGV_STATUS_PARMS16
;
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwReturn
;
DWORD
dwItem
;
DWORD
dwTrack
;
LPSTR
lpstrDrive
;
DWORD
dwReference
;
}
MCI_DGV_STATUS_PARMSA
,
*
LPMCI_DGV_STATUS_PARMSA
;
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwReturn
;
DWORD
dwItem
;
DWORD
dwTrack
;
LPWSTR
lpstrDrive
;
DWORD
dwReference
;
}
MCI_DGV_STATUS_PARMSW
,
*
LPMCI_DGV_STATUS_PARMSW
;
DECL_WINELIB_TYPE_AW
(
MCI_DGV_STATUS_PARMS
)
DECL_WINELIB_TYPE_AW
(
LPMCI_DGV_STATUS_PARMS
)
/* parameter block for MCI_STEP command message */
typedef
struct
{
DWORD
dwCallback
;
DWORD
dwFrames
;
}
MCI_DGV_STEP_PARMS
,
*
LPMCI_DGV_STEP_PARMS
;
/* parameter block for MCI_STOP command message */
typedef
MCI_GENERIC_PARMS
MCI_DGV_STOP_PARMS
,
*
LPMCI_DGV_STOP_PARMS
;
/* parameter block for MCI_UNFREEZE command message */
typedef
MCI_DGV_RECT_PARMS16
MCI_DGV_UNFREEZE_PARMS16
,
*
LPMCI_DGV_UNFREEZE_PARMS16
;
typedef
MCI_DGV_RECT_PARMS
MCI_DGV_UNFREEZE_PARMS
,
*
LPMCI_DGV_UNFREEZE_PARMS
;
/* parameter block for MCI_UPDATE command message */
typedef
struct
{
DWORD
dwCallback
;
RECT16
rc
;
HDC16
hDC
;
UINT16
wReserved0
;
}
MCI_DGV_UPDATE_PARMS16
,
*
LPMCI_DGV_UPDATE_PARMS16
;
typedef
struct
{
DWORD
dwCallback
;
RECT
rc
;
HDC
hDC
;
}
MCI_DGV_UPDATE_PARMS
,
*
LPMCI_DGV_UPDATE_PARMS
;
/* parameter block for MCI_WHERE command message */
typedef
MCI_DGV_RECT_PARMS16
MCI_DGV_WHERE_PARMS16
,
*
LPMCI_DGV_WHERE_PARMS16
;
typedef
MCI_DGV_RECT_PARMS
MCI_DGV_WHERE_PARMS
,
*
LPMCI_DGV_WHERE_PARMS
;
/* parameter block for MCI_WINDOW command message */
typedef
struct
{
DWORD
dwCallback
;
HWND16
hWnd
;
UINT16
wReserved1
;
UINT16
nCmdShow
;
UINT16
wReserved2
;
LPSTR
lpstrText
;
}
MCI_DGV_WINDOW_PARMS16
,
*
LPMCI_DGV_WINDOW_PARMS16
;
typedef
struct
{
DWORD
dwCallback
;
HWND
hWnd
;
UINT
nCmdShow
;
LPSTR
lpstrText
;
}
MCI_DGV_WINDOW_PARMSA
,
*
LPMCI_DGV_WINDOW_PARMSA
;
typedef
struct
{
DWORD
dwCallback
;
HWND
hWnd
;
UINT
nCmdShow
;
LPWSTR
lpstrText
;
}
MCI_DGV_WINDOW_PARMSW
,
*
LPMCI_DGV_WINDOW_PARMSW
;
#ifdef __cplusplus
}
#endif
multimedia/mciavi.c
View file @
efba9f80
/* -*- tab-width: 8; c-basic-offset: 4 -*- */
/*
* Digital video MCI Wine Driver
*
...
...
@@ -11,6 +13,7 @@
#include "xmalloc.h"
#include "debug.h"
#include "callback.h"
#include "digitalv.h"
#include "options.h"
typedef
struct
{
...
...
@@ -19,6 +22,7 @@ typedef struct {
WORD
wNotifyDeviceID
;
/* MCI device ID with a pending notification */
HANDLE16
hCallback
;
/* Callback handle for pending notification */
HMMIO
hFile
;
/* mmio file handle open as Element */
WORD
wStatus
;
/* One of MCI_MODE_XXX */
MCI_OPEN_PARMSA
openParms
;
DWORD
dwTimeFormat
;
}
WINE_MCIAVI
;
...
...
@@ -44,7 +48,10 @@ static WINE_MCIAVI* AVI_mciGetOpenDev(UINT16 wDevID)
static
DWORD
AVI_mciStop
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_GENERIC_PARMS
lpParms
);
static
DWORD
AVI_mciOpen
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_OPEN_PARMSA
lpParms
)
/***************************************************************************
* AVI_mciOpen [internal]
*/
static
DWORD
AVI_mciOpen
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_OPEN_PARMSA
lpParms
)
{
WINE_MCIAVI
*
wma
;
...
...
@@ -80,13 +87,16 @@ static DWORD AVI_mciOpen(UINT16 wDevID, DWORD dwFlags, LPMCI_OPEN_PARMSA lpParms
wma
->
wNotifyDeviceID
=
lpParms
->
wDeviceID
;
/* FIXME: do real open */
/* wmcda->mciMode = MCI_MODE_STOP; */
wma
->
wStatus
=
MCI_MODE_STOP
;
wma
->
dwTimeFormat
=
MCI_FORMAT_TMSF
;
return
0
;
}
/***************************************************************************
* AVI_mciClose [internal]
*/
static
DWORD
AVI_mciClose
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_GENERIC_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
...
...
@@ -103,56 +113,292 @@ static DWORD AVI_mciClose(UINT16 wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS lpPa
return
0
;
}
/***************************************************************************
* AVI_mciPlay [internal]
*/
static
DWORD
AVI_mciPlay
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_PLAY_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lX, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
wma
->
wStatus
=
MCI_MODE_PLAY
;
if
(
lpParms
&&
(
dwFlags
&
MCI_NOTIFY
))
{
TRACE
(
mcimidi
,
"MCI_NOTIFY_SUCCESSFUL %08lX !
\n
"
,
lpParms
->
dwCallback
);
mciDriverNotify16
((
HWND16
)
LOWORD
(
lpParms
->
dwCallback
),
wma
->
wNotifyDeviceID
,
MCI_NOTIFY_SUCCESSFUL
);
}
return
0
;
}
static
DWORD
AVI_mciRecord
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_RECORD_PARMS
lpParms
)
/***************************************************************************
* AVI_mciRecord [internal]
*/
static
DWORD
AVI_mciRecord
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_RECORD_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lX, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
wma
->
wStatus
=
MCI_MODE_RECORD
;
return
0
;
}
/***************************************************************************
* AVI_mciStop [internal]
*/
static
DWORD
AVI_mciStop
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_GENERIC_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lX, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
wma
->
wStatus
=
MCI_MODE_STOP
;
return
0
;
}
static
DWORD
AVI_mciSet
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_SET_PARMS
lpParms
)
/***************************************************************************
* AVI_mciPause [internal]
*/
static
DWORD
AVI_mciPause
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_GENERIC_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lX, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
wma
->
wStatus
=
MCI_MODE_PAUSE
;
return
0
;
}
static
DWORD
AVI_mciPause
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_GENERIC_PARMS
lpParms
)
/***************************************************************************
* AVI_mciResume [internal]
*/
static
DWORD
AVI_mciResume
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_GENERIC_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lX, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
wma
->
wStatus
=
MCI_MODE_PLAY
;
return
0
;
}
static
DWORD
AVI_mciResume
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_GENERIC_PARMS
lpParms
)
/***************************************************************************
* AVI_mciSeek [internal]
*/
static
DWORD
AVI_mciSeek
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_SEEK_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lX, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
static
DWORD
AVI_mciStatus
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_STATUS_PARMS
lpParms
)
/***************************************************************************
* AVI_mciSet [internal]
*/
static
DWORD
AVI_mciSet
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_SET_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lX, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
if
(
dwFlags
&
MCI_SET_TIME_FORMAT
)
{
switch
(
lpParms
->
dwTimeFormat
)
{
case
MCI_FORMAT_MILLISECONDS
:
TRACE
(
mciavi
,
"MCI_FORMAT_MILLISECONDS !
\n
"
);
wma
->
dwTimeFormat
=
MCI_FORMAT_MILLISECONDS
;
break
;
case
MCI_FORMAT_FRAMES
:
TRACE
(
mciavi
,
"MCI_FORMAT_FRAMES !
\n
"
);
wma
->
dwTimeFormat
=
MCI_FORMAT_FRAMES
;
break
;
default:
WARN
(
mciavi
,
"Bad time format %lu!
\n
"
,
lpParms
->
dwTimeFormat
);
return
MCIERR_BAD_TIME_FORMAT
;
}
}
if
(
dwFlags
&
MCI_SET_DOOR_OPEN
)
{
TRACE
(
mciavi
,
"No support for door open !
\n
"
);
return
MCIERR_UNSUPPORTED_FUNCTION
;
}
if
(
dwFlags
&
MCI_SET_DOOR_CLOSED
)
{
TRACE
(
mciavi
,
"No support for door close !
\n
"
);
return
MCIERR_UNSUPPORTED_FUNCTION
;
}
if
(
dwFlags
&
MCI_SET_ON
)
{
dbg_decl_str
(
mciavi
,
256
);
dsprintf
(
mciavi
,
"MCI_SET_ON:"
);
if
(
dwFlags
&
MCI_SET_VIDEO
)
{
dsprintf
(
mciavi
,
" video"
);
}
if
(
dwFlags
&
MCI_SET_AUDIO
)
{
dsprintf
(
mciavi
,
" audio"
);
if
(
lpParms
->
dwAudio
&
MCI_SET_AUDIO_ALL
)
dsprintf
(
mciavi
,
" all"
);
if
(
lpParms
->
dwAudio
&
MCI_SET_AUDIO_LEFT
)
dsprintf
(
mciavi
,
" left"
);
if
(
lpParms
->
dwAudio
&
MCI_SET_AUDIO_RIGHT
)
dsprintf
(
mciavi
,
" right"
);
}
if
(
dwFlags
&
MCI_DGV_SET_SEEK_EXACTLY
)
{
dsprintf
(
mciavi
,
" seek_exactly"
);
}
TRACE
(
mciavi
,
"%s
\n
"
,
dbg_str
(
mciavi
));
}
if
(
dwFlags
&
MCI_SET_OFF
)
{
dbg_decl_str
(
mciavi
,
256
);
dsprintf
(
mciavi
,
"MCI_SET_OFF:"
);
if
(
dwFlags
&
MCI_SET_VIDEO
)
{
dsprintf
(
mciavi
,
" video"
);
}
if
(
dwFlags
&
MCI_SET_AUDIO
)
{
dsprintf
(
mciavi
,
" audio"
);
if
(
lpParms
->
dwAudio
&
MCI_SET_AUDIO_ALL
)
dsprintf
(
mciavi
,
" all"
);
if
(
lpParms
->
dwAudio
&
MCI_SET_AUDIO_LEFT
)
dsprintf
(
mciavi
,
" left"
);
if
(
lpParms
->
dwAudio
&
MCI_SET_AUDIO_RIGHT
)
dsprintf
(
mciavi
,
" right"
);
}
if
(
dwFlags
&
MCI_DGV_SET_SEEK_EXACTLY
)
{
dsprintf
(
mciavi
,
" seek_exactly"
);
}
TRACE
(
mciavi
,
"%s
\n
"
,
dbg_str
(
mciavi
));
}
if
(
dwFlags
&
MCI_DGV_SET_FILEFORMAT
)
{
LPSTR
str
=
"save"
;
if
(
dwFlags
&
MCI_DGV_SET_STILL
)
str
=
"capture"
;
switch
(
lpParms
->
dwFileFormat
)
{
case
MCI_DGV_FF_AVI
:
TRACE
(
mciavi
,
"Setting file format (%s) to 'AVI'
\n
"
,
str
);
break
;
case
MCI_DGV_FF_AVSS
:
TRACE
(
mciavi
,
"Setting file format (%s) to 'AVSS'
\n
"
,
str
);
break
;
case
MCI_DGV_FF_DIB
:
TRACE
(
mciavi
,
"Setting file format (%s) to 'DIB'
\n
"
,
str
);
break
;
case
MCI_DGV_FF_JFIF
:
TRACE
(
mciavi
,
"Setting file format (%s) to 'JFIF'
\n
"
,
str
);
break
;
case
MCI_DGV_FF_JPEG
:
TRACE
(
mciavi
,
"Setting file format (%s) to 'JPEG'
\n
"
,
str
);
break
;
case
MCI_DGV_FF_MPEG
:
TRACE
(
mciavi
,
"Setting file format (%s) to 'MPEG'
\n
"
,
str
);
break
;
case
MCI_DGV_FF_RDIB
:
TRACE
(
mciavi
,
"Setting file format (%s) to 'RLE DIB'
\n
"
,
str
);
break
;
case
MCI_DGV_FF_RJPEG
:
TRACE
(
mciavi
,
"Setting file format (%s) to 'RJPEG'
\n
"
,
str
);
break
;
default:
TRACE
(
mciavi
,
"Setting unknown file format (%s): %ld
\n
"
,
str
,
lpParms
->
dwFileFormat
);
}
}
if
(
dwFlags
&
MCI_DGV_SET_SPEED
)
{
TRACE
(
mciavi
,
"Setting speed to %ld
\n
"
,
lpParms
->
dwSpeed
);
}
return
0
;
}
/***************************************************************************
* AVI_mciStatus [internal]
*/
static
DWORD
AVI_mciStatus
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_STATUS_PARMSA
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lX, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
if
(
dwFlags
&
MCI_STATUS_ITEM
)
{
switch
(
lpParms
->
dwItem
)
{
case
MCI_STATUS_CURRENT_TRACK
:
lpParms
->
dwReturn
=
1
;
TRACE
(
mciavi
,
"MCI_STATUS_CURRENT_TRACK => %lu
\n
"
,
lpParms
->
dwReturn
);
break
;
case
MCI_STATUS_LENGTH
:
if
(
dwFlags
&
MCI_TRACK
)
{
/* lpParms->dwTrack contains track # */
lpParms
->
dwReturn
=
0x1234
;
}
else
{
lpParms
->
dwReturn
=
0x4321
;
}
TRACE
(
mciavi
,
"MCI_STATUS_LENGTH => %lu
\n
"
,
lpParms
->
dwReturn
);
break
;
case
MCI_STATUS_MODE
:
lpParms
->
dwReturn
=
wma
->
wStatus
;
TRACE
(
mciavi
,
"MCI_STATUS_MODE => %lu
\n
"
,
lpParms
->
dwReturn
);
break
;
case
MCI_STATUS_MEDIA_PRESENT
:
TRACE
(
mciavi
,
"MCI_STATUS_MEDIA_PRESENT => TRUE
\n
"
);
lpParms
->
dwReturn
=
TRUE
;
break
;
case
MCI_STATUS_NUMBER_OF_TRACKS
:
lpParms
->
dwReturn
=
3
;
TRACE
(
mciavi
,
"MCI_STATUS_NUMBER_OF_TRACKS => %lu
\n
"
,
lpParms
->
dwReturn
);
break
;
case
MCI_STATUS_POSITION
:
/* FIXME: do I need to use MCI_TRACK ? */
lpParms
->
dwReturn
=
0x0123
;
TRACE
(
mciavi
,
"MCI_STATUS_POSITION %s => %lu
\n
"
,
(
dwFlags
&
MCI_STATUS_START
)
?
"start"
:
"current"
,
lpParms
->
dwReturn
);
break
;
case
MCI_STATUS_READY
:
lpParms
->
dwReturn
=
(
wma
->
wStatus
!=
MCI_MODE_NOT_READY
);
TRACE
(
mciavi
,
"MCI_STATUS_READY = %lu
\n
"
,
lpParms
->
dwReturn
);
break
;
case
MCI_STATUS_TIME_FORMAT
:
lpParms
->
dwReturn
=
wma
->
dwTimeFormat
;
TRACE
(
mciavi
,
"MCI_STATUS_TIME_FORMAT => %lu
\n
"
,
lpParms
->
dwReturn
);
break
;
default:
WARN
(
mciavi
,
"Unknowm command %08lX !
\n
"
,
lpParms
->
dwItem
);
return
MCIERR_UNRECOGNIZED_COMMAND
;
}
}
else
{
WARN
(
mciavi
,
"No Status-Item!
\n
"
);
return
MCIERR_UNRECOGNIZED_COMMAND
;
}
if
(
dwFlags
&
MCI_NOTIFY
)
{
TRACE
(
mciavi
,
"MCI_NOTIFY_SUCCESSFUL %08lX !
\n
"
,
lpParms
->
dwCallback
);
mciDriverNotify16
((
HWND16
)
LOWORD
(
lpParms
->
dwCallback
),
wma
->
wNotifyDeviceID
,
MCI_NOTIFY_SUCCESSFUL
);
}
return
0
;
}
/***************************************************************************
* AVI_mciGetDevCaps [internal]
*/
static
DWORD
AVI_mciGetDevCaps
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_GETDEVCAPS_PARMS
lpParms
)
{
WINE_MCIAVI
*
wm
m
=
AVI_mciGetOpenDev
(
wDevID
);
WINE_MCIAVI
*
wm
a
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lX, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wm
m
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
if
(
wm
a
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
if
(
dwFlags
&
MCI_GETDEVCAPS_ITEM
)
{
switch
(
lpParms
->
dwItem
)
{
...
...
@@ -203,7 +449,10 @@ static DWORD AVI_mciGetDevCaps(UINT16 wDevID, DWORD dwFlags, LPMCI_GETDEVCAPS_P
return
0
;
}
static
DWORD
AVI_mciInfo
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_INFO_PARMSA
lpParms
)
/***************************************************************************
* AVI_mciInfo [internal]
*/
static
DWORD
AVI_mciInfo
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_INFO_PARMSA
lpParms
)
{
DWORD
ret
=
0
;
LPSTR
str
=
0
;
...
...
@@ -246,21 +495,442 @@ static DWORD AVI_mciInfo(UINT16 wDevID, DWORD dwFlags, LPMCI_INFO_PARMSA lpParms
return
ret
;
}
static
DWORD
AVI_mciSeek
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_SEEK_PARMS
lpParms
)
/***************************************************************************
* AVI_mciPut [internal]
*/
static
DWORD
AVI_mciPut
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_PUT_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
RECT
rc
;
dbg_decl_str
(
mciavi
,
256
);
TRACE
(
mciavi
,
"(%04x, %08lX, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
if
(
dwFlags
&
MCI_DGV_RECT
)
{
rc
=
lpParms
->
rc
;
}
else
{
SetRectEmpty
(
&
rc
);
}
if
(
dwFlags
&
MCI_DGV_PUT_CLIENT
)
{
dsprintf
(
mciavi
,
"PUT_CLIENT"
);
}
if
(
dwFlags
&
MCI_DGV_PUT_DESTINATION
)
{
dsprintf
(
mciavi
,
"PUT_DESTINATION"
);
}
if
(
dwFlags
&
MCI_DGV_PUT_FRAME
)
{
dsprintf
(
mciavi
,
"PUT_FRAME"
);
}
if
(
dwFlags
&
MCI_DGV_PUT_SOURCE
)
{
dsprintf
(
mciavi
,
"PUT_SOURCE"
);
}
if
(
dwFlags
&
MCI_DGV_PUT_VIDEO
)
{
dsprintf
(
mciavi
,
"PUT_VIDEO"
);
}
if
(
dwFlags
&
MCI_DGV_PUT_WINDOW
)
{
dsprintf
(
mciavi
,
"PUT_WINDOW"
);
}
dsprintf
(
mciavi
,
" (%d,%d,%d,%d)
\n
"
,
rc
.
left
,
rc
.
top
,
rc
.
right
,
rc
.
bottom
);
return
0
;
}
/***************************************************************************
* AVI_mciWindow [internal]
*/
static
DWORD
AVI_mciWindow
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_WINDOW_PARMSA
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lX, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
if
(
dwFlags
&
MCI_DGV_WINDOW_HWND
)
{
TRACE
(
mciavi
,
"Setting hWnd to %08lx
\n
"
,
(
DWORD
)
lpParms
->
hWnd
);
}
if
(
dwFlags
&
MCI_DGV_WINDOW_STATE
)
{
TRACE
(
mciavi
,
"Setting nCmdShow to %d
\n
"
,
lpParms
->
nCmdShow
);
}
if
(
dwFlags
&
MCI_DGV_WINDOW_TEXT
)
{
TRACE
(
mciavi
,
"Setting caption to '%s'
\n
"
,
lpParms
->
lpstrText
);
}
return
0
;
}
/*****************************************************************************
* AVI_mciLoad [internal]
*/
static
DWORD
AVI_mciLoad
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_LOAD_PARMSA
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciSave [internal]
*/
static
DWORD
AVI_mciSave
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_SAVE_PARMSA
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciFreeze [internal]
*/
static
DWORD
AVI_mciFreeze
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_RECT_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciRealize [internal]
*/
static
DWORD
AVI_mciRealize
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_GENERIC_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciUnFreeze [internal]
*/
static
DWORD
AVI_mciUnFreeze
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_RECT_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciUpdate [internal]
*/
static
DWORD
AVI_mciUpdate
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_UPDATE_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciWhere [internal]
*/
static
DWORD
AVI_mciWhere
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_RECT_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciStep [internal]
*/
static
DWORD
AVI_mciStep
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_STEP_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciCopy [internal]
*/
static
DWORD
AVI_mciCopy
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_COPY_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciCut [internal]
*/
static
DWORD
AVI_mciCut
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_CUT_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciDelete [internal]
*/
static
DWORD
AVI_mciDelete
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_DELETE_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciPaste [internal]
*/
static
DWORD
AVI_mciPaste
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_PASTE_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciCue [internal]
*/
static
DWORD
AVI_mciCue
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_CUE_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciCapture [internal]
*/
static
DWORD
AVI_mciCapture
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_CAPTURE_PARMSA
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciMonitor [internal]
*/
static
DWORD
AVI_mciMonitor
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_MONITOR_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciReserve [internal]
*/
static
DWORD
AVI_mciReserve
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_RESERVE_PARMSA
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciSetAudio [internal]
*/
static
DWORD
AVI_mciSetAudio
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_SETAUDIO_PARMSA
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciSignal [internal]
*/
static
DWORD
AVI_mciSignal
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_SIGNAL_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciSetVideo [internal]
*/
static
DWORD
AVI_mciSetVideo
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_SETVIDEO_PARMSA
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciQuality [internal]
*/
static
DWORD
AVI_mciQuality
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_QUALITY_PARMSA
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciList [internal]
*/
static
DWORD
AVI_mciList
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_LIST_PARMSA
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciUndo [internal]
*/
static
DWORD
AVI_mciUndo
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_GENERIC_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciConfigure [internal]
*/
static
DWORD
AVI_mciConfigure
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_GENERIC_PARMS
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/******************************************************************************
* AVI_mciRestore [internal]
*/
static
DWORD
AVI_mciRestore
(
UINT16
wDevID
,
DWORD
dwFlags
,
LPMCI_DGV_RESTORE_PARMSA
lpParms
)
{
WINE_MCIAVI
*
wma
=
AVI_mciGetOpenDev
(
wDevID
);
TRACE
(
mciavi
,
"(%04x, %08lx, %p) : stub
\n
"
,
wDevID
,
dwFlags
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
wma
==
NULL
)
return
MCIERR_INVALID_DEVICE_ID
;
return
0
;
}
/*======================================================================*
* MCI AVI entry points *
*======================================================================*/
/**************************************************************************
* MCIAVI_DriverProc
32
[sample driver]
* MCIAVI_DriverProc [sample driver]
*/
LONG
MCIAVI_DriverProc
32
(
DWORD
dwDevID
,
HDRVR16
hDriv
,
DWORD
wMsg
,
LONG
MCIAVI_DriverProc
(
DWORD
dwDevID
,
HDRVR16
hDriv
,
DWORD
wMsg
,
DWORD
dwParam1
,
DWORD
dwParam2
)
{
switch
(
wMsg
)
{
...
...
@@ -274,34 +944,49 @@ LONG MCIAVI_DriverProc32(DWORD dwDevID, HDRVR16 hDriv, DWORD wMsg,
case
DRV_CONFIGURE
:
MessageBoxA
(
0
,
"Sample AVI Wine Driver !"
,
"MM-Wine Driver"
,
MB_OK
);
return
1
;
case
DRV_INSTALL
:
return
DRVCNF_RESTART
;
case
DRV_REMOVE
:
return
DRVCNF_RESTART
;
case
MCI_OPEN_DRIVER
:
return
AVI_mciOpen
(
dwDevID
,
dwParam1
,
(
LPMCI_OPEN_PARMSA
)
dwParam2
);
case
MCI_OPEN_DRIVER
:
return
AVI_mciOpen
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_OPEN_PARMSA
)
dwParam2
);
case
MCI_CLOSE_DRIVER
:
return
AVI_mciClose
(
dwDevID
,
dwParam1
,
(
LPMCI_GENERIC_PARMS
)
dwParam2
);
case
MCI_PLAY
:
return
AVI_mciPlay
(
dwDevID
,
dwParam1
,
(
LPMCI_PLAY_PARMS
)
dwParam2
);
case
MCI_RECORD
:
return
AVI_mciRecord
(
dwDevID
,
dwParam1
,
(
LPMCI_RECORD_PARMS
)
dwParam2
);
case
MCI_RECORD
:
return
AVI_mciRecord
(
dwDevID
,
dwParam1
,
(
LPMCI_
DGV_
RECORD_PARMS
)
dwParam2
);
case
MCI_STOP
:
return
AVI_mciStop
(
dwDevID
,
dwParam1
,
(
LPMCI_GENERIC_PARMS
)
dwParam2
);
case
MCI_SET
:
return
AVI_mciSet
(
dwDevID
,
dwParam1
,
(
LPMCI_SET_PARMS
)
dwParam2
);
case
MCI_SET
:
return
AVI_mciSet
(
dwDevID
,
dwParam1
,
(
LPMCI_
DGV_
SET_PARMS
)
dwParam2
);
case
MCI_PAUSE
:
return
AVI_mciPause
(
dwDevID
,
dwParam1
,
(
LPMCI_GENERIC_PARMS
)
dwParam2
);
case
MCI_RESUME
:
return
AVI_mciResume
(
dwDevID
,
dwParam1
,
(
LPMCI_GENERIC_PARMS
)
dwParam2
);
case
MCI_STATUS
:
return
AVI_mciStatus
(
dwDevID
,
dwParam1
,
(
LPMCI_
STATUS_PARMS
)
dwParam2
);
case
MCI_GETDEVCAPS
:
return
AVI_mciGetDevCaps
(
dwDevID
,
dwParam1
,
(
LPMCI_GETDEVCAPS_PARMS
)
dwParam2
);
case
MCI_INFO
:
return
AVI_mciInfo
(
dwDevID
,
dwParam1
,
(
LPMCI_
INFO_PARMSA
)
dwParam2
);
case
MCI_STATUS
:
return
AVI_mciStatus
(
dwDevID
,
dwParam1
,
(
LPMCI_
DGV_STATUS_PARMSA
)
dwParam2
);
case
MCI_GETDEVCAPS
:
return
AVI_mciGetDevCaps
(
dwDevID
,
dwParam1
,
(
LPMCI_GETDEVCAPS_PARMS
)
dwParam2
);
case
MCI_INFO
:
return
AVI_mciInfo
(
dwDevID
,
dwParam1
,
(
LPMCI_
DGV_INFO_PARMSA
)
dwParam2
);
case
MCI_SEEK
:
return
AVI_mciSeek
(
dwDevID
,
dwParam1
,
(
LPMCI_SEEK_PARMS
)
dwParam2
);
case
MCI_LOAD
:
case
MCI_SAVE
:
case
MCI_FREEZE
:
case
MCI_PUT
:
case
MCI_REALIZE
:
case
MCI_UNFREEZE
:
case
MCI_UPDATE
:
case
MCI_WHERE
:
case
MCI_WINDOW
:
case
MCI_STEP
:
case
MCI_PUT
:
return
AVI_mciPut
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_PUT_PARMS
)
dwParam2
);
case
MCI_WINDOW
:
return
AVI_mciWindow
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_WINDOW_PARMSA
)
dwParam2
);
case
MCI_LOAD
:
return
AVI_mciLoad
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_LOAD_PARMSA
)
dwParam2
);
case
MCI_SAVE
:
return
AVI_mciSave
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_SAVE_PARMSA
)
dwParam2
);
case
MCI_FREEZE
:
return
AVI_mciFreeze
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_RECT_PARMS
)
dwParam2
);
case
MCI_REALIZE
:
return
AVI_mciRealize
(
dwDevID
,
dwParam1
,
(
LPMCI_GENERIC_PARMS
)
dwParam2
);
case
MCI_UNFREEZE
:
return
AVI_mciUnFreeze
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_RECT_PARMS
)
dwParam2
);
case
MCI_UPDATE
:
return
AVI_mciUpdate
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_UPDATE_PARMS
)
dwParam2
);
case
MCI_WHERE
:
return
AVI_mciWhere
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_RECT_PARMS
)
dwParam2
);
case
MCI_STEP
:
return
AVI_mciStep
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_STEP_PARMS
)
dwParam2
);
case
MCI_COPY
:
return
AVI_mciCopy
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_COPY_PARMS
)
dwParam2
);
case
MCI_CUT
:
return
AVI_mciCut
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_CUT_PARMS
)
dwParam2
);
case
MCI_DELETE
:
return
AVI_mciDelete
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_DELETE_PARMS
)
dwParam2
);
case
MCI_PASTE
:
return
AVI_mciPaste
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_PASTE_PARMS
)
dwParam2
);
case
MCI_CUE
:
return
AVI_mciCue
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_CUE_PARMS
)
dwParam2
);
/* Digital Video specific */
case
MCI_CAPTURE
:
return
AVI_mciCapture
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_CAPTURE_PARMSA
)
dwParam2
);
case
MCI_MONITOR
:
return
AVI_mciMonitor
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_MONITOR_PARMS
)
dwParam2
);
case
MCI_RESERVE
:
return
AVI_mciReserve
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_RESERVE_PARMSA
)
dwParam2
);
case
MCI_SETAUDIO
:
return
AVI_mciSetAudio
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_SETAUDIO_PARMSA
)
dwParam2
);
case
MCI_SIGNAL
:
return
AVI_mciSignal
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_SIGNAL_PARMS
)
dwParam2
);
case
MCI_SETVIDEO
:
return
AVI_mciSetVideo
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_SETVIDEO_PARMSA
)
dwParam2
);
case
MCI_QUALITY
:
return
AVI_mciQuality
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_QUALITY_PARMSA
)
dwParam2
);
case
MCI_LIST
:
return
AVI_mciList
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_LIST_PARMSA
)
dwParam2
);
case
MCI_UNDO
:
return
AVI_mciUndo
(
dwDevID
,
dwParam1
,
(
LPMCI_GENERIC_PARMS
)
dwParam2
);
case
MCI_CONFIGURE
:
return
AVI_mciConfigure
(
dwDevID
,
dwParam1
,
(
LPMCI_GENERIC_PARMS
)
dwParam2
);
case
MCI_RESTORE
:
return
AVI_mciRestore
(
dwDevID
,
dwParam1
,
(
LPMCI_DGV_RESTORE_PARMSA
)
dwParam2
);
case
MCI_SPIN
:
case
MCI_ESCAPE
:
case
MCI_COPY
:
case
MCI_CUT
:
case
MCI_DELETE
:
case
MCI_PASTE
:
WARN
(
mciavi
,
"Unsupported command=%s
\n
"
,
MCI_CommandToString
(
wMsg
));
break
;
case
MCI_OPEN
:
...
...
@@ -314,3 +999,5 @@ LONG MCIAVI_DriverProc32(DWORD dwDevID, HDRVR16 hDriv, DWORD wMsg,
}
return
MCIERR_UNRECOGNIZED_COMMAND
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment