Added a default on option to the local library preferences to control whether for files without artist & title metadata or just tagless files in general will attempt to get that from their filename (this looks for [track #. ][artist -][title] so anything that doesn't match that might generate unexpected results)
Added a default on option to the local library preferences to control whether for files without artist metadata but albumartist is present to store it in the db as 'artist' (masks missing metadata but helps other aspects work in an expected manner)
Added a "Missing Metadata" preset to the local local library add / edit view dialog so it's a bit easier to find any entries missing either artist, album, title or length to then be able to resolve them
Added forced mono decoding support to the Monkey's Audio plug-in to follow the Playback preferences page & match the other common format plug-ins
Added a one time integrity check during the initial local library database loading which re-builds the database files as needed to help resolve some issues introduced from recent builds (e.g. the potential for the duplication of files) along with removing any existing duplicate entries
Added the ability to re-order the child nodes in the media library navigation tree for the local library & library playlists related items
Added an option to the Skins preference page to allow for picking a random skin during loading (this gets things comparable to Winamp whilst allowing for more control over when the random skin is picked)
Added a new experimental (opt-in) feature to the General -> Windows 10 | 11 preference page to allow for Toast Notifications to be shown via the OS handling on playback changes (this is a w.i.p. & is a bit limited in some aspects compared to the modern skin notifications & the old but often not working correctly 3rd party toaster plug-in) which might be useful more for those using classic style skins
Added an option to the Skins preference page to allow for picking a random skin during loading (this gets things comparable to Winamp whilst allowing for more control over when the random skin is picked)
Added a native "rate current song" mode to the General -> Notification Area preference page as an alternative to using the old 3rd party gen_trayrate plug-in (which has a thing for breaking skinned menus) so a notification area icon can be configured to show for a potentially quicker way to set the rating of the currently playing file
Added a loading check if the in_midi input plug-in is enabled & hasn't yet been configured to try to make it use a more appropriate output device which allows for direct volume control to avoid the default behaviour of this re-used Winamp 5.666 plug-in often overriding the WACUP process volume level & blasting your ears out
Changed the local library preferences to have all of the view filter related options now on their own preference tab (the 'fun' of having too many options with long rambling descriptions of what they do)
Changed the main playlist loader to further reduce it's impact on initial loading (e.g. going from ~125ms to ~97ms for a 34K entry test playlist) so the impact of the changes should be better for much larger playlists & less for smaller ones
Changed some of the plug-in initialisations to use a safer way of getting the internally localised strings (no localisation is still not properly implemented to allow this to be enabled) to avoid some further concurrency issues from multi-threaded string access along with avoiding some unnecessary memory allocations
Changed how the folder monitor processing threads work to now better account for other requests being made to the local library plug-in for metadata which could in some instances cause a ui hang crash to occur
Changed modifying the local library metadata guessing options being to now prompt to run a full database refresh
Changed the internet radio play/enqueue/enqplay handling to now be done via a background thread which should avoid the odd hang that was still happening
Changed the CD playback plug-in to avoid using any additional resources if there's clearly no available drives
Changed the local library view results pane default sorting to favour album over artist (as was done to mimic Winamp's local library) which should give a more consistent ordering of items when interacting with the upper filter panes &/or when using the albumart view modes so they should be much more likely to appear in track order
Changed when loading the main playlist begins to happen earlier in process loading which reduces the overall loading time with the impact of this more obvious with a large main playlist
Changed the tooltip handling of the generic emebedded windows under classic skins to be able to share a single tooltip window instead of generating one for every embedded window for a small resource saving
Changed how some of the larger strings are internally stored in the core & plug-ins to reduce their impact on the compiled files as part of some pre-emptive work towards eventual localisation support
Changed the list of output plug-ins which are reported as known to cause stability issues when they're selected via the output plug-in preference page
Changed the installer to still try to install the in_dshow plug-in from the 5.666 installer (if available) for WMA playback if selected & video support is disabled during the installation process
Changed the messages shown for known compatibility loading issues (e.g. FaultTolerantHeap) to better detail what the user can do to resolve the problem
Changed the string shown when in_mp3 is incorrectly reporting "Sorry cannot write streams to disk" due to the configured output device not being valid to show a more appropriate message (this doesn't avoid the problem that this re-used input plug-in is generating a message that is incorrect for what's actually happening with playback)
Changed some of the internal string handling for the local library & history plug-ins to avoid some re-processing of them whilst adding / updating them to avoid a whitespace stripping issue
Fixed the classic skin main playlist windowshaded text either not showing when using the non-skinned fonts, showing but incorrectly overpainting parts of the window when using skinned fonts or not showing the queued playlist indicator string for items without a playback length when using skinned fonts
Fixed a timing quirk which could allow the slow main playlist loading dialog to show when the loading thread had already completed causing a somewhat confusing experience
Fixed the probable cause of a recurring random crash related to the taskbar preview handling
Fixed a small performance issue with some of the internal path handling which meant some strings were double processed when a single pass could instead be made
Fixed a crash due to a missed handling check related to a recent set of api compatibility fixes which could cause the scrobbling support to fail when the main playlist was cleared
Fixed a small performance issue with the inital loading of some of the generically skinned windows (this affected the excluded files window more than most)
Fixed an unintended change which has affected how the nde handling related to the local library & other uses of the nde db implementation to avoid duplicates of already found file records (this may require manually running wacup.exe /compactlibrary to allow it to re-build the database contents to allow things to be indexed correctly again)
Fixed a crash when trying to extract the extension from some playlist entries & de-duplicated some of the code to process the strings
Fixed a few instances of output device failures not being correctly reported by some of the output plug-ins (is still possible for some where the timing of trying to open vs input plug-in trying to query the opening state doesn't quite align)
Fixed an inconsistency in the selection restoration within the local library albumart view mode which could cause it to either drop the selection or select the wrong item between running instances
Fixed some quirks with the playlist undo handling which could prevent a few actions from always working in an expected manner
Fixed the local library view results pane selection not always being maintained when doing a full view refresh when filter panes are visible
Fixed a regression with the playback history pruning not working as expected (this isn't enabled by default) due to a combination of issues from the recent builds since changing how the history db is handled
Fixed new podcasts automatically being added into the local library not triggering the current local library view to refresh to try to show the newly added file (the handling of this is not ideal per prior feedback & making the views be smarter to only do a refresh if there's actually a need is planned for a later build)
Fixed a number of issues related to restoring WACUP from a minimised state especially when some of the visualisation plug-ins are running which could cause a noticeable delay in the UI to update
Fixed some more slowness issues with the restoration of selected items in different media library plug-in views which could for some setups cause an unresponsive hang crash to occur (e.g. history)
Fixed a timing issue with the TipTop plug-in initialisation which could cause it to not appear as expected (more likely to happen with classic skins) without having to manually re-toggle it back on
Fixed a rating api compatibility issue which broke the old 3rd party gen_trayrate plug-in & some other quirks within the local library views
Fixed the output plug-in handling when chosing 'no' to some of the warning prompts about the selected plug-in causing issues not always resetting the active output plug-in back to the last selected
Fixed some small quirks with the crash report information collection which is causing issues with the server side parsing of those files
Fixed the Bento / Big Bento skins triggering a guru meditation error when the browser is disabled & clicking on the file info homepage link
Fixed some of the modern skins including the Defix ones causing a crash on loading due to a live patch made against the gen_ff dll failing
Fixed a crash triggered by the gen_bptypes plug-in calling the playlist manager api & it not correctly handling one of the api methods
Fixed a crash when trying to interact with some of the re-used portables plug-in (ml_pmp/pmp_*) if its loaded after normal plug-in loaded due to the metadata api it relies on not having been registered
Fixed an internal message api handling issue which could in some instances trigger problems (as seen with build 19500) from related code being run when it isn't yet in the appropriate state
Fixed a couple of crashes from the 19320 & 19504 builds due to missing some api parameter validation checks related to some actions running in an unexpected order due to prior optimisations
Other small miscellaneous changes for possible crash report related fixes & internal clean-up
Updated c-ares (libcurl.dll) to 1.31.0 (18 June 2024)
Updated libopenmpt (in_mod.dll) to 0.7.8.20990 (9 June 2024)
Updated libsidplayfp (in_sidious.dll) to 2.8.0 (9 June 2024)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 18 June 2024