Commit graph

562 commits

Author SHA1 Message Date
Rémi Bernon 10a1e533c3 dmband: Download segment tracks if performance auto-download is set. 2023-10-18 20:46:59 +02:00
Rémi Bernon 1014bab951 dmime: Use latency time to decide when to process messages. 2023-10-17 21:48:20 +02:00
Rémi Bernon d0f5446696 dmime: Update performance latency time with port latency. 2023-10-17 21:48:20 +02:00
Rémi Bernon a8763aab6f dmime: Use port latency time for messages with -1 time. 2023-10-17 21:48:20 +02:00
Rémi Bernon d5e156fa7f dmime: Rewrite message thread with a condition variable. 2023-10-17 21:48:20 +02:00
Rémi Bernon a6710afc26 dmime: Translate DMUS_PMSGT_PATCH to DMUS_PMSGT_MIDI messages. 2023-10-13 09:59:24 +02:00
Rémi Bernon f74fe2e26b dmime: Translate DMUS_PMSGT_NOTE to DMUS_PMSGT_MIDI messages. 2023-10-13 09:59:24 +02:00
Rémi Bernon a4b006e723 dmime: Output DMUS_MIDI_PMSG into a music buffer on the port. 2023-10-13 09:59:24 +02:00
Rémi Bernon e3b23cb66e dmime: Implement band track IDirectMusicTrack_Play. 2023-10-13 09:59:24 +02:00
Rémi Bernon fd68076c36 dmime: Implement sequence track IDirectMusicTrack_Play. 2023-10-13 09:59:24 +02:00
Rémi Bernon 16f9bfd23f dmime: Play direct sound buffer from DMUS_PMSGT_WAVE message.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=9027
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=34751
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45135
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48220
2023-10-11 22:17:26 +02:00
Rémi Bernon edad780922 dmime: Implement IDirectMusicTrack_Play for the wave track.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=9027
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=34751
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45135
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48220
2023-10-11 22:17:26 +02:00
Rémi Bernon 4a7a8a7ecc dmime: Implement GUID_(Download|Unload)FromAudioPath for wave track.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=9027
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=34751
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45135
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48220
2023-10-11 22:17:26 +02:00
Rémi Bernon 7bbd4be52a dmime: Create a wave track when loading a segment from a .wav.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=9027
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=34751
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45135
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48220
2023-10-11 22:17:26 +02:00
Rémi Bernon 6c1bf1f3a9 dmime: Include dmobject.h in dmime_private.h. 2023-10-11 22:16:58 +02:00
Rémi Bernon 51c664b227 dmime: Get rid of the IDirectMusicWaveTrack typedef.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=9027
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=34751
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45135
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48220
2023-10-11 22:16:58 +02:00
Rémi Bernon d0c3a0e03d dmime/tests: Queue the message before calling SendPMsg twice. 2023-10-10 10:14:08 +02:00
Rémi Bernon 3e19ca928e dmime: Call IDirectMusicTrack_(Init|End)Play from the segment state. 2023-10-09 11:35:15 +02:00
Rémi Bernon 7a678903fb dmime: Implement IDirectMusicPerformance_GetNotificationPMsg. 2023-10-09 11:35:15 +02:00
Rémi Bernon 3de1bc035e dmime: Send DMUS_PMSGT_NOTIFICATION messages from the performance.
Keeping the segment state referenced until its playback ends.
2023-10-09 11:35:13 +02:00
Rémi Bernon 664caf6ed7 dmime: Send DMUS_PMSGT_DIRTY messages from the performance. 2023-10-09 11:35:13 +02:00
Rémi Bernon ac832b97ae dmime: Free all pending messages after CloseDown. 2023-10-09 11:35:13 +02:00
Rémi Bernon 299698140a dmime: Keep messages with the same time ordered. 2023-10-09 11:35:13 +02:00
Rémi Bernon b201cf1bca dmime/tests: Tests interaction between CloseDown and notifications. 2023-10-09 11:35:13 +02:00
Rémi Bernon 45d1c00eea dmime: Introduce a new segment_state_create constructor. 2023-10-04 11:28:32 +02:00
Rémi Bernon 9cb0142632 dmime: Redirect IDirectMusicPerformance_PlaySegment to PlaySegmentEx. 2023-10-04 11:28:32 +02:00
Rémi Bernon c6e6f87a89 dmime: Implement some segment state default values. 2023-10-04 11:28:32 +02:00
Rémi Bernon 94386b4fba dmime: Get rid of the IDirectMusicSegmentState8Impl typedef. 2023-10-04 11:28:32 +02:00
Rémi Bernon 939162b674 dmime: Rename DirectMusicSegmentState8 method prefix to segment_state. 2023-10-04 11:28:32 +02:00
Rémi Bernon 3c4d83609e dmime: Implement IDirectMusicPerformance_DownloadInstrument. 2023-09-29 21:41:26 +02:00
Rémi Bernon 17f68bfabf dmime: Implement IDirectMusicSegment_(Download|Unload). 2023-09-29 21:41:26 +02:00
Rémi Bernon 8645d9eb4e dmime: Implement IDirectMusicSegment_SetParam. 2023-09-29 21:41:25 +02:00
Rémi Bernon 406f1783a9 dmime/tests: Test segment state and playing a custom track. 2023-09-29 21:41:25 +02:00
Rémi Bernon 0d3b83c021 dmime/tests: Add some tests for GUID_ConnectToDLSCollection. 2023-09-29 21:41:25 +02:00
Rémi Bernon b733a46ada dmusic: Implement SoundFont2 collection parsing. 2023-09-29 17:23:10 +02:00
Rémi Bernon 9e0487c4cc dmime: Return DMUS_E_AUDIOPATH_INACTIVE when audio paths are not enabled. 2023-09-28 23:21:46 +02:00
Rémi Bernon 0fb4e5ec47 dmime: Return DMUS_E_AUDIOPATHS_IN_USE when audio paths are in use. 2023-09-28 23:21:46 +02:00
Rémi Bernon 9788fb6911 dmime: Initialize performance in Init rather than InitAudio. 2023-09-28 23:21:46 +02:00
Rémi Bernon 50b09dcf11 dmime: Set the port direct sound before activating it. 2023-09-28 23:21:46 +02:00
Rémi Bernon 3400e41d5c dmime/tests: Test performance Init with a created port.
Final Fantasy VIII does this, more or less, and needs Init to succeed.
2023-09-28 23:21:44 +02:00
Rémi Bernon de27d59a8a dmime/tests: Move performance tests into dmime.c. 2023-09-28 23:21:43 +02:00
Rémi Bernon ed2eebf2f5 dmime/tests: Remove some duplicated tests.
These are now more extensively tested in dmime/tests/dmime.c.
2023-09-28 23:21:41 +02:00
Rémi Bernon 27ab696752 dmime: Implement DirectMusicSeqTrack IPersistStream_Load. 2023-09-21 22:32:37 +02:00
Rémi Bernon d3742ab843 dmime: Get rid of the IDirectMusicSeqTrack typedef. 2023-09-21 22:32:36 +02:00
Rémi Bernon 4ea18f87cc dmime/tests: Test band track and DMUS_PATCH_PMSG. 2023-09-20 22:15:29 +02:00
Rémi Bernon 47c299ce17 dmime/tests: Test sequence track and DMUS_NOTE_PMSG. 2023-09-20 22:15:29 +02:00
Rémi Bernon c04e686ad5 dmime/tests: Test wave segments and DMUS_WAVE_PMSG. 2023-09-20 22:15:29 +02:00
Rémi Bernon b1bf0f0296 dmime/tests: Add some DMUS_NOTIFICATION_PMSG tests. 2023-09-20 22:15:29 +02:00
Rémi Bernon a4c1dec89d dmime: Use segment_append_track in Clone and parse_track_form. 2023-09-19 21:32:36 +02:00
Rémi Bernon 0bdc248cfe dmime: Rewrite segment IDirectMusicSegment_RemoveTrack. 2023-09-19 21:32:36 +02:00
Rémi Bernon f04976e01d dmime: Rewrite segment IDirectMusicSegment_InsertTrack. 2023-09-19 21:32:36 +02:00
Rémi Bernon d045eae8b7 dmime: Rewrite segment IDirectMusicSegment_GetTrackGroup. 2023-09-19 21:32:36 +02:00
Rémi Bernon a713797597 dmime: Rewrite segment IDirectMusicSegment_GetTrack. 2023-09-19 21:32:36 +02:00
Rémi Bernon c0b52aa3a7 dmime: Avoid leaking tracks in IDirectMusicSegment_Release. 2023-09-19 21:32:36 +02:00
Rémi Bernon 6699becf52 dmime: Get rid of the IDirectMusicSegmentImpl typedef. 2023-09-19 21:32:36 +02:00
Rémi Bernon d2cdb9cfa2 dmime: Use one-liners for segment parameter checks. 2023-09-19 21:32:36 +02:00
Rémi Bernon 3ff263deba dmime: Rename IDirectMusicSegment8Impl method prefix to segment. 2023-09-19 21:32:36 +02:00
Rémi Bernon 5f0474009e dmime: Pass the DMUS_PMSG through the performance graph. 2023-09-18 20:35:58 +02:00
Rémi Bernon 0a93c69b13 dmime: Rename DMUS_PMSGToItem to message_from_DMUS_PMSG. 2023-09-18 20:35:58 +02:00
Rémi Bernon 61ebdbcbbd dmime: Remove unnecessary struct message members. 2023-09-18 20:35:58 +02:00
Rémi Bernon db9758fb4e dmime: Use a struct list to keep performance messages. 2023-09-18 20:35:58 +02:00
Rémi Bernon 419ab9284a dmime: Get rid of the DMUS_PMSGItem typedef. 2023-09-18 20:35:58 +02:00
Rémi Bernon 6cd1c4e64a dmime: Convert DMUS_PMSG music and reference times in SendPMsg. 2023-09-18 20:35:58 +02:00
Rémi Bernon eedde52809 dmime/tests: Test that SendPMsg also converts reference time.
And avoid checking a possibly freed message.
2023-09-18 20:35:58 +02:00
Rémi Bernon 4b787aa9b3 dmime: Implement IDirectMusicPerformance8_ClonePMsg. 2023-09-14 21:20:16 +02:00
Rémi Bernon 0c4e1e4352 dmime: Cleanup IDirectMusicPerformance_SendPMsg. 2023-09-14 21:20:16 +02:00
Rémi Bernon 4adeeb72d3 dmime: Cleanup IDirectMusicPerformance_FreePMsg. 2023-09-14 21:20:16 +02:00
Rémi Bernon 9d600ce191 dmime: Cleanup IDirectMusicPerformance_AllocPMsg. 2023-09-14 21:20:16 +02:00
Rémi Bernon 52ae3fada0 dmime: Implement MusicToReferenceTime and ReferenceToMusicTime. 2023-09-14 21:20:15 +02:00
Rémi Bernon d407b3ca52 dmime: Rewrite IDirectMusicPerformance8_GetTime. 2023-09-14 21:20:15 +02:00
Rémi Bernon aeea45946a dmime: Use PARENTSRC with dmusic. 2023-09-14 11:11:47 +02:00
Rémi Bernon 1f84523800 dmime: Set the tool delivery type on the messages flags. 2023-09-12 20:28:05 +02:00
Rémi Bernon 09dc4a3f17 dmime: Implement performance IDirectMusicGraph_StampPMsg. 2023-09-12 20:28:05 +02:00
Rémi Bernon 98db0c753a dmime: Implement IDirectMusicGraph_StampPMsg. 2023-09-12 20:28:05 +02:00
Rémi Bernon 5d97483f22 dmime: Get rid of the IDirectMusicGraphImpl typedef. 2023-09-12 20:28:05 +02:00
Rémi Bernon fec9d2c22e dmime: Rename DirectMusicGraph method prefix to graph. 2023-09-12 20:28:05 +02:00
Rémi Bernon d8bce981d7 dmime: Rewrite IDirectMusicGraph tools iteration. 2023-09-12 20:28:05 +02:00
Rémi Bernon 1e70dbcfc2 dmime: Implement some performance IDirectMusicTool methods. 2023-09-12 20:28:05 +02:00
Rémi Bernon 4cb46f1bed dmime: Remove FIXME from performance IDirectMusicGraph methods. 2023-09-12 20:28:05 +02:00
Rémi Bernon 428eb3e87c dmime: Add a IDirectMusicTool interface to the performance. 2023-09-11 20:41:35 +02:00
Rémi Bernon 2e25af4fd3 dmime: Add a IDirectMusicGraph interface to the performance. 2023-09-11 20:41:35 +02:00
Rémi Bernon e5ae7f90ee dmime: Fix indentation in IDirectMusicPerformance_QueryInterface. 2023-09-11 20:41:35 +02:00
Rémi Bernon c927967a76 dmime: Get rid of IDirectMusicPerformance8Impl typedef. 2023-09-11 20:41:34 +02:00
Rémi Bernon 52f7ae4932 dmime: Rename IDirectMusicPerformance8Impl method prefix to performance. 2023-09-11 20:41:34 +02:00
Rémi Bernon 698605ce41 dmime: Fix indentation in DirectMusicPerformance class constructor. 2023-09-11 20:41:34 +02:00
Rémi Bernon 2dc15d3943 dmime: Use the correct interface methods. 2023-09-11 20:41:34 +02:00
Rémi Bernon 0feb0cda74 dmime: Use CRT allocation functions. 2023-09-11 20:41:34 +02:00
Rémi Bernon 6e1e7a88fd dmime: Always return S_FALSE from DllCanUnloadNow. 2023-09-11 20:41:34 +02:00
Rémi Bernon 5e68fa6394 dmime/tests: Test IDirectMusicTool message reception delay. 2023-09-08 11:05:23 +02:00
Rémi Bernon 2ac84e2b94 dmime/tests: Test IDirectMusicTool message reception filter. 2023-09-08 11:05:23 +02:00
Rémi Bernon e80c1d90f1 dmime/tests: Test IDirectMusicPerformance_*PMsg methods. 2023-09-08 11:05:23 +02:00
Rémi Bernon a874f60cae dmime/tests: Test IDirectMusicPerformance time conversion. 2023-09-08 11:05:23 +02:00
Rémi Bernon cd5c9b800d dmime/tests: Test performance IDirectMusicGraph interface. 2023-09-08 11:05:23 +02:00
Rémi Bernon 5efaae40de dmime/tests: Test performance IDirectMusicTool interface. 2023-09-08 11:05:23 +02:00
Rémi Bernon 881e424683 dmime/tests: Test IDirectMusicGraph interface with a dummy tool. 2023-09-08 11:05:23 +02:00
Alistair Leslie-Hughes 0774873ea2 dmime: Store WAVE data when Loading. 2023-08-10 09:54:37 +09:00
Alistair Leslie-Hughes cc59b78316 dmime: Remove DECLSPEC_HIDDEN usage. 2023-06-29 21:34:48 +02:00
Michael Stefaniuc c92d01016b dmime: Implement the IDirectMusicSegment8_Clone() method.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53941
2022-12-19 11:10:28 +01:00
Michael Stefaniuc 354ccf3fdb dmime: Split the segment object creation into a separate helper. 2022-12-19 11:10:28 +01:00
Alex Henrie e1e651c83c dmime: Don't force a calling convention on internal functions. 2022-11-24 22:20:21 +01:00
Michael Stefaniuc 690e012f01 dmime: Build without -DWINE_NO_LONG_TYPES.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-09 11:02:12 +01:00
Michael Stefaniuc f648478075 dmime/tests: Build without -DWINE_NO_LONG_TYPES.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-09 11:02:12 +01:00
Michael Stefaniuc 1383b841c5 dmsynth: Implement the synth's Open and Close methods.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-08 10:47:15 +01:00
Michael Stefaniuc dd04b94723 dmime: The soft synth doesn't supports sharing the channel groups.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-08 10:47:12 +01:00
Michael Stefaniuc da5c70ce8d dmime: Fix the size of the DMUS_PORTPARAMS.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-08 10:47:08 +01:00
Alexandre Julliard f0cd33c69e include: Add support for defining Win32 types as 'long' where possible.
Add -DWINE_NO_LONG_TYPES to modules that still have compilation
warnings with long types.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 20:38:22 +01:00
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