Well, this is it - the code I've been working on during these holidays. I think now I'm beginning to understand how DirectMusic works, as far as objects and loading are concerned. This patch is even bigger than last one (which has split dm* dlls) and in short does following stuff: - implements loader, loader's stream and loading of objects (now you can use builtin dmloader and native other dm*.dlls) - implements proper creation of objects and retrieval of dmusic interfaces from them (object, stream, ...) - implements all "standard track types" and appropriate stream (for dmband, loading is almost complete) - cleans some obsolete stuff (although expect major cleaning patch soon) - splits debug channels - adds debugstr_fourcc (for displaying FOURCC chunk IDs) and debugstr_vers (for DMUSIC_VERSION and other *_VERSION_* structs) some remarks: - dxdiag still crashes with builtin dlls. It is possible to run it with all native dlls (it even plays music). - dxdiag crashes with builtin loader and combination of native dmstyle and dmband (I can't figure why (maybe there's leak in reference counting?)). - DirectMusic Apps from SDK are mostly unplayable; I would like to run them with native dmime & dmusic for further tests, but they query IDirectSound with an unsupported IID :( => anyway, I'll take a short break from dmusic now (few weeks), so if anyone finds a bug or know how to improve something, feel free to do it ;) -- Rok Mandeljc <rok.mandeljc@gimb.org> "All that is gold does not glitter, Not all those who wander are lost; The old that is strong does not wither, Deep roots are not reached by the frost. From the ashes a fire shall be woken, A light from the shadows shall spring; Renewed shall be blade that was broken, The crownless again shall be king." -- J.R.R. Tolkien
Attachment:
dmus_work.final.patch.gz
Description: GNU Zip compressed data
Attachment:
signature.asc
Description: To je digitalno podpisan del =?iso-8859-2?Q?sporo=E8ila?=