- 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
DLL_THREAD_ATTACH/DLL_THREAD_DETACH notifications, call
DisableThreadLibraryCalls() in order to slightly improve performance
on thread creation/exiting.
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
IDirectMusicPerformanceImpl (as the first inherits from the second)
- implement many Loader, AudioPath and Performance8 stubs - fix the
class factory
- more debug traces
- for now IDirectMusicLoader8::LoadObjectFromFile always returns not
supported format
- fix the IDirectMusicPerformance8::Init (many crashes)
- implementation of IDirectMusicPerformance8InitAudio
- 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