606{
609 DWORD StreamSize, StreamCount, ListSize[3], ListCount[3];
611
612 IDirectMusicBand* pBand =
NULL;
613
617 }
618
620 StreamCount = 0;
621
622 do {
626
629
631 switch (Chunk.
fccID) {
633 TRACE_(dmfile)(
": Style chunk\n");
636 TRACE_(dmfile)(
" - dblTempo: %g\n",
This->style.dblTempo);
637 break;
638 }
646 ListCount[0] = 0;
647 switch (Chunk.
fccID) {
651
652 TRACE_(dmfile)(
": BAND RIFF\n");
653
654
657 IStream_Seek(pStm, liMove, STREAM_SEEK_CUR, &save);
658
661 ERR(
": could not load track\n");
663 }
664
669
671
674 IStream_Seek(pStm, liMove, STREAM_SEEK_SET,
NULL);
675
676 break;
677 }
678 default: {
679 TRACE_(dmfile)(
": unknown chunk (irrelevant & skipping)\n");
681 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
682 break;
683 }
684 }
685 break;
686 }
691 ListCount[0] = 0;
692 switch (Chunk.
fccID) {
694 TRACE_(dmfile)(
": UNFO list\n");
695 do {
699
702
704 switch (Chunk.
fccID) {
705 default: {
706 TRACE_(dmfile)(
": unknown chunk (irrelevant & skipping)\n");
708 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
709 break;
710 }
711 }
712 }
713 TRACE_(dmfile)(
": ListCount[0] = %ld < ListSize[0] = %ld\n", ListCount[0], ListSize[0]);
714 } while (ListCount[0] < ListSize[0]);
715 break;
716 }
720 TRACE_(dmfile)(
": PART list\n");
725 break;
726 }
730 TRACE_(dmfile)(
": PATTERN list\n");
735 break;
736 }
737 default: {
738 TRACE_(dmfile)(
": unknown (skipping)\n");
740 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
741 break;
742 }
743 }
744 break;
745 }
746 default: {
747 TRACE_(dmfile)(
": unknown chunk (irrelevant & skipping)\n");
749 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
750 break;
751 }
752 }
753 }
754 TRACE_(dmfile)(
": StreamCount[0] = %ld < StreamSize[0] = %ld\n", StreamCount, StreamSize);
755 } while (StreamCount < StreamSize);
756
758}
static HRESULT parse_part_list(struct style *This, IStream *stream, struct chunk_entry *parent)
static HRESULT load_band(IStream *pClonedStream, IDirectMusicBand **ppBand)
static HRESULT parse_pttn_list(struct style *This, IStream *stream, struct chunk_entry *parent)
#define IDirectMusicTrack_Release(p)
#define DMUS_FOURCC_STYLE_CHUNK
#define DMUS_FOURCC_PATTERN_LIST
#define DMUS_FOURCC_PART_LIST
#define IDirectMusicBand_AddRef(p)
HRESULT IDirectMusicUtils_IPersistStream_ParseUNFOGeneric(DMUS_PRIVATE_CHUNK *pChunk, IStream *pStm, LPDMUS_OBJECTDESC pDesc)
HRESULT IDirectMusicUtils_IPersistStream_ParseDescGeneric(DMUS_PRIVATE_CHUNK *pChunk, IStream *pStm, LPDMUS_OBJECTDESC pDesc)
#define FOURCC(a, b, c, d)