On Wed Jan 17 17:08:20 2024 +0000, Yuxuan Shui wrote:
I considered it when I wrote this, however: AudioPathConfig doesn't have any COM interfaces defined for it though (besides IDirectMusicObject). Should I add a wine private interface? Other thing is adding getters is annoying especially when there are linked lists involved. And I feel doing all this for purely internal types doesn't really add much value.
It could be a couple of private helpers to help performance and audio path config work together, and keep the list iteration an audio path config implementation detail.
For instance, you could have a `audio_path_create_from_config(IUnknown *config, IDirectMusicPerformance8 *performance, IDirectMusicAudioPath **out)` implemented in `audiopath.c` that would iterate the config, create the DirectSound buffers (there's already a `performance_get_dsound` to get the needed dsound pointer)
Then maybe either a `audio_path_get_port_params` that would be called after the creation to initialize the corresponding performance channels, or something the other way that would be called by the audio path creation like `performance_add_audio_path_port(IDirectMusicPerformance8 *iface, DMUS_PORTPARAMS8 *params, ...)`, I'm not completely sure how it is supposed to work.