Commit graph

356 commits

Author SHA1 Message Date
Michael Stefaniuc
48f19c76cf dmime: Fixup the Wave track parser.
An incomplete patch was prematurely added with 854895f70a

Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-05 10:23:47 +01:00
Alistair Leslie-Hughes
854895f70a dmime: Parse Wave track stream.
For Tron 2.0.

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>
2021-11-04 10:24:43 +01:00
Michael Stefaniuc
460ae3d82c dmime: Accept a DMUS_IO_SEGMENT_HEADER without rtPlayStart field.
Tron 2.0 has a segment header of 56, so is missing the rtPlayStart field.
Based on a patch by Alistair Leslie-Hughes.

Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-03 21:06:48 +01:00
Alexandre Julliard
088a787a2c makefiles: Make -mno-cygwin the default.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-20 22:45:48 +02:00
Alexandre Julliard
5d82baf974 winecrt0: Add a default implementation DllRegisterServer()/DllUnregisterServer().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-30 22:59:50 +02:00
Andrey Gusev
7d14318c18 dmime: Fix misplaced parentheses.
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-21 21:00:33 +02:00
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