225 DWORD StreamSize, StreamCount, ListSize[2], ListCount[2];
227 ULARGE_INTEGER dlibCollectionPosition, dlibInstrumentPosition, dlibWavePoolPosition;
231 IStream_Seek(
stream, liMove, STREAM_SEEK_CUR, &dlibCollectionPosition);
232 This->liCollectionPosition.QuadPart = dlibCollectionPosition.
QuadPart;
239 TRACE_(dmfile)(
": unexpected chunk; loading failed)\n");
241 IStream_Seek(
stream, liMove, STREAM_SEEK_CUR,
NULL);
251 TRACE_(dmfile)(
": unexpected chunk; loading failed)\n");
253 IStream_Seek(
stream, liMove, STREAM_SEEK_CUR,
NULL);
257 TRACE_(dmfile)(
": collection form\n");
262 switch (
chunk.fccID) {
264 TRACE_(dmfile)(
": collection header chunk\n");
270 TRACE_(dmfile)(
": DLID (GUID) chunk\n");
276 TRACE_(dmfile)(
": version chunk\n");
282 TRACE_(dmfile)(
": pool table chunk\n");
295 switch (
chunk.fccID) {
297 TRACE_(dmfile)(
": INFO list\n");
302 switch (
chunk.fccID) {
305 TRACE_(dmfile)(
": name chunk\n");
312 IStream_Seek(
stream, liMove, STREAM_SEEK_CUR,
NULL);
317 TRACE_(dmfile)(
": artist chunk (ignored)\n");
323 IStream_Seek(
stream, liMove, STREAM_SEEK_CUR,
NULL);
327 TRACE_(dmfile)(
": copyright chunk\n");
333 IStream_Seek(
stream, liMove, STREAM_SEEK_CUR,
NULL);
338 TRACE_(dmfile)(
": subject chunk (ignored)\n");
344 IStream_Seek(
stream, liMove, STREAM_SEEK_CUR,
NULL);
348 TRACE_(dmfile)(
": comment chunk (ignored)\n");
354 IStream_Seek(
stream, liMove, STREAM_SEEK_CUR,
NULL);
358 TRACE_(dmfile)(
": unknown chunk (irrelevant & skipping)\n");
364 IStream_Seek(
stream, liMove, STREAM_SEEK_CUR,
NULL);
368 TRACE_(dmfile)(
": ListCount[0] = %d < ListSize[0] = %d\n", ListCount[0], ListSize[0]);
369 }
while (ListCount[0] < ListSize[0]);
373 TRACE_(dmfile)(
": wave pool list (mark & skip)\n");
375 IStream_Seek(
stream, liMove, STREAM_SEEK_CUR, &dlibWavePoolPosition);
376 This->liWavePoolTablePosition.QuadPart = dlibWavePoolPosition.
QuadPart;
378 IStream_Seek(
stream, liMove, STREAM_SEEK_CUR,
NULL);
382 TRACE_(dmfile)(
": instruments list\n");
387 switch (
chunk.fccID) {
393 switch (
chunk.fccID) {
396 TRACE_(dmfile)(
": instrument list\n");
403 IStream_Seek(
stream, liMove, STREAM_SEEK_CUR, &dlibInstrumentPosition);
405 instrument->
length = ListSize[1];
410 switch (
chunk.fccID) {
412 TRACE_(dmfile)(
": instrument header chunk\n");
417 TRACE_(dmfile)(
": DLID (GUID) chunk\n");
424 switch (
chunk.fccID) {
426 TRACE_(dmfile)(
": unknown (skipping)\n");
428 IStream_Seek(
stream, liMove, STREAM_SEEK_CUR,
NULL);
435 TRACE_(dmfile)(
": unknown chunk (irrelevant & skipping)\n");
437 IStream_Seek(
stream, liMove, STREAM_SEEK_CUR,
NULL);
441 TRACE_(dmfile)(
": ListCount[1] = %d < ListSize[1] = %d\n", ListCount[1], ListSize[1]);
442 }
while (ListCount[1] < ListSize[1]);
445 TRACE(
"*** IDirectMusicInstrument (%p) ***\n", instrument);
448 TRACE(
" - Instrument header:\n");
450 TRACE(
" - Locale:\n");
463 TRACE_(dmfile)(
": unknown chunk (irrelevant & skipping)\n");
465 IStream_Seek(
stream, liMove, STREAM_SEEK_CUR,
NULL);
469 TRACE_(dmfile)(
": ListCount[0] = %d < ListSize[0] = %d\n", ListCount[0], ListSize[0]);
470 }
while (ListCount[0] < ListSize[0]);
474 TRACE_(dmfile)(
": unknown (skipping)\n");
476 IStream_Seek(
stream, liMove, STREAM_SEEK_CUR,
NULL);
483 TRACE_(dmfile)(
": unknown chunk (irrelevant & skipping)\n");
485 IStream_Seek(
stream, liMove, STREAM_SEEK_CUR,
NULL);
489 TRACE_(dmfile)(
": StreamCount = %d < StreamSize = %d\n", StreamCount, StreamSize);
490 }
while (StreamCount < StreamSize);
492 TRACE_(dmfile)(
": reading finished\n");
499 struct list *listEntry;
501 TRACE(
"*** IDirectMusicCollection (%p) ***\n", &
This->IDirectMusicCollection_iface);
504 TRACE(
" - Collection header:\n");
505 TRACE(
" - cInstruments: %d\n",
This->pHeader->cInstruments);
506 TRACE(
" - Instruments:\n");
LARGE_INTEGER liInstrumentPosition
DWORD MIDILOCALE2Patch(const MIDILOCALE *pLocale)
static const WCHAR szName[]
static IDirectMusicInstrumentImpl * impl_from_IDirectMusicInstrument(IDirectMusicInstrument *iface)
void dump_DMUS_OBJECTDESC(LPDMUS_OBJECTDESC desc)
const char * debugstr_dmguid(const GUID *id)
GLdouble GLdouble GLdouble r
static IDirectMusicCollectionImpl * impl_from_IPersistStream(IPersistStream *iface)
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
static const char * debugstr_fourcc(DWORD fourcc)
IDirectMusicInstrument * pInstrument
#define LIST_FOR_EACH(cursor, list)
HRESULT DMUSIC_CreateDirectMusicInstrumentImpl(LPCGUID lpcGUID, LPVOID *ppobj, LPUNKNOWN pUnkOuter) DECLSPEC_HIDDEN
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
struct _POOLTABLE POOLTABLE
#define mmioFOURCC(c0, c1, c2, c3)
int even_or_odd(DWORD number)
#define DMUS_FOURCC_INFO_LIST
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
#define MultiByteToWideChar
#define FOURCC(a, b, c, d)