Commit Graph

350 Commits

Author SHA1 Message Date
Michael Stefaniuc ee2e44f790 dmime: Get rid of the DMUS_PRIVATE_SEGMENT_ITEM typedef.
Also move the struct to its only user.

Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-25 10:51:50 +02:00
Michael Stefaniuc 59aa29cd1d dmime: dmutils.h is no longer needed.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-25 10:51:49 +02:00
Michael Stefaniuc 0bda3a3d69 dmime: Reimplement the segment item parser.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-25 10:51:39 +02:00
Michael Stefaniuc dbc3449e29 dmime: Simplify the parse_segments_list() helper.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-25 10:51:37 +02:00
Michael Stefaniuc 2eb07b1773 dmime: Reimplement IPersistStream_Load() for SegTrigger track.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-25 10:51:34 +02:00
Alistair Leslie-Hughes 6a67f56a52 dmime: Parse TimeSig 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>
2020-08-07 17:44:49 +02:00
Michael Stefaniuc c64b31c71d dmime: Simplify loading/storing of the Tempo Track data.
Fixes loading more than one tempo items.

Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-05 11:11:52 +02:00
Michael Stefaniuc 4fc685a8b7 dmime: Constify the chunk parameter of stream_skip_chunk().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-05 11:11:46 +02:00
Michael Stefaniuc 199af0b732 dmime: Reimplement the reference list parser.
Bits and pieces from a patch by Alistair Leslie-Hughes.

Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-13 21:22:11 +02:00
Alistair Leslie-Hughes a897d858e4 dmime: Support more common chunks.
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>
2020-05-08 00:46:19 +02:00
Alistair Leslie-Hughes d1f858e03d dmime: Parse lyric 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>
2020-05-01 22:08:16 +02:00
Alistair Leslie-Hughes f0d35a96b2 dmime: Reimplement IDirectMusicAudioPath Activate.
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>
2020-03-26 21:18:52 +01:00
Alistair Leslie-Hughes 7dd53d89c3 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>
2020-03-26 21:18:50 +01:00
Alistair Leslie-Hughes b075088ec5 dmime: IDirectMusicPerformance8 GetGraph return DMUS_E_NOT_FOUND if graph not set.
Just ensure the pointer and return value are correct from GetGraph.  I plan
to extend these tests at a later date.  The tests also show that IDirectMusicPerformance8
has a internal IDirectMusicGraph implementation, returned via QueryInterface.

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>
2020-03-20 12:09:38 +01:00
Alistair Leslie-Hughes b28512f6c7 dmime: Free more interfaces in IDirectMusicPerformance FreePMsg.
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>
2020-03-17 09:01:44 +01:00
Alistair Leslie-Hughes 04fe670aa6 dmime: IDirectMusicGraph GetTool isn't a stub.
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>
2020-03-17 09:01:41 +01:00
Michael Stefaniuc d3a0cd77d8 dmime: Implement IDirectMusicPerformance8_PChannelInfo().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-16 20:54:55 +01:00
Michael Stefaniuc 3dd2912874 dmime: Create a port in the perf CreateStandardAudioPath().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-16 20:54:53 +01:00
Michael Stefaniuc d966413a49 dmime: Split out the perf default port creation.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-16 20:54:50 +01:00
Michael Stefaniuc 67f55f9b13 dmime/tests: Move some ok() calls to make it clear what is being tested.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-16 20:54:47 +01:00
Michael Stefaniuc 02d6dae4f1 dmime: Get rid of the DMUSIC_PRIVATE_PCHANNEL typedef.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-27 14:41:15 +01:00
Alistair Leslie-Hughes 55827134d1 dmime: IDirectMusicPerformance8_FreePMsg Release the unknown pointer.
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>
2020-01-22 10:20:46 +01:00
Michael Stefaniuc 5b96ed0207 dmime/tests: Destroy the performance on an error path (Valgrind).
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=36272
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-06 20:52:33 +01:00
Alistair Leslie-Hughes 01d521e5af dmime: IDirectMusicSegment8 SetLoopPoints support zero start/end.
Both end and start set to zero loop the whole segement.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=25728
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>
2020-01-05 17:34:07 +01:00
Michael Stefaniuc 296a1eb77b dmime/tests: Add PChannel tests.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-20 10:32:34 +01:00
Michael Stefaniuc 9b6a456381 dmime: Use a rbtree to store the PChannels of a performance.
The PChannel id is a 32bit, potentially random identifier and not an
array index.
Fixes also the handling of channel group "dwGroup" 0. As it is invalid
it is used to mark uninitialized PChannels.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=17766
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=24740
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=31562
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-20 10:32:25 +01:00
Alistair Leslie-Hughes fa66c1b301 dmime: IDirectMusicAudioPath Release primary buffer.
In IDirectMusicAudioPath CreateStandardAudioPath we create a
AudioPath object and assign it a primary buffer object which
needs to be released.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=36272
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>
2019-12-18 21:13:16 +01:00
Michael Stefaniuc 604b874b20 dmime/tests: Use wide-char string literals.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-16 21:26:20 +01:00
Michael Stefaniuc adb1a3f54c dmime: Use the debug functions provided by dmobject.[ch].
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-12 08:32:47 +01:00
Francois Gouget a83cbafce5 dmime/tests: Fix the spelling of a performance ok() message.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-11 21:51:26 +01:00
Michael Stefaniuc 59600f9588 dmime/tests: Add segment GetParam/SetParam tests.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-09 23:47:45 +01:00
Michael Stefaniuc 17bab664ce dmime: Fix index handling in segment GetParam().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-09 23:47:45 +01:00
Michael Stefaniuc 4649f2f1a0 dmime/tests: Add more GetTrack() tests.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-09 23:47:45 +01:00
Michael Stefaniuc badea4cae0 dmime/tests: Add GetParam/SetParam tests for unsupported types.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-04 09:35:55 +01:00
Michael Stefaniuc ca060d45e3 dmime: Tempo track supports only GUID_TempoParam in GetParam().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-04 09:35:52 +01:00
Michael Stefaniuc dc96d1b155 dmime: Partial implementation of the Tempo track SetParam().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-04 09:35:48 +01:00
Michael Stefaniuc 2ff339f9ad dmime: Partial implementation of the TimeSig track Get/SetParam.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-04 09:35:44 +01:00
Michael Stefaniuc d423339960 dmime: Partial implementation of the Wave track Get/SetParam.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-04 09:35:40 +01:00
Michael Stefaniuc d827b65204 dmime: Partial implementation of the Marker track Get/SetParam.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-04 09:35:36 +01:00
Michael Stefaniuc d08bce15bc dmime: Implement the SegTrigger track Get/SetParam.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-04 09:35:30 +01:00
Michael Stefaniuc c88fd286f3 dmime: Implement the ParamControl track param methods.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-04 09:35:20 +01:00
Michael Stefaniuc 85b966250a dmime: Implement the Lyrics track param methods.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-04 09:35:17 +01:00
Michael Stefaniuc 741ec8ca75 dmime: Remove the 'enabled' field from the Tempo track.
The track GetParam/SetParam methods are enabled in the segment and that
information is stored in the segment state not in the track.

Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-03 21:27:13 +01:00
Alistair Leslie-Hughes 292d62e3bb dmime: Trace pbMemData/llMemLength on the same line.
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>
2019-11-29 08:23:02 +01:00
Michael Stefaniuc 4ccdf3e58a dmime: At least trace the DMUS_FOURCC_TRACK_EXTRAS_CHUNK.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-27 23:19:44 +01:00
Michael Stefaniuc f320ade54d dmime: Print the track groups consistently in hexadecimal.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-27 23:19:39 +01:00
Michael Stefaniuc 88281f4b5f dmime/tests: Add some IDirectMusicSegment_GetTrack() tests.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-27 09:47:31 +01:00
Michael Stefaniuc f5ecdbc352 dmime: The group for a track in a segment cannot be zero.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-27 09:47:27 +01:00
Alexandre Julliard 51bd1da2ab dmime: Fix duplicate const. 2019-11-19 23:15:05 +01:00
Alistair Leslie-Hughes cec8d5c968 dmime: Rewrite IDirectMusicSegment8 GetParam.
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>
2019-11-19 23:15:05 +01:00