Added support to be able to add Spreaker urls as podcast feeds that WACUP is then able to handle
Added to the General preference page the option to change how drag + dropping files onto the main window work so it can be changed from the default play action (which'll intentionally replace the playlist)
Added a preference option to control how the library history plug-in maintains the limited tracking with so it can be made to prune the old items instead of (by default if limited tracking is enabled) to only filter the results (enabling this makes the plug-in behave more like older WACUP builds when it was mimicing how Winamp's history plug-in was working)
Changed to use a slightly faster way to check if a file or a directory exists (is a fraction of time but that adds up with the local library & metadata refreshing actions when dealing with many 10s & 100s of 1000s of files to be inspecting)
Changed the playback history plug-in to no longer mimic Winamp's behaviour to limit the playback history to 30 days
Changed how some of the rating actions are internally handled to better avoid calling the local library if it's disabled
Changed the big clock & waveform seeker plug-ins to use a safer way to get colours from the modern skin engine plug-in as part of avoiding a possible crash issue that could otherwise occur previously
Changed the handling of some of the output plug-ins to give a more direct warning when trying to use them for where they're known to have stability issues (not due to WACUP specific issues)
Changed some of the input plug-in api handling to simplify & remove some duplication of the calls along with nop'ing some aspects that afaict only one plug-in makes use of & this removes the need for them
Changed how the installer handles & reports issues with trying to close any existing running instances found related to the install location being attempted which should hopefully resolve some confusion
Changed some of the playlist saving to reduce some duplicated string processing to make it take a little bit less time (unlikely to be noticed by most)
Changed how the WACUP provided plug-ins can attempt to add an item into the main playlist at a specific location to use a much quick method vs the WM_COPYDATA method (e.g. makes batch inserts quicker)
Changed the Alt+3 / File Info dialog to better indicate if edits can be made especially when interacting with read-only & some url based formats
Changed to use libdeflate for db loading actions which reduces time to parse them between 6 to 20% depending on the size & spec of the machine (typically is in the middle of the range for the x86 builds)
Changed to use libdeflate for db saving actions which reduces the time to save them compared to the prior pigz based implementation & also usually generates smaller files compared to the prior pigz based implementation making reading them be quicker
Changed the interaction between the Global Hotkeys & Win10Shell plug-ins so a failure to get the SMTC implementation will now be reported to the Global Hotkeys plug-in so it can process the multimedia keys which otherwise should be handled by the Win10Shell plug-in if it's correctly enabled
Changed the installer to reset the 'threads' config option to be able to properly test out the db saving changes & hopefully shouldn't be even needed with the installs going forward
Changed the Yar-matey! Playlist Copier plug-in (gen_yar) to do the actual file copying on a background thread to avoid it causing the main ui to block (based on crash reports seen)
Changed the installer to better ensure the currently re-used directshow input plug-in will handle more of the formats that it can without having to mess with configuration options on unmodified installs & patched the configuration dialog to better reflect the file extensions it'll be used for as well as fixing some clipping of the text on the dialog
Changed how the library history db is managed to now periodically compact it along with applying some integrity checks in an attempt to resolve issues from prior builds vs db saving
Fixed the cause of the db saving issues which have been plaguing the recent builds (though was likely the cause for a lot of the random failures going back over the years) by changing from pigz to libdeflate
Fixed a couple of deadlocks seen in the build 19100 crash reports whilst attempting to get metadata &/or albumart due to either incorrectly handling some of the internal locks or from not using the appropriate calling mode at the expense of some more re-reads of file metadata (using the local library to cache the file metadata helps avoid this)
Fixed a crash when looking at the shuffle table diagnostics preference tab & a title string isn't available mid-update
Fixed a crash seen with the 2SF input plug-in due to it trying to incorrectly allocate too much memory than's allowed
Fixed the additional notification area icons not being restored on loading if the main notification area icon also isn't set to be enabled
Fixed the notification area icons from the Playback Controls section of Preferences -> General -> Notification Area not being added in loading if the main program icon also hasn't been configured
Fixed the asio output plug-in not correctly verifying some api responses which caused it to then crash when reacting to the input plug-in trying to pass through the requested output volume to use
Fixed some ui glitches with the podcast downloads view not updating all of the items during initial loading
Fixed some repeated calls for ui related strings which could in some instances cause a ui related corruption
Fixed a deadlock when the history plug-in is trying to get the length of the newly playing item which was incorrectly calling back on itself due to the item not being in the local library & how metadata fallback is handled
Fixed using stop with fadeout & restarting playback when Ignorant Output was the active output plug-in not resuming playback as expected due to incorrectly getting stuck in a paused playback state
Fixed a potential crash on closing if podcast related aspects were still running & the action to signal process closing hasn't been actioned within the expected time scale
Fixed some regressions after build 17040 which caused the waveform seeker window to not always show the currently selected playlist item as expected (e.g. after restoring the hidden window) or if the file had already been processed & the needed window paint trigger didn't happen as expected
Fixed a compatibility issue related to how the customisable program icon is applied during loading which could cause the titlebar text for windows &/or dialogs from non-unicode plug-ins to show as gibberish
Fixed some inconsistency with the handling of the main right-click window settings submenus causing them to be enabled when it's not appropriate to the skin &/or plug-ins enabled that might try to use them
Fixed the revert playlist to last backup menu option in the library playlist root view not always triggering the current playlist view to refresh to show the reverted playlist contents
Fixed some ui deadlock issues with the library playlists (especially when dealing with 100s of playlists) when doing some of the play / enqueue actions vs sorting happening & a few more
Fixed some possible issues with internally getting the filepath or title from main playlist items vs the access lock on it which could allow it to have changed mid-call before being copied
Fixed the classic skin main window visualisation sometimes not rendering the bottom vu meter bar along with another possible reason for some of the reports of the vis area stopping updating
Fixed a crash happening with the automatic generic window global hotkey registration if there's an issue with the window failing mid-processing (e.g. a failed visualisation window opening)
Fixed the probable cause of the reported failures when doing physically removing batches of files from the main & library playlists due to an incorrect handling of the OS api used to perform the action
Fixed the vgmstream plug-in looping options not working due to a mistake when doing a code merge a long time back
Fixed the kbps element of the main window under classic skins when running under WINE which would show an unexpected unknown character / square control code if the bitrate was less than 100kbps due to a weirdness seen with how the text string is being generated which wasn't present under Windows
Fixed a number of sub-song handling issues with the playlist items the vgmstream plug-in adds including files incorrectly being reported as missing or for some it getting stuck in an endless expansion loop
Fixed the probable cause for processing some youtube playlists into playable links in WACUP causing it to hang inconjunction with some other ui related interactions but it's still not as nice as intended
Fixed the probable cause for a hang on close if podcast downloads are active when doing the ok to quit check & other unrelated actions are causing slow running ui related aspects to be happening which then blocks our attempt to check the status of things
Fixed the probable cause of a memory corruption when using the Milkdrop plug-in which depending on when it occurred could either cause a crash on loading or might cause some rendering failures later on
Fixed a closing performance issue if the missing files highlighting option has been enabled & there's an in-progress check being done when WACUP is about to be closed
Fixed the probable cause of a long standing random podcast feed processing failure where it'd get stuck due to mis-handling the libcurl multi interface
Fixed a number of plug-in api compatibility issues which appeared when trying to use the gen_livefolder plug-in (this would either crash or get stuck in an endless loop which caused a hang on closing)
Fixed the lyrics window not scrolling as expected due to how a prior change to avoid a massive performance issue especially on initial loading meant it didn't correctly calculate the number of drawn lines when there's line wrapping involved compared to the raw line size that the lyrics api is reporting to the plug-in
Fixed the current playing position in the Milkdrop window (enabled via the F3 window shortcut) not showing the expected time string for less than 1 second of playback or for whole minute values
Fixed some of the open/save files dialogs not showing in the expected dark mode (there's some elements that still need to be looked into due to this OS provided dialog not really being coded to do it)
Fixed the probable cause of a crash with the Win7Shell plug-in from not handling multi-threaded actions related to updating the cached metadata for the currently playing item
Fixed how the plug-ins are queried if it's ok to close to avoid some actions which trigger a prompt for the user to react to misbehaving (more of an issue with modern skins) preventing the prompt from being seen &/or the cpu sitting in a constant loop until some rub your tummy & pat your head at the same time shenanigans are attempted
Fixed the db file diagnostic handling since some point after build 18980 not being able to correctly report any duplicated records
Fixed a long term intermittent crash with the first run skin selection dialog often appearing as WACUP not starting despite the checkbox on the last page of the installer being checked
Removed the use of pigz & pthreads from the nde db handling
Other small miscellaneous changes based on possible causes of issues seen within the crash reports & all of that fun stuff
Updated c-ares (libcurl.dll) to 1.29.0 (24 May 2024)
Updated giflib (image.w5s) to 5.2.2 (19 Feb 2024)
Updated libcurl (libcurl.dll) to 8.8.0 (22 May 2024)
Updated libjpeg-turbo (image.w5s) to 3.0.3 (8 May 2024)
Updated libnghttp2 (libcurl.dll) to 1.62.1 (19 May 2024)
Updated libopenmpt (in_mod.dll) to 0.7.7.20802 (12 May 2024)
Updated libsidplayfp (in_sidious.dll) to 2.7.1 (19 May 2024)
Updated lzma (lzma.dll) to 24.06 (26 May 2024)
Updated Monkey's Audio (in_ape.dll) to 10.73 (14 May 2024)
Updated OpenSSL (libcurl.dll) to 3.3.1 (4 Jun 2024)
Updated unrar (unrar.dll) to 7.0.9 (12 May 2024)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 27 May 2024