msvfw32: MCI Step is like Seek.

Joerg-Cyril.Hoehle at t-systems.com Joerg-Cyril.Hoehle at t-systems.com
Wed Mar 17 08:11:30 CDT 2010


Hi,

the old code was wrong because MCI_STEP takes one parameter and is not
compatible with GENERIC_PARMS.

I felt this small function does not warrant 15 lines of code so I
merged it with MCI_SEEK.
InvalidateRect() is now called only in the absence of an error (like the
old Step code did, but Seek did it unconditionally).

I thought about adding MCI_NOTIFY because a seek will cause a mode
change if the device was playing or paused.  But actually that should
be caught already by a well-behaved MCI driver whose player was
started with MCI_NOTIFY like mciwnd does: the player is stopped and sends
MCI_NOTIFY_ABORTED.  So Seek needs not anticipate the mode change.

While we are at notifications, after I read MSDN on MCIWND, I was left wondering
whether MS-Windows might implement MCIWNDF_NOTIFYMODE via the periodic
timers, i.e. WM_TIMER would call MCIWND_notify_mode() beside
MCIWND_UpdateState().  This would guarantee notifications whenever the
mode changes, albeit a little late.

Wine's mciwnd currently does not guarantee notification every time the
mode changes.  E.g., using MCIWNDM_SENDSTRING to send the MCI_PAUSE
command will not be caught with mciwave, because the notification
request given to play PLAY is only returned after the player stops,
not when paused.

Why did I find no single test for msvfw? Is the cause the problem Detlef
Riekenberg mentioned some time ago about some 16bit build dependency?
mciwnd.c and msvideo_main.c are large files and there's nothing except
the 4 ICOpen case tests I wrote last year?

Regards,
	Jörg Höhle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-msvfw32-MCI-Step-is-like-Seek.patch
Type: application/octet-stream
Size: 2307 bytes
Desc: 0001-msvfw32-MCI-Step-is-like-Seek.patch
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20100317/9353f898/attachment.obj>


More information about the wine-patches mailing list