48 lines
1.9 KiB
Plaintext
48 lines
1.9 KiB
Plaintext
|
|
|
|
========================================================
|
|
| |
|
|
| CONVERSION AND PORTABILITY ITEMS IN NT MULTI-MEDIA |
|
|
| |
|
|
========================================================
|
|
|
|
|
|
|
|
1. SHORT MIDI MESSAGES (RCBS)
|
|
|
|
Short midi messages are passed around the system as DWORDs.
|
|
The documentations says that the first byte is the 'low order
|
|
byte' (see midiOutShortMsg). However, testcases (eg sbtest.exe)
|
|
and presumably applications often just use a union of a dword
|
|
and byte[4] to convert (NOT the same).
|
|
|
|
|
|
|
|
2. WINDOW words
|
|
|
|
The apis now take LONG parameters but actually only store WORDs.
|
|
This can be fixed by using things like SetWindowLong but there
|
|
is still the problem of the offsets they are using. One suggestion
|
|
is just to double the size of everthing and every offset but
|
|
the conversion effort is still there.
|
|
|
|
3. (SD) MCI Device IDs
|
|
|
|
Unfortunately these are 16 bits values in Win 3.0+, and the size
|
|
is difficult to change as it is used in disk files. Hence is a
|
|
permanent fixed value. It could be "thunked" when read/written.
|
|
More work needs to be done to decide whether to use a 32 bit
|
|
device id for MCI devices in Win 32, or to stick with 16 bit.
|
|
The device type MCIDEVICEID has been added to WINMM.H.
|
|
|
|
4. (SD) Global sound playing windows
|
|
|
|
Windows MM extensions (MMSYSTEM) uses a single GLOBAL window
|
|
handle (hwndNotify) to play all asynchronous sound (MCI and
|
|
sndPlaySound). To do this a piece of global memory is used
|
|
that defines which sound is playing. NO attempt is made in
|
|
Windows (WIN16) to synchronise playing sounds.
|
|
|
|
Much of the WIN16 high level sound code references the global
|
|
window handle.
|