- completely rewritten headers (DX9 compat.; look much nicer now ;=)
- removed IDirectMusicSong and IDirectMusicMelodyFormulationTrack
(which are removed from DX9; weren't implemented in DX8 anyway)
- combined/simplified IDirectMusicSomething / IDirectMusicObject /
IPersistStream for objects that support loading
- implemented IDirectMusicObject on all such objects; via generic
functions
- combined IDirectMusicTrack(8)/IPersistStream on all tracks
- fully implemented IDirectMusicContainer (at least 90% if there are
no private interfaces)
- implemented IDirectMusicCollection (99% work & MS compliant
behaviour; except for instruments)
- tried to implement IDirectMusicInstrument (unfortunately uses some
dirty private interfaces... :(
- added dswave.dll; DirectMusic Wave
- some changes in style
- many, many more ;)
can use builtin dmloader and native other dm*.dlls)
- implemented proper creation of objects and retrieval of dmusic
interfaces from them (object, stream, ...)
- implemented all "standard track types" and appropriate stream (for
dmband, loading is almost complete)
- cleaned some obsolete stuff
- split debug channels
inherit from dmusic1 and dmusic2 version. And always use dmusic8
versions when available.
- really stupid implementation of IDirectMusicLoader8::GetObject when
IDirectMusicScript wanted
- really fix the refcount problem found by Rok
- implemented fake midi & performance channels
- implemented some IDirectMusic*8* functions where IDirectMusic*
equivalent exists
- IDirectMusic*8 interfaces can now be obtained from IDirectMusic
interfaces (QueryInterface...)
- channel-related performance functions are kinda implemented now