Commit graph

336 commits

Author SHA1 Message Date
Rémi Bernon 4ae866a0a7 dmusic: Stop leaking instruments on collection release. 2023-09-11 20:41:34 +02:00
Rémi Bernon 572125edf6 dmusic: Cleanup collection instrument iteration loops. 2023-09-11 20:41:34 +02:00
Rémi Bernon ff4cb785cb dmusic: Allocate and parse instruments in a single pass. 2023-09-11 20:41:34 +02:00
Rémi Bernon 01127ce474 dmusic: Rewrite instrument ins chunk parsing. 2023-09-11 20:41:34 +02:00
Rémi Bernon b5fd618719 dmusic: Rewrite instrument lart list parsing. 2023-09-11 20:41:34 +02:00
Rémi Bernon 9e9b5d2980 dmusic: Rewrite instrument lrgn list parsing. 2023-09-11 20:41:34 +02:00
Rémi Bernon 7684880546 dmusic: Reset riff chunk type to 0 when it is invalid. 2023-09-11 20:41:34 +02:00
Rémi Bernon 52d3f7ab09 dmusic: Use a struct list for instrument regions. 2023-09-11 20:41:34 +02:00
Rémi Bernon febe6a7810 dmusic: Use a struct list for instrument articulations. 2023-09-11 20:41:34 +02:00
Rémi Bernon 82436b1ee8 dmusic: Avoid passing invalid handle to IDirectMusicSynth_Unload. 2023-09-08 22:00:25 +02:00
Rémi Bernon 0110dc2446 dmusic: Get rid of the IDirectMusicInstrumentImpl typedef. 2023-09-06 22:29:33 +02:00
Rémi Bernon 9abd659efd dmusic: Rename IDirectMusicInstrumentImpl method prefix to instrument. 2023-09-06 22:29:32 +02:00
Rémi Bernon d6dc41c2ef dmusic: Simplify and cleanup IDirectMusicInstrument constructor. 2023-09-06 22:29:32 +02:00
Rémi Bernon 4a60c0f64f dmusic: Get rid of struct collection liWavePoolTablePosition member. 2023-09-06 22:29:32 +02:00
Rémi Bernon a614527524 dmusic: Get rid of struct collection liCollectionPosition member. 2023-09-06 22:29:32 +02:00
Rémi Bernon 849c7a6ae1 dmusic: Get rid of the IDirectMusicCollectionImpl typedef. 2023-09-06 22:29:32 +02:00
Rémi Bernon 1502401042 dmusic: Rename IDirectMusicCollectionImpl method prefix to collection. 2023-09-06 22:29:32 +02:00
Rémi Bernon ed4327eef2 dmusic: Move constructor parameter checks to class factory. 2023-09-06 22:29:32 +02:00
Rémi Bernon 23b61b0dc8 include: Use IReferenceClock interface from strmif.idl in dmusicc.h. 2023-09-06 22:29:26 +02:00
Rémi Bernon d3b191503e dmusic: Implement IDirectMusicPortDownload_GetBuffer. 2023-09-05 23:10:28 +02:00
Rémi Bernon 73d1e06630 dmusic: Implement IDirectMusicPortDownload_(Download|Unload). 2023-09-05 23:10:28 +02:00
Rémi Bernon 30df87af09 dmusic: Implement IDirectMusicPortDownload_AllocateBuffer. 2023-09-05 23:10:28 +02:00
Rémi Bernon 45f61965dc dmusic: Implement synth port IDirectMusicPortDownload_GetDLId. 2023-09-05 23:10:28 +02:00
Rémi Bernon 770749491d dmusic: Rename IDirectMusicDownloadImpl method prefix to download. 2023-09-05 23:10:28 +02:00
Rémi Bernon f96f53ea85 dmusic: Move IDirectMusicDownloadImpl struct to where it is used. 2023-09-05 23:10:28 +02:00
Rémi Bernon ac25d09955 dmusic: Simplify and cleanup IDirectMusicDownload constructor. 2023-09-05 23:10:28 +02:00
Rémi Bernon abc6ecc89d dmusic: Always return S_FALSE from DllCanUnloadNow. 2023-09-05 23:10:27 +02:00
Rémi Bernon 041b468b23 dmusic/tests: Test IDirectMusicPort_(Download|Unload)Instrument. 2023-09-05 23:10:27 +02:00
Rémi Bernon d6e1e0efa2 dmusic/tests: Test IDirectMusic(Port)Download interfaces. 2023-09-05 23:10:27 +02:00
Alex Henrie 4ef31ae987 dmusic: Use CRT allocation functions. 2023-08-28 11:19:37 +02:00
Alexandre Julliard 43ed6c6d67 dmusic: Use nameless unions/structs. 2023-07-12 19:01:13 +02:00
Alistair Leslie-Hughes 82c895fec3 dmusic: Remove DECLSPEC_HIDDEN usage. 2023-06-29 21:34:48 +02:00
Alex Henrie 81a6c8c882 dmusic: Don't force a calling convention on internal functions. 2022-11-24 22:20:21 +01:00
Michael Stefaniuc 7ea710c69b dmusic: Sync up the dmobject.c files.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-23 20:57:55 +01:00
Michael Stefaniuc 5815ba4548 dmusic: Forward GetFormat() to the corresponding synth & sink methods.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-22 18:20:22 +01:00
Michael Stefaniuc 50811b5680 dmusic: Don't trace both the This and iface pointers.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-04 22:44:49 +01:00
Michael Stefaniuc 8729840f94 dmusic: Build without -DWINE_NO_LONG_TYPES.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-04 22:44:49 +01:00
Michael Stefaniuc ade67db2cb dmusic/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-04 09:47:53 +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 b89eaba003 dmusic/tests: Add some initial synth port tests.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 17:56:06 +01:00
Michael Stefaniuc 57a7d8b54c dmusic: Forward the synth port GetCaps to the synth method.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-26 21:53:55 +01:00
Michael Stefaniuc 340e1feef0 dmusic: Implement the E_NOTIMPL methods of the synth port.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-26 21:53:55 +01:00
Michael Stefaniuc 83064d1500 dmsynth: Implement the sink Init method.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-25 09:28:29 +01:00
Michael Stefaniuc 98ecff2760 dmusic: The synth port needs to get the latency clock from the synth.
And not reimplement it.

Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-21 18:47:10 +01:00
Michael Stefaniuc ccb216e477 dmusic: Send the master clock to the synth and not a latency clock.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-21 18:47:02 +01:00
Michael Stefaniuc 7192bbce8f dmusic/tests: Fix an object leak.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-21 18:46:59 +01:00
Michael Stefaniuc 6fe37b4656 dmusic: Remove SynthPortImpl from the method and vtbl names.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-20 21:55:28 +01:00
Michael Stefaniuc a708c25b84 dmusic: Get rid of the SynthPortImpl typedef.
and rename the iface to obj helpers.

Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-20 21:55:24 +01:00
Michael Stefaniuc 98e6e2429f dmsynth: Pass the master clock on to the sink.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-20 21:55:21 +01:00
Michael Stefaniuc 7217973cb9 dmusic: Call SetSynkSink() first to initialize the Synth.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-20 21:55:17 +01:00