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
1d854a10
Commit
1d854a10
authored
Jan 02, 2003
by
Eric Pouech
Committed by
Alexandre Julliard
Jan 02, 2003
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
When unmapping a (wave|midi)-header unprepare message, make sure the
unpreparation was successful.
parent
a2251e28
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
27 additions
and
26 deletions
+27
-26
lolvldrv.c
dlls/winmm/lolvldrv.c
+6
-6
message16.c
dlls/winmm/message16.c
+18
-18
winemm.h
dlls/winmm/winemm.h
+3
-2
No files found.
dlls/winmm/lolvldrv.c
View file @
1d854a10
...
...
@@ -39,9 +39,9 @@ typedef struct tagWINE_LLTYPE {
LPSTR
typestr
;
/* name (for debugging) */
BOOL
bSupportMapper
;
/* if type is allowed to support mapper */
MMDRV_MAPFUNC
Map16To32A
;
/* those are function pointers to handle */
MMDRV_MAPFUNC
UnMap16To32A
;
/* the parameter conversion (16 vs 32 bit) */
MMDRV_
UN
MAPFUNC
UnMap16To32A
;
/* the parameter conversion (16 vs 32 bit) */
MMDRV_MAPFUNC
Map32ATo16
;
/* when hi-func (in mmsystem or winmm) and */
MMDRV_MAPFUNC
UnMap32ATo16
;
/* low-func (in .drv) do not match */
MMDRV_
UN
MAPFUNC
UnMap32ATo16
;
/* low-func (in .drv) do not match */
LPDRVCALLBACK
Callback
;
/* handles callback for a specified type */
/* those attributes reflect the loaded/current situation for the type */
UINT
wMaxId
;
/* number of loaded devices (sum across all loaded drivers */
...
...
@@ -74,8 +74,8 @@ static WINE_LLTYPE llTypes[MMDRV_MAX] = {
*
*/
void
MMDRV_InstallMap
(
unsigned
int
drv
,
MMDRV_MAPFUNC
mp1632
,
MMDRV_MAPFUNC
um1632
,
MMDRV_MAPFUNC
mp3216
,
MMDRV_MAPFUNC
um3216
,
MMDRV_MAPFUNC
mp1632
,
MMDRV_
UN
MAPFUNC
um1632
,
MMDRV_MAPFUNC
mp3216
,
MMDRV_
UN
MAPFUNC
um3216
,
LPDRVCALLBACK
cb
)
{
assert
(
drv
<
MMDRV_MAX
);
...
...
@@ -234,7 +234,7 @@ DWORD MMDRV_Message(LPWINE_MLD mld, WORD wMsg, DWORD dwParam1,
dwParam1
,
dwParam2
);
TRACE
(
"=> %lu
\n
"
,
ret
);
if
(
map
==
WINMM_MAP_OKMEM
)
llType
->
UnMap16To32A
(
wMsg
,
&
mld
->
dwDriverInstance
,
&
dwParam1
,
&
dwParam2
);
llType
->
UnMap16To32A
(
wMsg
,
&
mld
->
dwDriverInstance
,
&
dwParam1
,
&
dwParam2
,
ret
);
break
;
default:
FIXME
(
"NIY
\n
"
);
...
...
@@ -264,7 +264,7 @@ DWORD MMDRV_Message(LPWINE_MLD mld, WORD wMsg, DWORD dwParam1,
dwParam1
,
dwParam2
);
TRACE
(
"=> %lu
\n
"
,
ret
);
if
(
map
==
WINMM_MAP_OKMEM
)
llType
->
UnMap32ATo16
(
wMsg
,
&
mld
->
dwDriverInstance
,
&
dwParam1
,
&
dwParam2
);
llType
->
UnMap32ATo16
(
wMsg
,
&
mld
->
dwDriverInstance
,
&
dwParam1
,
&
dwParam2
,
ret
);
break
;
default:
FIXME
(
"NIY
\n
"
);
...
...
dlls/winmm/message16.c
View file @
1d854a10
...
...
@@ -70,7 +70,7 @@ static WINMM_MapType MMDRV_Aux_Map16To32A (UINT wMsg, LPDWORD lpdwUser, LPDWOR
/**************************************************************************
* MMDRV_Aux_UnMap16To32A [internal]
*/
static
WINMM_MapType
MMDRV_Aux_UnMap16To32A
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
)
static
WINMM_MapType
MMDRV_Aux_UnMap16To32A
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
,
MMRESULT
fn_ret
)
{
return
WINMM_MAP_MSGERROR
;
}
...
...
@@ -86,7 +86,7 @@ static WINMM_MapType MMDRV_Aux_Map32ATo16 (UINT wMsg, LPDWORD lpdwUser, LPDWOR
/**************************************************************************
* MMDRV_Aux_UnMap32ATo16 [internal]
*/
static
WINMM_MapType
MMDRV_Aux_UnMap32ATo16
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
)
static
WINMM_MapType
MMDRV_Aux_UnMap32ATo16
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
,
MMRESULT
fn_ret
)
{
#if 0
case AUXDM_GETDEVCAPS:
...
...
@@ -126,7 +126,7 @@ static WINMM_MapType MMDRV_Mixer_Map16To32A (UINT wMsg, LPDWORD lpdwUser, LPDW
/**************************************************************************
* MMDRV_Mixer_UnMap16To32A [internal]
*/
static
WINMM_MapType
MMDRV_Mixer_UnMap16To32A
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
)
static
WINMM_MapType
MMDRV_Mixer_UnMap16To32A
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
,
MMRESULT
fn_ret
)
{
#if 0
MIXERCAPSA micA;
...
...
@@ -156,7 +156,7 @@ static WINMM_MapType MMDRV_Mixer_Map32ATo16 (UINT wMsg, LPDWORD lpdwUser, LPDW
/**************************************************************************
* MMDRV_Mixer_UnMap32ATo16 [internal]
*/
static
WINMM_MapType
MMDRV_Mixer_UnMap32ATo16
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
)
static
WINMM_MapType
MMDRV_Mixer_UnMap32ATo16
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
,
MMRESULT
fn_ret
)
{
return
WINMM_MAP_MSGERROR
;
}
...
...
@@ -187,7 +187,7 @@ static WINMM_MapType MMDRV_MidiIn_Map16To32A (UINT wMsg, LPDWORD lpdwUser, LPD
/**************************************************************************
* MMDRV_MidiIn_UnMap16To32A [internal]
*/
static
WINMM_MapType
MMDRV_MidiIn_UnMap16To32A
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
)
static
WINMM_MapType
MMDRV_MidiIn_UnMap16To32A
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
,
MMRESULT
fn_ret
)
{
return
WINMM_MAP_MSGERROR
;
}
...
...
@@ -203,7 +203,7 @@ static WINMM_MapType MMDRV_MidiIn_Map32ATo16 (UINT wMsg, LPDWORD lpdwUser, LPD
/**************************************************************************
* MMDRV_MidiIn_UnMap32ATo16 [internal]
*/
static
WINMM_MapType
MMDRV_MidiIn_UnMap32ATo16
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
)
static
WINMM_MapType
MMDRV_MidiIn_UnMap32ATo16
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
,
MMRESULT
fn_ret
)
{
return
WINMM_MAP_MSGERROR
;
}
...
...
@@ -360,7 +360,7 @@ static WINMM_MapType MMDRV_MidiOut_Map16To32A (UINT wMsg, LPDWORD lpdwUser, LP
/**************************************************************************
* MMDRV_MidiOut_UnMap16To32A [internal]
*/
static
WINMM_MapType
MMDRV_MidiOut_UnMap16To32A
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
)
static
WINMM_MapType
MMDRV_MidiOut_UnMap16To32A
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
,
MMRESULT
fn_ret
)
{
WINMM_MapType
ret
=
WINMM_MAP_MSGERROR
;
...
...
@@ -411,7 +411,7 @@ static WINMM_MapType MMDRV_MidiOut_UnMap16To32A(UINT wMsg, LPDWORD lpdwUser, LP
if
(
mh16
->
reserved
>=
sizeof
(
MIDIHDR
))
mh16
->
dwOffset
=
mh32
->
dwOffset
;
if
(
wMsg
==
MODM_UNPREPARE
)
{
if
(
wMsg
==
MODM_UNPREPARE
&&
fn_ret
==
MMSYSERR_NOERROR
)
{
HeapFree
(
GetProcessHeap
(),
0
,
(
LPSTR
)
mh32
-
sizeof
(
LPMIDIHDR
));
mh16
->
lpNext
=
0
;
}
...
...
@@ -571,7 +571,7 @@ static WINMM_MapType MMDRV_MidiOut_Map32ATo16 (UINT wMsg, LPDWORD lpdwUser, LP
/**************************************************************************
* MMDRV_MidiOut_UnMap32ATo16 [internal]
*/
static
WINMM_MapType
MMDRV_MidiOut_UnMap32ATo16
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
)
static
WINMM_MapType
MMDRV_MidiOut_UnMap32ATo16
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
,
MMRESULT
fn_ret
)
{
WINMM_MapType
ret
=
WINMM_MAP_MSGERROR
;
...
...
@@ -617,7 +617,7 @@ static WINMM_MapType MMDRV_MidiOut_UnMap32ATo16(UINT wMsg, LPDWORD lpdwUser, LP
mh32
->
dwUser
=
mh16
->
dwUser
;
mh32
->
dwFlags
=
mh16
->
dwFlags
;
if
(
wMsg
==
MODM_UNPREPARE
)
{
if
(
wMsg
==
MODM_UNPREPARE
&&
fn_ret
==
MMSYSERR_NOERROR
)
{
HeapFree
(
GetProcessHeap
(),
0
,
ptr
);
mh32
->
lpNext
=
0
;
}
...
...
@@ -805,7 +805,7 @@ static WINMM_MapType MMDRV_WaveIn_Map16To32A (UINT wMsg, LPDWORD lpdwUser, LPD
/**************************************************************************
* MMDRV_WaveIn_UnMap16To32A [internal]
*/
static
WINMM_MapType
MMDRV_WaveIn_UnMap16To32A
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
)
static
WINMM_MapType
MMDRV_WaveIn_UnMap16To32A
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
,
MMRESULT
fn_ret
)
{
WINMM_MapType
ret
=
WINMM_MAP_MSGERROR
;
...
...
@@ -860,7 +860,7 @@ static WINMM_MapType MMDRV_WaveIn_UnMap16To32A(UINT wMsg, LPDWORD lpdwUser, LPD
wh16
->
dwFlags
=
wh32
->
dwFlags
;
wh16
->
dwLoops
=
wh32
->
dwLoops
;
if
(
wMsg
==
WIDM_UNPREPARE
)
{
if
(
wMsg
==
WIDM_UNPREPARE
&&
fn_ret
==
MMSYSERR_NOERROR
)
{
HeapFree
(
GetProcessHeap
(),
0
,
(
LPSTR
)
wh32
-
sizeof
(
LPWAVEHDR
));
wh16
->
lpNext
=
0
;
}
...
...
@@ -1047,7 +1047,7 @@ static WINMM_MapType MMDRV_WaveIn_Map32ATo16 (UINT wMsg, LPDWORD lpdwUser, LPD
/**************************************************************************
* MMDRV_WaveIn_UnMap32ATo16 [internal]
*/
static
WINMM_MapType
MMDRV_WaveIn_UnMap32ATo16
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
)
static
WINMM_MapType
MMDRV_WaveIn_UnMap32ATo16
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
,
MMRESULT
fn_ret
)
{
WINMM_MapType
ret
=
WINMM_MAP_MSGERROR
;
...
...
@@ -1089,7 +1089,7 @@ static WINMM_MapType MMDRV_WaveIn_UnMap32ATo16(UINT wMsg, LPDWORD lpdwUser, LPD
wh32
->
dwLoops
=
wh16
->
dwLoops
;
UnMapLS
(
*
lpParam1
);
if
(
wMsg
==
WIDM_UNPREPARE
)
{
if
(
wMsg
==
WIDM_UNPREPARE
&&
fn_ret
==
MMSYSERR_NOERROR
)
{
HeapFree
(
GetProcessHeap
(),
0
,
ptr
);
wh32
->
lpNext
=
0
;
}
...
...
@@ -1303,7 +1303,7 @@ static WINMM_MapType MMDRV_WaveOut_Map16To32A (UINT wMsg, LPDWORD lpdwUser, LP
/**************************************************************************
* MMDRV_WaveOut_UnMap16To32A [internal]
*/
static
WINMM_MapType
MMDRV_WaveOut_UnMap16To32A
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
)
static
WINMM_MapType
MMDRV_WaveOut_UnMap16To32A
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
,
MMRESULT
fn_ret
)
{
WINMM_MapType
ret
=
WINMM_MAP_MSGERROR
;
...
...
@@ -1369,7 +1369,7 @@ static WINMM_MapType MMDRV_WaveOut_UnMap16To32A(UINT wMsg, LPDWORD lpdwUser, LP
wh16
->
dwFlags
=
wh32
->
dwFlags
;
wh16
->
dwLoops
=
wh32
->
dwLoops
;
if
(
wMsg
==
WODM_UNPREPARE
)
{
if
(
wMsg
==
WODM_UNPREPARE
&&
fn_ret
==
MMSYSERR_NOERROR
)
{
HeapFree
(
GetProcessHeap
(),
0
,
(
LPSTR
)
wh32
-
sizeof
(
LPWAVEHDR
));
wh16
->
lpNext
=
0
;
}
...
...
@@ -1575,7 +1575,7 @@ static WINMM_MapType MMDRV_WaveOut_Map32ATo16 (UINT wMsg, LPDWORD lpdwUser, LP
/**************************************************************************
* MMDRV_WaveOut_UnMap32ATo16 [internal]
*/
static
WINMM_MapType
MMDRV_WaveOut_UnMap32ATo16
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
)
static
WINMM_MapType
MMDRV_WaveOut_UnMap32ATo16
(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
,
MMRESULT
fn_ret
)
{
WINMM_MapType
ret
;
...
...
@@ -1659,7 +1659,7 @@ static WINMM_MapType MMDRV_WaveOut_UnMap32ATo16(UINT wMsg, LPDWORD lpdwUser, LP
wh32
->
dwLoops
=
wh16
->
dwLoops
;
UnMapLS
(
*
lpParam1
);
if
(
wMsg
==
WODM_UNPREPARE
)
{
if
(
wMsg
==
WODM_UNPREPARE
&&
fn_ret
==
MMSYSERR_NOERROR
)
{
HeapFree
(
GetProcessHeap
(),
0
,
ptr
);
wh32
->
lpNext
=
0
;
}
...
...
dlls/winmm/winemm.h
View file @
1d854a10
...
...
@@ -225,6 +225,7 @@ typedef struct tagWINE_MM_IDATA {
typedef
LONG
(
*
MCIPROC16
)(
DWORD
,
HDRVR16
,
WORD
,
DWORD
,
DWORD
);
typedef
LONG
(
*
MCIPROC
)(
DWORD
,
HDRVR
,
DWORD
,
DWORD
,
DWORD
);
typedef
WINMM_MapType
(
*
MMDRV_MAPFUNC
)(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
);
typedef
WINMM_MapType
(
*
MMDRV_UNMAPFUNC
)(
UINT
wMsg
,
LPDWORD
lpdwUser
,
LPDWORD
lpParam1
,
LPDWORD
lpParam2
,
MMRESULT
ret
);
LPWINE_DRIVER
DRIVER_FindFromHDrvr
(
HDRVR
hDrvr
);
BOOL
DRIVER_GetLibName
(
LPCSTR
keyName
,
LPCSTR
sectName
,
LPSTR
buf
,
int
sz
);
...
...
@@ -244,8 +245,8 @@ LPWINE_MLD MMDRV_GetRelated(HANDLE hndl, UINT srcType, BOOL bSrcCanBeID, UINT ds
DWORD
MMDRV_Message
(
LPWINE_MLD
mld
,
WORD
wMsg
,
DWORD
dwParam1
,
DWORD
dwParam2
,
BOOL
bFrom32
);
UINT
MMDRV_PhysicalFeatures
(
LPWINE_MLD
mld
,
UINT
uMsg
,
DWORD
dwParam1
,
DWORD
dwParam2
);
BOOL
MMDRV_Is32
(
unsigned
int
);
void
MMDRV_InstallMap
(
unsigned
int
,
MMDRV_MAPFUNC
,
MMDRV_MAPFUNC
,
MMDRV_MAPFUNC
,
MMDRV_MAPFUNC
,
LPDRVCALLBACK
);
void
MMDRV_InstallMap
(
unsigned
int
,
MMDRV_MAPFUNC
,
MMDRV_
UN
MAPFUNC
,
MMDRV_MAPFUNC
,
MMDRV_
UN
MAPFUNC
,
LPDRVCALLBACK
);
BOOL
MCI_Init
(
void
);
WINE_MCIDRIVER
*
MCI_GetDriver
(
UINT16
uDevID
);
...
...
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