By taking alternative code-paths in WdmAud and bypassing Sysaudio.
This is my 2nd attempt to commit that.
This is a squashed backport of:
0.4.15-dev-791-g 6d7ebc2048 the USE_MMIXER_LIB which gives the best results when paired with those 2 previous patches:
0.4.15-dev-765-g b8e936a57b CORE-17214 (#3148) wdmaud-racecondition-fix and
0.4.15-dev-796-g a27f0debca CORE-17276 winmm:mixer-testbot-crash-fix
Defining USE_MMIXER_LIB will fix/improve:
- the test execution times of "GCCLin_x86 on Test VBox" will be dramatically improve (iirc by ~10-15min)
- CORE-8726/CORE-9986/CORE-16564 AC97 driver from rapps will work in the same session that the driver is installed, not a single reboot is needed anymore
- CORE-13202 Unhandled exception from wdmaud.drv when recording sound in Scratch 1.4 leads to app-crash (gets fixed even for older builds that did not receive 0.4.15-dev-2794-g 81f8bce yet)
- CORE-13488 A deadlock in "DiabloII" character selection screen and "The Lion King II"
- CORE-9981 "DosBox + Commander Keen6" almost 100% fixed, DosBox + Commander Keen6 properly plays music instead of garbled output,
same improvement for "ScummVM 2.0 with Monkey Island 2"
The playback is not yet *entirely* perfect, still a few hiccups now and then, but by orders of magnitude better than before.
Defining USE_MMIXER_LIB will also have some negative aspects:
- CORE-17277 crash of dsound:duplex on "GCCLin_x86 on Test VBox" gets unhidden on the bot, but was proven to be broken even beforehand already. The driver beforehand was just not found and the tests were skipped therefore.
- CORE-17278 crash of dsound:capture on "GCCLin_x86 on Test VBox" gets unhidden on the bot, but was proven to be broken even beforehand already. The driver beforehand was just not found and the tests were skipped therefore.
- It may also have a negative impact for CORE-17285 "Realtek HD Audio" but Oleg Dubinsky accepted to tolerate that and aims to approach it differently. I will resolve that as WontFix now.
I do recommend to change in function SymSetSearchPath: the line
WCHAR* sp;
to
WCHAR* sp = NULL;
to avoid the following compiler warning, that I got only on carrier-releaser interestingly,
../dll/win32/dbghelp/dbghelp.c: In function 'SymSetSearchPath':
../dll/win32/dbghelp/dbghelp.c:244:9: error: 'sp' may be used uninitialized in this function [-Werror=uninitialized]
cc1: all warnings being treated as errors
but I did not get that error on compilation when building this locally on "GCC4.7.2 RosBE2.1.6"
or "GCC8.4.0 RosBE2.21", or "VS2010", or with the buildbits/testbots. Weird!
I have no clue, why carrier releaser does behave different here at all upon compilation!
This is a minimized version of the not yet merged patch of (#3257).
I will commit only into the RC but not into master, because
author Thomas Faber is most likely interested in upstream integration.
It fixes Heap Corruption when starting KernRate, which I could confirm
with system-wide DPH beforehand.
That new dialog was added during 0.4.14-dev'ing.
Porting back its german translation makes sense therefore.
Especially since it is the last dialog of the bootcd setup
that would be untranslated otherwise for 0.4.14RC.
fix picked from 0.4.15-dev-2040-g b493a2f8ab
MSVC2010 compiler warning shellext\netshell\lang/de-DE.rc(118) : warning RC4206 : title string too long; truncated at 256
introduced by SVN r71434 == git 6ce8ee357a
The string was displayed properly and was not truncated even before this patch.
Fix picked from 0.4.15-dev-2885-g 7962db4cc1
Improve performance of Start-Run Dialog Box Options
This will fix:
CORE-17351 'RunDlg fails calling URL without http'
and
CORE-16898 'RunCommand "iexplore" fails to open Wine IE'
Both regressed by 0.4.10-dev-419-g bfcbda227f
Fix picked from 0.4.15-dev-2883-g 33c7c91b36
Fix missing ReleaseDC related to the spectrum (color depth)
We leaked one device context for each bpp change within the
desk.cpl-session, which gave the following logging when closing desk.cpl:
(win32ss/user/ntuser/windc.c:749) err: [00060138] GetDC() without ReleaseDC()!
1 time for each leak.
Partial backport of (#2707)
Fix picked from 0.4.15-dev-2867-g d635ce0cc0
Fix automatic toggling of date display on second stage setup
Update comctrl from Wine with fix.
Sync datetime.c to Wine-6.0
Thanks to the patches author Doug Lyons.
fix is aquashed port of
0.4.15-dev-2796-g e382b7bc35 +
0.4.15-dev-2797-g adee5ca255
no functional change.
Make that look beautiful before porting it back further.
Addendum to 0.4.15-dev-534-g 887764e607
(CORE-17062)
picked from 0.4.15-dev-2705-g a3cadf630a
fixes BSOD 0xc0000139 STATUS_ENTRYPOINT_NOT_FOUND upon boot when
replacing just the file advapi32.dll with 2k3SP2 version 5.2.3790.3959
After adding the stub we can reach the login-screen requesting
for Ctrl+Alt+Delete.
We can properly ACPI-shutdown at this point.
picked from 0.4.15-dev-71-g 0b530fe496
MSI on 2k3sp2 hides empty CD-ROM, and hides CD-ROM with iso mounted.
MSI on 2k3sp2 hides VBox shares, both: writable and read-only-ones.
MSI on 2k3sp2 hides floppy drives with a floppy img mounted.
MSI on XPSP3 hides a mounted writable USB stick.
Thanks to the patches author Doug Lyons.
This patch supersedes
0.4.14-RC-71-g cfc24316a5 (CORE-14432)
and we are also better than Wines
0dd0d879a1
picked from 0.4.15-dev-2704-g d5265b07bb
We decided to check a bit different than Wine currently does.
Wine checks for
if (GetVolumeInformationW(ptr, NULL, 0, NULL, 0, &flags, NULL, 0) && flags & FILE_READ_ONLY_VOLUME)
to exclude read-only-media while we (for now) check for
if (GetDriveTypeW(ptr) == DRIVE_CDROM)
For now this gives us the benefit of covering also CDROM drives, that do not have
a CD put into it.
That does not work properly for us with the Wine patch yet, but it does for Wine!
So this maybe points to some other bug in ros, maybe in our CDROM(FS)-drivers?
In the future we should also test this on other read-only-media in Windows e.g.
a read-only USB stick to decide whether we want to stick with our current solution
or whether we want to switch to Wines solution or whether we want to logically OR
both conditions!
Thanks to Doug Lyons for providing what *currently* does work best for us!
VBox https://reactos.org/testman/compare.php?ids=77537,77546 (no change)
KVM https://reactos.org/testman/compare.php?ids=77531,77541 (no change)
picked from 0.4.15-dev-2651-g 864e20b881
It regressed by 0.4.12-dev-1064-g 09c4d0a74b
when we tried to mute compiler warnings in the GCC Release configuration
for all modules, that do contain .y files.
In master we switched to use flex+bison to process those files at build-time
in 0.4.15-dev-2277-g 28dadda8be and at the same
time reverted the guilty rev.
In the backport to the old releases we do only revert, but do not introduce
flex+bison. This will reintroduce the warnings in GCC Release configuration.
Although the new layout that I committed in the previous commit
was favored by community ratings votes 8:0,
some devs still preferred the old layout with the bigger logo
because they liked the easteregg. So this commit restores
that.
But it syncs to that features latest&greatest implementation
we have in 0.4.15-dev-1685-gd0c237a instead of reverting the
previous commit to not unnecessarily have many bugs with it
that were still affecting the older releases beforehand.
Aside from the general tabs dialogs layout this commit does
also fix some minor issues in the translations for the oldest
branches in pl-PL, jp-JA, zh-CN and zh-TW.
And it fixes an x64 issue in general.c for 0.4.7 and 0.4.8.
The version string cutoff started to happen when we switched from SVN
with its short revision number to git with the longer hashes.
0.4.7-dev-502-gc2c66af was the first git-only rev (2017-Oct-03)
and brings the dialogs layout closer to XP.
Also fixes some other truncations for specific languages.
And unifies the touched text controls sizes for all languages.
The credits have been moved to readme.txt where they are more present and
we can avoid having to groom all languages files each time we want to add
a new dev (and sysdm.cpl to grow each time). Less maintenance.
sysdm.cpl binary size I18N=all
master before 925.696bytes after 705.024bytes gcc 8.4.0 dbg RosBE2.2.1
0.4.14 before 923.136bytes after 702.464bytes gcc 8.4.0 dbg RosBE2.2.1
0.4.13 before 904.192bytes after 684.544bytes gcc 4.7.2 dbg RosBE2.1.6
0.4.12 before 881.664bytes after 665.600bytes gcc 4.7.2 dbg RosBE2.1.6
0.4.11 before 836.096bytes after 618.496bytes gcc 4.7.2 dbg RosBE2.1.6
0.4.10 before 806.912bytes after 588.800bytes gcc 4.7.2 dbg RosBE2.1.6
0.4. 9 before 788.480bytes after 585.728bytes gcc 4.7.2 dbg RosBE2.1.6
0.4. 8 before 788.480bytes after 585.728bytes gcc 4.7.2 dbg RosBE2.1.6
0.4. 7 before 788.992bytes after 585.728bytes gcc 4.7.2 dbg RosBE2.1.6
readme.txt still fits into a single NTFS cluster afterwards with 3702bytes
Also a very! soft update of some translations ported back.
flip_fix_9.patch fixes:
CORE-16984 " 'SPINA Thrulg' / 'SPINA Thyr' / 'Sim Thyr' have images flipped"
CORE-17194 "StretchDIBits test" isn't work correctly"
"Output of 'Project 3 Test'"
CORE-14701 "DVDStyler 3.0.4 transparent toolbars"
CORE-14701 "DVDStyler 3.0.4 erroneously black around icons of welcome-dlg"
CORE-14671 "'Peazip' shows icons in buttons and menubar vertically flipped"
"Double Commander shoes icons flipped in buttons, menubar, listview and the treeview"
CORE-13273 "Welcome to Lazarus" icon shows flipped
CORE-13026 "'CudaText app' icon shows flipped"
Not all of those are duplicates, although they appear to be at first glance.
It affects different controls and some of those tickets do have different 'guilty revs' than others.
The patch does consist of 3 parts:
1.) win32ss/gdi/ntgdi/dibobj.c
This one is the most clean part of it, that addresses most of the flipping issues now.
2.) The hack in comctl32.h redefining the version:
We used that in the past to appease some, but not all of the issues listed above.
But it does hide additional issues, e.g. in DvDStyler, therefore we seem to still need that appeasement even today.
Most likely it would make sense to aim to avoid this part in the future.
part 2.) was committed as first appeasement on its own already into
0.4.14-RC-24-g 198b61e
0.4.13-RC-7-g 67211fa
0.4.12-RC-5-g 8449527
0.4.11-RC-16-g b906163
0.4.10-RC-7-g f1e80fe
0.4.9-RC-34-g 9d758ae
3.) toolbar.c change
That part fixes at least the toolbar case for DvDStyler
without relying on the comctl32.h hack any longer,
but it was still not enough to completely get rid of part 2.) yet.
Many thanks to all contributors: 'I_kill_Bugs', Doug Lyons and also 'Julenuri' for testing.
The patch gave nice testbot results:
KVM: https://reactos.org/testman/compare.php?ids=75704,75714
VBox: https://reactos.org/testman/compare.php?ids=75705,75715
and we also created a summary of manual test-results:
https://jira.reactos.org/browse/CORE-17415?focusedCommentId=126668&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-126668
If you read this comment via git blame and your goal is to get rid of the hack in comctl32.h, I would highly recommend
to redo the tests of that testing table, and if that is asked too much, then please test at least the following cases:
CORE-14701 "DVDStyler 3.0.4 transparent toolbars"
CORE-14701 "DVDStyler 3.0.4 erroneously black around icons of welcome-dlg"
"DVDStyler 3.0.4 erroneously black/transparent within comboboxes of properties of VMGM menu"
and try to add what might be needed to fix them, and double-check again:
"DoubleCommander optionsDlg the most complex testcase, contains flip-prone icons in treeview, listview, menubar, buttons, statics". Only some of its flipped icons were impacted by the comctl32.h change before.
fix picked from 0.4.15-dev-1603-g 232c45fcd7
I double-checked and although the crash in Motorbike does *not* happen by default in all of those builds:
0.4.14-RC-54-g6a6672d (hidden by opt-in apisets-default in release branch)
0.4.13-release-1-g2ac9d98 (hidden by opt-in apisets-default in release branch)
0.4.12-release-17-g79780cd (hidden also, I don't understand why)
0.4.11-release-28-gc4d930d (hidden also, I don't understand why)
0.4.10-release-35-g94b4a3e (hidden also, I don't understand why)
0.4.9-release-41-gd3a79fe (hidden also, I don't understand why)
0.4.8-release-46-gd4d58d7 (hidden, does not have apisets yet)
0.4.7-release-56-g835b508 (hidden, does not have apisets yet)
It was really only crashing in master.
I decided to port the proper fix back nevertheless, because:
- the exports are wrong for our target
- I can not guarantee otherwise that it would not pop up all of a sudden later
- and the fix also decreases the binary size of that apiset.
Fix picked from 0.4.15-dev-179-g 02825c20e4
Allows to complete the whole 'ninja bootcd' after 'configure -DCMAKE_BUILD_TYPE=Release'
for compiler MSVC 2010SP1 16.0.40219.1 with RosBE 2.1.6
Similar to the fix committed in 0.4.15-dev-1453-g 4ad7b6d
Those 2 did spam heavily when browsing folders with
many .zip files within. Mark Jansen confirmed that
this is good-path-logging and was just forgotten
to be disabled earlier. They were introduced by 0.4.14-RC-16-g
e13ff4aeb8
fix picked from commit 0.4.15-dev-628-g
f363c27ab4
which means we have no affected release branches left anymore.
For FileOpenDlgProc95() & SHBrowseForFolder().
I decided to port those 2 commits back to have CORE-14332
fixed as a whole and not only a part of it.
*If* I would ever decide to port that back even further I should
remember that I will have to pick additionally 0.4.14-dev-1187-g
fc4c4d4911
-------------------------------------------------------------
[COMDLG32] Support shortcut keys on Open/Save Dialog (#3238)
Enable key accelerators on File Open/Save Dialog. CORE-14332
cherry picked from commit 0.4.15-dev-1050-g
c8e1460ac5
--------------------------------------------------------------
[SHELL32] Implement VK_DELETE on SHBrowseForFolder (#2661)
Enable Del/Delete key to delete the selected folder in "Browse for Folder" dialog.
You can use https://jira.reactos.org/secure/attachment/40118/getfolder.zip as a test program.
CORE-7592
cherry picked from commit 0.4.15-dev-39-g
771457f37f
Press'n'Hold of a button, then leaving the button rect
should redraw the button in unpressed state
Thanks to JIRA user 'I_kill_Bugs' for perfecting
my initial experiments to fix that.
It regressed by 0.4.9-dev-719-g
b3fb8555bf
No need to sync anything with Wine, their code is
correct on Wine head. The bug was in ros specific diff.
cherry picked from commit 0.4.15-dev-1085-g
c947eb4d17
The sorting in explorer broke by
SVN r73128 == git
24fcf531e7
Thanks to Doug Lyons for providing this patch.
fix cherry picked from commit 0.4.15-dev-752-g
35dbdaaa0e
To prevent logspam that was introduced when syncing
to Wine Staging 4.18 in 0.4.14-dev-422-g
6feb8748d3
Thanks for anyone helping: Doug Lyons,
Fabian Maurer (Wine), Zebediah Figura (Wine)
fix cherry picked from commit 0.4.15-dev-686-g
1cc84c6db7
The regression was introduced by SVN r68553
3b13364f05
Many thanks to the author Doug Lyons for excellent
cooperation once more. Always a pleasure.
Fix cherry picked from commit 0.4.15-dev-663-g
cd7db5df89
and 0.4.15-dev-664-g
7c909cbc7c
GetIconInfo() fill info.hbmColor with NULL HBITMAP handle on black/white bitmaps.
CORE-17062
It broke by 0.4.9-dev-719-g
b3fb8555bf
cherry picked from commit 0.4.15-dev-534-g
887764e607
Fixes the icons on some buttons being flipped vertically.
Known affected apps: Lazarus IDE, Double Commander, Peazip.
Beside that it also fixes transparency regressions in DVDStyler 3.0.4 (CORE-14701).
Thanks to patches author Doug Lyons.
The patch has not been committed to master yet and has the known side-effect
of introducing flipped icons in the options-treeview of Double-Commander
that are drawn correctly without the hackfix.
Workaround applied again like in all last releases since 0.4.9.
CORE-17079 Found by static code analysis
The wrong code once was introduced by 0.4.12-dev-408-g
431f9bf311
We were not aware of any user observable malfunction caused
by it.
fix cherry picked from commit 0.4.15-dev-311-g
03d5ff7f68
Reported by contributor 'qarmin', found by static code analysis.
CORE-17074
The glitch once was introduced 7 years ago by SVN r58933 == git
7934e35cdf
There is no real-world-issue known to date caused by this bug.
fix cherry picked from commit 0.4.15-dev-303-g
99d0a348aa
part of the fix for CORE-16908
This commit fixes a unittest crash in shell32:CFSFolder
introduced by the previous commits
cherry picked from commit 0.4.15-dev-279-g
83a9f71690
The build broke due to a typo introduced by
0.4.15-dev-275-g
612729b092
../dll/win32/syssetup/wizard.c: In function 'ProductPageDlgProc':
../dll/win32/syssetup/wizard.c:527:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-
after-statement]
cc1.exe: all warnings being treated as errors
fix cherry-picked from 0.4.15-dev-278-g
4cbb21761c
-------------------------
[0.4.14][SYSSETUP][BOOTDATA] Make Server default again and write Service Pack (#2749)
- Make "ReactOS Server" the default product option again instead of "ReactOS Workstation".
- Write "Service Pack" info onto registry.
- Add ProductOption option to bootcd unattend.inf.
- Delete IDC_PRODUCT_SUITE and IDC_PRODUCT_TYPE controls.
To fix regression with Visual Studio 2010 setup CORE-17028
I took 2 translation files in their most recent version from master 0.4.15-dev-275-g
612729b to prevent having to resolve any conflicts manually:
tr-TR.rc
uk-UA.rc
cherry picked from commit 0.4.15-dev-275-g
612729b092
do not allow traversal inside virtual folders when selecting a file
part of the fix for CORE-16908
"Unable to select a Zip file for sending with Common Open Dialog"
which was unhidden by 0.4.9-dev-632-g
da6a46c6ac
fix cherry-picked from commit 0.4.15-dev-254-g
332889b8d7
part of the fix for CORE-16908
"Unable to select a Zip file for sending with Common Open Dialog"
which was unhidden by 0.4.9-dev-632-g
da6a46c6ac
fix cherry-picked from commit 0.4.15-dev-252-g
f379a29606
part of the fix for CORE-16908
"Unable to select a Zip file for sending with Common Open Dialog"
which was unhidden by 0.4.9-dev-632-g
da6a46c6ac
fix cherry picked from commit 0.4.15-dev-251-g
b1003ae909
part of the fix for CORE-16908
"Unable to select a Zip file for sending with Common Open Dialog"
which was unhidden by 0.4.9-dev-632-g
da6a46c6ac
fix cherry-picked from commit 0.4.15-dev-250-g
ac215455bb
To fix 'MSTSC fails to connect with error "ERROR: Bad packet header"'
which regressed by 0.4.12-dev-752-g
6bc61f63f1
In 0.4.12 and 0.4.13 releases I totally reverted
Pierre Schweitzer's work instead.
Thanks to Doug Lyons, author of this new workaround,
we can keep Pierre's work.
We think MSAFD is a better place to workaround than
our MSTSC binary, because our MSTSC runs fine on
W2K3SP2.
fix cherry picked from commit 0.4.15-dev-211-g
666fe66fe9
Remove WM_SYSKEYDOWN handling at component level, in consistency with other components (ListView,...)
Early embodiement of the fix proposed to WineHQ:
https://bugs.winehq.org/show_bug.cgi?id=49097 in order to remove functional limitation in ReactOS.
Fixes regressions CORE-17020 and CORE-12203 that were once introduced
by SVN r72320 == git 297e33f228
during COMCTL32 WineSync 1.9.16 CORE-11866
Fix cherry.picked from 0.4.15-dev-191-g
295ba62820
Wine's implementation relies on http.sys driver, which we don't have
anyway. Function declarations are taken from Wine 5.7
This fixes regression "failure of VS2010 setup" CORE-16963
which was introduced by 0.4.14-dev-198-g
ebcc4c6109
cherry picked from commit 0.4.15-dev-161-g
8bd9450da8
Luckily no release was ever affected by this therefore.
CORE-16935
I merged that back, because at least the play-icon was a regression.
We did not always use an icon here, but instead earlier we just had some
font glyph displaying the play-symbol. It was once changed to icon to improve
display for some asian localization (japanese? iirc).
And the current bad display most likely was a consequence of that.
cherry picked from commit 0.4.15-dev-86-g
bdb4da009a