Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
wine
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Terraform modules
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Jason Beetham
wine
Commits
6671ea97
Commit
6671ea97
authored
25 years ago
by
Eric Pouech
Committed by
Alexandre Julliard
25 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Added (still incomplete) handling of MCI_BREAK command.
parent
7c0b4c3d
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
include/multimedia.h
+1
-0
1 addition, 0 deletions
include/multimedia.h
multimedia/mci.c
+27
-5
27 additions, 5 deletions
multimedia/mci.c
multimedia/mmsystem.c
+18
-3
18 additions, 3 deletions
multimedia/mmsystem.c
with
46 additions
and
8 deletions
include/multimedia.h
+
1
−
0
View file @
6671ea97
...
...
@@ -100,6 +100,7 @@ extern MCI_MapType MCI_UnMapMsg16To32A(WORD uDevTyp, WORD wMsg, DWORD lParam);
extern
DWORD
MCI_Open
(
DWORD
dwParam
,
LPMCI_OPEN_PARMSA
lpParms
);
extern
DWORD
MCI_Close
(
UINT16
wDevID
,
DWORD
dwParam
,
LPMCI_GENERIC_PARMS
lpParms
);
extern
DWORD
MCI_SysInfo
(
UINT
uDevID
,
DWORD
dwFlags
,
LPMCI_SYSINFO_PARMSA
lpParms
);
extern
DWORD
MCI_Break
(
UINT
uDevID
,
DWORD
dwFlags
,
LPMCI_BREAK_PARMS
lpParms
);
typedef
LONG
(
*
MCIPROC16
)(
DWORD
,
HDRVR16
,
WORD
,
DWORD
,
DWORD
);
typedef
LONG
(
*
MCIPROC
)(
DWORD
,
HDRVR
,
DWORD
,
DWORD
,
DWORD
);
...
...
This diff is collapsed.
Click to expand it.
multimedia/mci.c
+
27
−
5
View file @
6671ea97
...
...
@@ -558,7 +558,9 @@ MCI_MapType MCI_MapMsg32ATo16(WORD uDevType, WORD wMsg, DWORD dwFlags, DWORD* lP
* MCI_SETAUDIO, MCI_SETTUNER, MCI_SETVIDEO
*/
switch
(
wMsg
)
{
/* case MCI_BREAK: */
case
MCI_BREAK
:
size
=
sizeof
(
MCI_BREAK_PARMS
);
break
;
/* case MCI_CAPTURE */
case
MCI_CLOSE
:
case
MCI_CLOSE_DRIVER
:
...
...
@@ -832,6 +834,8 @@ MCI_MapType MCI_UnMapMsg32ATo16(WORD uDevType, WORD wMsg, DWORD dwFlags, DWORD l
DWORD
map
=
0
;
switch
(
wMsg
)
{
case
MCI_BREAK
:
break
;
/* case MCI_CAPTURE */
case
MCI_CLOSE
:
case
MCI_CLOSE_DRIVER
:
...
...
@@ -1111,11 +1115,13 @@ DWORD MCI_Open(DWORD dwParam, LPMCI_OPEN_PARMSA lpParms)
TRACE
(
"(%08lX, %p)
\n
"
,
dwParam
,
lpParms
);
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
((
dwParam
&
~
(
MCI_OPEN_SHAREABLE
|
MCI_OPEN_ELEMENT
|
MCI_OPEN_ALIAS
|
MCI_OPEN_TYPE
|
MCI_OPEN_TYPE_ID
|
MCI_NOTIFY
|
MCI_WAIT
))
!=
0
)
{
FIXME
(
"Unsupported yet dwFlags=%08lX
\n
"
,
(
dwParam
&
~
(
MCI_OPEN_SHAREABLE
|
MCI_OPEN_ELEMENT
|
MCI_OPEN_ALIAS
|
MCI_OPEN_TYPE
|
MCI_OPEN_TYPE_ID
|
MCI_NOTIFY
|
MCI_WAIT
)));
/* only two low bytes are generic, the other ones are dev type specific */
#define WINE_MCI_SUPP (0xFFFF0000|MCI_OPEN_SHAREABLE|MCI_OPEN_ELEMENT|MCI_OPEN_ALIAS|MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID|MCI_NOTIFY|MCI_WAIT)
if
((
dwParam
&
~
WINE_MCI_SUPP
)
!=
0
)
{
FIXME
(
"Unsupported yet dwFlags=%08lX
\n
"
,
dwParam
&
~
WINE_MCI_SUPP
);
}
#undef WINE_MCI_SUPP
while
(
MCI_GetDrv
(
wDevID
)
->
modp
.
wType
!=
0
)
{
wDevID
=
MCI_NextDevID
(
wDevID
);
...
...
@@ -1357,6 +1363,22 @@ DWORD MCI_SysInfo(UINT uDevID, DWORD dwFlags, LPMCI_SYSINFO_PARMSA lpParms)
return
ret
;
}
/**************************************************************************
* MCI_Break [internal]
*/
DWORD
MCI_Break
(
UINT
wDevID
,
DWORD
dwFlags
,
LPMCI_BREAK_PARMS
lpParms
)
{
DWORD
dwRet
=
0
;
if
(
lpParms
==
NULL
)
return
MCIERR_NULL_PARAMETER_BLOCK
;
if
(
dwFlags
&
MCI_NOTIFY
)
mciDriverNotify16
(
lpParms
->
dwCallback
,
wDevID
,
(
dwRet
==
0
)
?
MCI_NOTIFY_SUCCESSFUL
:
MCI_NOTIFY_FAILURE
);
return
dwRet
;
}
struct
SCA
{
UINT
wDevID
;
UINT
wMsg
;
...
...
This diff is collapsed.
Click to expand it.
multimedia/mmsystem.c
+
18
−
3
View file @
6671ea97
...
...
@@ -1798,6 +1798,10 @@ DWORD WINAPI mciSendCommandA(UINT wDevID, UINT wMsg, DWORD dwParam1, DWORD dwPar
case
MCI_SYSINFO
:
dwRet
=
MCI_SysInfo
(
wDevID
,
dwParam1
,
(
LPMCI_SYSINFO_PARMSA
)
dwParam2
);
break
;
case
MCI_BREAK
:
dwRet
=
MCI_Break
(
wDevID
,
dwParam1
,
(
LPMCI_BREAK_PARMS
)
dwParam2
);
break
;
/* FIXME: it seems that MCI_BREAK and MCI_SOUND need the same handling */
default:
if
(
wDevID
==
MCI_ALL_DEVICE_ID
)
{
FIXME
(
"unhandled MCI_ALL_DEVICE_ID
\n
"
);
...
...
@@ -1839,7 +1843,7 @@ DWORD WINAPI mciSendCommand16(UINT16 wDevID, UINT16 wMsg, DWORD dwParam1, DWORD
dwRet
=
MCI_Open
(
dwParam1
,
(
LPMCI_OPEN_PARMSA
)
dwParam2
);
MCI_UnMapMsg16To32A
(
MCI_GetDrv
(
wDevID
)
->
modp
.
wType
,
wMsg
,
dwParam2
);
break
;
default:
break
;
/* so that gcc does bark */
default:
break
;
/* so that gcc does
not
bark */
}
break
;
case
MCI_CLOSE
:
...
...
@@ -1855,7 +1859,7 @@ DWORD WINAPI mciSendCommand16(UINT16 wDevID, UINT16 wMsg, DWORD dwParam1, DWORD
dwRet
=
MCI_Close
(
wDevID
,
dwParam1
,
(
LPMCI_GENERIC_PARMS
)
dwParam2
);
MCI_UnMapMsg16To32A
(
MCI_GetDrv
(
wDevID
)
->
modp
.
wType
,
wMsg
,
dwParam2
);
break
;
default:
break
;
/* so that gcc does bark */
default:
break
;
/* so that gcc does
not
bark */
}
}
break
;
...
...
@@ -1866,9 +1870,20 @@ DWORD WINAPI mciSendCommand16(UINT16 wDevID, UINT16 wMsg, DWORD dwParam1, DWORD
dwRet
=
MCI_SysInfo
(
wDevID
,
dwParam1
,
(
LPMCI_SYSINFO_PARMSA
)
dwParam2
);
MCI_UnMapMsg16To32A
(
0
,
wDevID
,
dwParam2
);
break
;
default:
break
;
/* so that gcc does bark */
default:
break
;
/* so that gcc doesnot bark */
}
break
;
case
MCI_BREAK
:
switch
(
MCI_MapMsg16To32A
(
0
,
wDevID
,
&
dwParam2
))
{
case
MCI_MAP_OK
:
case
MCI_MAP_OKMEM
:
dwRet
=
MCI_Break
(
wDevID
,
dwParam1
,
(
LPMCI_BREAK_PARMS
)
dwParam2
);
MCI_UnMapMsg16To32A
(
0
,
wDevID
,
dwParam2
);
break
;
default:
break
;
/* so that gcc does not bark */
}
break
;
/* FIXME: it seems that MCI_BREAK and MCI_SOUND need the same handling */
default:
if
(
wDevID
==
MCI_ALL_DEVICE_ID
)
{
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment