dmime: Store flags when parsing track data.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com> Signed-off-by: Michael Stefaniuc <mstefani@winehq.org> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
260fb550be
commit
7dd53d89c3
|
@ -77,6 +77,7 @@ extern void set_audiopath_primary_dsound_buffer(IDirectMusicAudioPath*,IDirectSo
|
||||||
typedef struct _DMUS_PRIVATE_SEGMENT_TRACK {
|
typedef struct _DMUS_PRIVATE_SEGMENT_TRACK {
|
||||||
struct list entry; /* for listing elements */
|
struct list entry; /* for listing elements */
|
||||||
DWORD dwGroupBits;
|
DWORD dwGroupBits;
|
||||||
|
DWORD flags;
|
||||||
IDirectMusicTrack* pTrack;
|
IDirectMusicTrack* pTrack;
|
||||||
} DMUS_PRIVATE_SEGMENT_TRACK, *LPDMUS_PRIVATE_SEGMENT_TRACK;
|
} DMUS_PRIVATE_SEGMENT_TRACK, *LPDMUS_PRIVATE_SEGMENT_TRACK;
|
||||||
|
|
||||||
|
|
|
@ -614,8 +614,9 @@ static HRESULT parse_track_form(IDirectMusicSegment8Impl *This, IStream *stream,
|
||||||
IPersistStream *ps = NULL;
|
IPersistStream *ps = NULL;
|
||||||
IStream *clone;
|
IStream *clone;
|
||||||
DMUS_IO_TRACK_HEADER thdr;
|
DMUS_IO_TRACK_HEADER thdr;
|
||||||
DMUS_IO_TRACK_EXTRAS_HEADER txhdr;
|
DMUS_IO_TRACK_EXTRAS_HEADER txhdr = {0};
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
DMUS_PRIVATE_SEGMENT_TRACK *item;
|
||||||
|
|
||||||
TRACE("Parsing track form in %p: %s\n", stream, debugstr_chunk(riff));
|
TRACE("Parsing track form in %p: %s\n", stream, debugstr_chunk(riff));
|
||||||
|
|
||||||
|
@ -647,7 +648,7 @@ static HRESULT parse_track_form(IDirectMusicSegment8Impl *This, IStream *stream,
|
||||||
|
|
||||||
if (chunk.id == DMUS_FOURCC_TRACK_EXTRAS_CHUNK &&
|
if (chunk.id == DMUS_FOURCC_TRACK_EXTRAS_CHUNK &&
|
||||||
SUCCEEDED(stream_chunk_get_data(stream, &chunk, &txhdr, sizeof(txhdr)))) {
|
SUCCEEDED(stream_chunk_get_data(stream, &chunk, &txhdr, sizeof(txhdr)))) {
|
||||||
FIXME("DMUS_IO_TRACK_EXTRAS_HEADER chunk not handled\n");
|
FIXME("DMUS_IO_TRACK_EXTRAS_HEADER chunk not fully handled\n");
|
||||||
TRACE("dwFlags: %#x, dwPriority: %u\n", txhdr.dwFlags, txhdr.dwPriority);
|
TRACE("dwFlags: %#x, dwPriority: %u\n", txhdr.dwFlags, txhdr.dwPriority);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -672,6 +673,11 @@ static HRESULT parse_track_form(IDirectMusicSegment8Impl *This, IStream *stream,
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
hr = IDirectMusicSegment8_InsertTrack(&This->IDirectMusicSegment8_iface, track, thdr.dwGroup);
|
hr = IDirectMusicSegment8_InsertTrack(&This->IDirectMusicSegment8_iface, track, thdr.dwGroup);
|
||||||
|
if (FAILED(hr))
|
||||||
|
goto done;
|
||||||
|
|
||||||
|
item = LIST_ENTRY(list_tail(&This->Tracks), DMUS_PRIVATE_SEGMENT_TRACK, entry);
|
||||||
|
item->flags = txhdr.dwFlags;
|
||||||
|
|
||||||
done:
|
done:
|
||||||
if (ps)
|
if (ps)
|
||||||
|
|
Loading…
Reference in New Issue