Yuxuan Shui
28b94c4d42
dmime: Handle MIDI control events in MIDI files.
...
Adding them to the seqtrack, and also implementing playing them from the seqtrack.
2024-03-06 22:04:20 +01:00
Yuxuan Shui
5ff94358a0
dmime: Parse note on/off events and generate a seqtrack.
2024-03-06 22:04:20 +01:00
Yuxuan Shui
1df0e34293
dmime/tests: Call the correct QueryInterface function for DirectMusic track.
2024-03-06 22:04:20 +01:00
Yuxuan Shui
f0fc4a0d89
dmime: Parse MIDI Set Tempo meta events and generate a tempotrack.
2024-03-01 23:14:22 +01:00
Yuxuan Shui
1b1f216278
dmime: Implement setting TempoParam for tempotracks.
...
And add some tests.
2024-03-01 23:14:22 +01:00
Yuxuan Shui
29f73d6669
dmime: Add a stub chordtrack for MIDI segments.
2024-02-28 21:56:24 +01:00
Yuxuan Shui
05347b9703
dmime: Parse MIDI program change events and generate a bandtrack.
2024-02-28 21:56:24 +01:00
Yuxuan Shui
5613917974
dmime/tests: Improve error reporting from expect_track.
...
Include a line number of the call site.
2024-02-22 12:45:55 +01:00
Yuxuan Shui
8710a1cb0a
dmime: Read through a MIDI file.
...
Add a dummy track parser, that reads through MIDI tracks and events. To make sure we understand the
file structure correctly, no actual tracks or events are generated.
Also add test cases to make sure we read through a MIDI file correctly.
2024-02-22 12:45:52 +01:00
Yuxuan Shui
4434c17c94
dmime/tests: Add MIDI loading test.
...
Besides a seq track and a tempo track, Windows also adds a "fake" band
track to segments loaded from MIDI files, which handles soundfont
loading etc.
2024-02-14 20:54:18 +01:00
Eric Pouech
36d6fe591b
dmime: Use sent duration in loop's playback.
...
When playing a loop, and if no end of loop point has been defined
(meaning = play whole segment), don't rely on segment's length for
wave tracks as their length is always 1. Compute segment length in
this case by grabbing each track's playback length in segment state's
internal graph. This feature is only activated for messages generated
by wave tracks, but could be extended if needed to other types of
messages.
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-02-07 22:34:25 +01:00
Eric Pouech
dfaa45069e
dmime: Add IDirectMusicGraph interface to segment state.
...
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-02-07 22:34:18 +01:00
Eric Pouech
425c270d27
dmime: Add tests about segment state's graph interface.
...
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-02-07 22:34:17 +01:00
Eric Pouech
ed92095f28
dmime: Fully implement IDirectMusicSegmentState::GetRepeats().
...
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-02-07 22:34:17 +01:00
Eric Pouech
8169c4d040
dmime/tests: Add some tests about end-points.
...
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-01-29 10:42:48 +01:00
Eric Pouech
b2441ad699
dmime/tests: Add some tests for loops on wave tracks.
...
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-01-29 10:42:48 +01:00
Eric Pouech
7aef55a996
dmime/tests: Fix copy & paste errors.
...
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-01-29 10:42:48 +01:00
Yuxuan Shui
e9a52308bb
dmime: IDirectMusicPerformance::CreateAudioPath should fail when config is NULL.
2024-01-22 10:12:47 +01:00
Yuxuan Shui
a300815c0f
dmime: AudioPathConfig is not AudioPath.
...
AudioPaths are created from IDirectMusicPerformance::CreateAudioPath and CreateStandardAudioPath, and
don't have an IDirectMusicObject or an IPersistStream interface. On the other hand AudioPathConfigs
are loaded from files, and do have IDirectMusicObject and IPersistStream.
They were somehow confused with each other and implemented in the same struct, this commit fixes that.
2024-01-22 10:12:44 +01:00
Rémi Bernon
930776022d
dmime/tests: Remove some unnecessary and spuriously failing waits.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55637
2023-12-22 18:14:53 +01:00
Rémi Bernon
3ad341b603
dmime/tests: Add optional notification sequence on segment stop.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55637
2023-12-22 18:14:53 +01:00
Rémi Bernon
cbf48daecf
dmime/tests: Allow small time variation in test_segment_state.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55637
2023-12-22 18:14:53 +01:00
Rémi Bernon
2f86a5d6cb
dmime/tests: Allow small time variation in test_performance_time.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55637
2023-12-22 18:14:53 +01:00
Rémi Bernon
6447b11b17
dmime/tests: Check reference time and allow 0.5 tick difference.
...
Renaming check_music_time to check_reference_time, as it's truly
reference time values that are passed.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55637
2023-12-22 18:14:50 +01:00
Anton Baskanov
bb7b49647b
dmime: Requeue the note message instead of directly queueing MIDI note-off.
2023-11-23 22:51:07 +01:00
Anton Baskanov
433e0fc026
dmime/tests: Test output tool note requeueing.
2023-11-23 22:51:07 +01:00
Anton Baskanov
fd3607ed57
dmime/tests: Move scale_music_time() and check_dmus_note_pmsg() up.
2023-11-23 22:51:07 +01:00
Michael Stefaniuc
e283883057
dmime/tests: Remove superfluous casts to self.
2023-11-14 11:31:27 +01:00
Rémi Bernon
2414bb4004
dmime: Clear all pending messages in IDirectMusicPerformance_Stop.
2023-11-13 22:37:51 +01:00
Rémi Bernon
fe171ec86b
dmime/tests: Test that IDirectMusicPerformance_Stop clears messages.
2023-11-13 22:37:51 +01:00
Rémi Bernon
ddd877d1c7
dmime/tests: Avoid discarding old notifications in test.
2023-11-13 22:37:51 +01:00
Rémi Bernon
18a81b3cb2
dmime: Better implement performance times with tempo track.
2023-11-09 23:00:40 +01:00
Rémi Bernon
8f9faf8868
dmime/tests: Test playing tempo track effect on performance times.
2023-11-09 23:00:40 +01:00
Rémi Bernon
c6eca9276b
dmime/tests: Add helpers to scale and check music time with tempo.
...
Be flexible on the comparison to ignore rounding errors.
2023-11-09 23:00:40 +01:00
Rémi Bernon
2d1f46c221
dmime: Fix tempo track GetParam with GUID_TempoParam implementation.
2023-11-09 23:00:40 +01:00
Rémi Bernon
92959b315b
dmime/tests: Test tempo track GetParam with GUID_TempoParam.
2023-11-09 23:00:40 +01:00
Rémi Bernon
7a9e45ac13
dmime/tests: Test tempo track Play and DMUS_PMSGT_TEMPO messages.
2023-11-09 23:00:40 +01:00
Rémi Bernon
f13fa16f01
dmime: Implement IDirectMusicPerformance_GetSegmentState semi-stub.
2023-11-09 23:00:40 +01:00
Rémi Bernon
617d7fc9b8
dmime/tests: Test IDirectMusicPerformance_GetSegmentState.
2023-11-09 23:00:40 +01:00
Rémi Bernon
442db8a131
dmime: Send notification messages from segment_play_chunk.
2023-11-07 23:00:10 +01:00
Rémi Bernon
b1bd72343e
dmime/tests: Check more notification / dirty messages fields.
2023-11-06 21:37:54 +01:00
Rémi Bernon
a66b6f96b6
dmime: Send DMUS_NOTIFICATION_SEGALMOSTEND before DMUS_NOTIFICATION_SEGEND.
2023-11-06 21:37:54 +01:00
Rémi Bernon
a429a3fb4b
dmime/tests: Add a track and longer segment to notifications tests.
2023-11-06 21:37:54 +01:00
Alexandre Julliard
7ccb5df0fc
makefiles: Always use the global SOURCES variable for .rc files.
2023-11-01 22:43:56 +01:00
Rémi Bernon
bbdea3afc3
dmime/tests: Ignore failure on missing gm.dls in test_band_track_play.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55722
2023-10-25 14:27:15 -05:00
Rémi Bernon
b971c55a3a
dmime/tests: Avoid checking message segment state reference count.
2023-10-25 14:27:15 -05:00
Rémi Bernon
3e31e29d65
dmime/tests: Remove flaky track playing state test.
...
This fails regularly on Win7.
2023-10-25 14:27:13 -05: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
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