--
v3: wineusb.sys: Print a warning for unhandled IRP_MN_QUERY_DEVICE_TEXT text types.
winebth.sys: Print a warning for unhandled IRP_MN_QUERY_DEVICE_TEXT text types.
hidclass: Print a warning for unhandled IRP_MN_QUERY_DEVICE_TEXT text types.
winebus: Handle IRP_MN_QUERY_DEVICE_TEXT.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8770
This pull request fixes Wine's MIDI synthesizer reset process to be the same as Windows'.
When playing Touhou Project games in MIDI BGM mode, the music playback becomes buggy when the BGM changes.
The video below is an example of an anomaly that occurs when playing The Fantastic Tales from Tono after playing Crystallized Silver in Touhou 7.
https://youtu.be/O69sndJ45Ag
Here's a correct example of The Fantastic Tales from Tono playback:
https://youtu.be/XlFAQEbbNDg?list=RDXlFAQEbbNDg
Piano sound is clearly missing on Wine.
This issue occurs due to an Wine's incorrect reset process for MIDI synthesizer.
When I ran FluidSynth on Windows and checked the log, I found that CC123 and CC121 were executed for each MIDI channel when switching songs.
CC123 means All Notes Off, CC121 means Reset All Controllers.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8808
--
v2: wineusb.sys: Print a warning for unhandled IRP_MN_QUERY_DEVICE_TEXT text types.
winebth.sys: Print a warning for unhandled IRP_MN_QUERY_DEVICE_TEXT text types.
hidclass: Print a warning for unhandled IRP_MN_QUERY_DEVICE_TEXT text types.
winebus: Handle IRP_MN_QUERY_DEVICE_TEXT.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8770
--
v2: widl: Require runtimeclass contracts to be defined.
widl: Require composition interfaces to be defined.
widl: Require activation interfaces to be defined.
widl: Require static interfaces to be defined.
include: Define ISystemMediaTransportControlsStatics.
include: Define IRandomAccessStreamStatics.
include: Comment references to undefined static interfaces.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8776
Order of day or month and time or year needs to be considered.
The year also needs to be adjusted correctly.
--
v5: wininet/internet: Fix year parsing to include millennium.
wininet/internet: Fix parsing order of http times.
wininet/tests: Add more http time test strings.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8614
On Thu Aug 21 10:16:27 2025 +0000, Ivan Lyugaev wrote:
> changed this line in version 7 of the diff
I agree with you, the save_cfg_data section is divided into two functions, save_option(optno) and save_options(void)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8778#note_113438
On Thu Aug 21 10:16:26 2025 +0000, Ivan Lyugaev wrote:
> changed this line in version 7 of the diff
Yes, I agree, my interface makes writing and reading the whole file, but in the context of a small number of operations, I think it's acceptable. I focused on making the configuration file readable for manual modification (previously, I provided the writing format). An option was to store the settings in a binary file and overwrite them based on the offset provided by optno.
Would it be better to store all the settings in memory and save them to a file once the scan starts or the window is closed?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8778#note_113429
On Thu Aug 21 10:16:26 2025 +0000, Ivan Lyugaev wrote:
> changed this line in version 7 of the diff
When a string parameter is set in the sane_option_set_value function, it becomes impossible to retrieve the number of parameters in the sane_option_get_value function. This is likely an internal feature of sane.
This was added to correctly display the loaded parameters. Without this change, the tab had to be refreshed, which was inconvenient.
In my opinion, it is safe to use this, as my gOptCount variable is updated every time the optcount is successfully received in the sane_option_get_value( 0, &optcount ) function, which is called in DoScannerUi and InitializeDialog
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8778#note_113428