Added the ability to run the modern skin engine plug-in (gen_ff.dll) in WACUP's non-legacy mode (aka a big step closer to finally dropping the need for legacy mode & using the original Winamp exe to run) Added a native implementation of the Jump To Track (gen_jtt) plug-in (originally from 2003) which completes the trio of the Jump To dialogs now being implemented within the WACUP core :) Added double-clicking on the vertical divider in the library window between the navigation tree & the currently selected view to act as a way to resize the navigation tree to only take up the width needed to see the currently visible items within it (something that I've been wanting for a long time to make the alignment of things a lot simpler vs trying to eyeball it) Added double-clicking on the vertical divider in the internet radio & podcast views to resize to the radio station genre tree & the podcast channel list respectively Added an option to the Playlist preferences page to control whether existing title information in playlists if present is used or if it'll be ignored when added from outside of WACUP (e.g. via drag & drop or from Explorer) causing the titles to be regenerated based on the current ATF string Added drag & drop support for some of the media library navigation child nodes onto the main & playlist editor windows instead of only being able to use the right-click options &/or doing it from within the selected library view (e.g. podcast downloads or a bookmark category) Changed the installer to no longer try to re-use a Winamp compatible uninstall entry in the Windows registry & instead use a WACUP specific one due to winget / other application management software incorrectly trying to update & then breaking WACUP installs using unrelated "winamp" installers (this unfortunately breaks the ability to have plug-in / preset pack installers see the WACUP install & will require either having to manually enter the WACUP program folder to use &/or extract their contents & manually copy things over - am sorry about this but I can't fix those installers & "winamp" updates effectively wiping out valid WACUP installs is not acceptable) Changed the multiple visualisation support to now correctly remember the chosen visualisation plug-ins between running instances (this is going to require some reconfiguring for those using this feature as the prior implementation would run visualisation plug-in that was able to be used) Changed the local library & podcast navigation node updates to be done in an async manner to avoid a possible ui related deadlock Changed the local library handling of getting information about the associated artwork on add / refresh of metadata to remove a number of duplicate calls being made to get the information Changed the waveform seeker plug-in to reduce it's impact on CPU load when WACUP is not playing & if the plug-in is not processing any file(s) Changed the error message Milkdrop shows if using the multiple visualisation mode & anything else that's running in fullscreen using DirectDraw happens to run before it (e.g. Geiss) Changed the Geiss plug-in to have less legacy code in it which drops it by 3KB in size as well as some smaller optimisations to improve fps by a few frames in some instances (need to do much more to try to get it running at 4K 60fps!) Changed how the podcast related xml files are parsed to save a bit of time with much larger files by changing how the xml parser is used to allow for some aspects to be better primed prior to population Changed a few of the plug-ins to reduce their memory usage (e.g. undo now only allocates what's needed instead of what might be needed to store the backup file paths) as well as reducing some memory handling (e.g. shaves a bit more time off a full local library database load) Changed some more of the internal NDE handling to reduce the peak memory overhead of the loaded database records with upto 55MB saved for a 300K entry database used during testing (savings will be less with smaller databases) Changed how the local library calls to get an ATF title for a file are handled to massively reduce the time it takes (e.g. 4500 podcast downloads when dragged onto the main window could take around 6 minutes to be processed with it now down to a few seconds if set to read all of the titles when added into the main playlist) whilst also reducing the cpu load to process things (double win on this!) Changed the main playlist metadata reading options to remove the non-background reading version of the default option as both options had ended up doing the same thing with other changes to the core over recent months & had been a bit confusing to some (tl;dr this won't make a difference to most when it comes to metadata reading) Changed the checks made for lyrics information within file metadata to improve it returning lyrics when it's known it's in file Changed how the internet radio cache database is generated to better ensure duplicate listings will not be added whilst reducing the overall size of the archive by ~3MB & improving load times for all builds by making the database files smaller (with it being faster still with the nde changes in this build) Changed some of the handling of the artwork cache priming to further reduce it's impact on loading Changed some of the SMTC handling to try to avoid a full process crash if winrt unexpectedly fails Changed some of the internal window message handling to better avoid doing some aspects which are only needed when a modern style skin is used Changed how the podcast downloads are handled to use less memory whilst initially parsing the downloads file (saves ~3MB with a file of ~4.5K downloaded podcasts) Changed some of the supporting code used when the main playlist is being loaded which reduces the overall time to parse it (bigger time savings the larger it gets) Changed a number of the plug-ins to better ensure they're only creating internal aspects when needed which reduces the idle memory & can slightly reduce load times Changed how the fast changing parts of the classic skin main window are painted to reduce the re-processing done which lowers the cpu load & impact of painting the window Changed how the artwork in the lyrics & albumart windows are drawn to reduce the time required to initially display the image & reduce the cpu load when resizing the windows Changed the post-setup handling to only check the equaliser on/off handling to determine if non-legacy mode is auto applied or not now that modern skins can be used in either mode so only trying to use the equaliser in non-legacy mode will be checked for (until that's also implemented natively) Fixed a crash on the skin management preference page Fixed a crash due to an incorrect validation on EOF Fixed a crash under WINE if the h264 decoder cannot be obtained when attempting to playback MP4 files Fixed a regression of sorts with the podcast download handling where manually triggered downloads were not being shown as downloaded after a restart (related to changes in the prior build to reduce the re-checking done during feed updates though this was a scenario that was being masked by the prior handling) Fixed the add / refresh of metadata in the local library incorrectly replacing the currently cached artwork when there's no need to as it'd typically negate the whole cache & make things take longer to complete the metadata processing Fixed a number of small memory leaks which depending on the action & changing active focus of WACUP could cause problems over long running instances Fixed incomplete update attempts of the internet radio database (e.g. due to a crash) to now re-trigger the download to avoid later update failures Fixed a deadlock with the local library if getting metadata for a file takes too long whilst ui actions occur that then want to access the database (e.g. getting the length of an avi file whilst closing wacup was triggered & the cancel import dialog wasn't responded to) Fixed the waveform seeker plug-in trying to create new processing threads when WACUP is attempting to close which could in some cases cause a crash during closing Fixed the Geiss visualisation plug-in not having a window icon which could sometimes cause Task Manager to show an empty icon for the running WACUP instance Fixed a ui hang / crash on closing that could occur from some of the play/enqueue local library view into the main playlist handling as well as reducing the time to add them by not re-processing the items Fixed a resource leak when in_mod is requested to process a file which is not something it is able to handle due to file extension re-use of unrelated files Fixed a resource leak when using the Alt+3 / File Info dialog due to the lyrics tab not correctly cleaning up it's background thread whether lyrics exist or not Fixed a painting issue of the classic skin playlist scrollbar when in double-size mode not updating the full scrollbar area when more playlists items area added causing the scrollbar position to change Fixed the waveform seeker window not always updating it's inner window contents as expected on skin related changes Fixed a timing issue that could cause the podcast view to incorrectly indicate there were no feeds (hiding buttons & showing a related status message) when there were known feeds loaded Fixed a display issue on the lyrics tab of the alt+3/file info dialog where it was not always correcting the linebreaks to ensure they appear correctly within the edit box Fixed the priming of the artwork cache not correctly handling things causing the memory needed to maintain copies of the artwork to be doubled & not released until the process completes (e.g. 8MB of cached artwork would leave 8MB of data allocated when it'll never be used nor released when the cache updates during the running instance) Fixed a crash when trying to change the output audio device with the Not So Direct plug-in due to a mis-handling issue with the settings cache Fixed the main window visualisation not entering the expected stopped playback state when a SID file ends & no other file is attempting to be played afterwards (manually stopping did not show this issue) Fixed an issue with priming the artwork cache where it could incorrectly ignore what was known to the cache just after it's been primed if the request for artwork will always be a smaller resolution image than the request being made (e.g. asking for a 600x600 image when the source is always going to be 574x574) Fixed a crash when using the format converter whilst having the preference page for the plug-in still open Fixed a slew of performance issues related to the bookmark handling especially during initial loading if it's a selected library view with a large bookmarks file (e.g. 7.5K of entries which goes from approx. 6 seconds down to a fraction of a second on my dev machine) Fixed some painting issues under Windows 10/11 within the preferences when dark mode is enabled & a custom OS theme has been applied (not a standard OS theme feature without it being patched to work) Fixed an issue that could cause the wrong loader exe to be used (e.g. when going from legacy to non-legacy mode) & reduced what's being checked when using non-legacy mode (makes loading a bit faster) Fixed the Win7Shell plug-in always reading the bookmarks file on loading even if set to not show them in the jumplist Fixed the tooltips on the embedded classic skin windows not always having their positions updated when the window size has changed Fixed the installer not always ensuring that the local VS2019 runtime folder is installed if some of the runtime files are missing Fixed a crash (more likely to be seen only under a debugger) related to the WACUP install checks some of the modern skins are doing Fixed a message handling issue which could cause changing the modern skin colour theme via the menu actions to be double processed Fixed a massive performance issue when trying to use most cPro based modern skins causing the UI to hang (often ending up with it crashing from trying to interact with the windows) due to an issue with the tataki replacement Fixed an issue with the colour theme handling of the skinned scrollbars ending up as black if a number of theme changes are applied Fixed an OS call made by the Win7shell plug-in incorrectly being hooked by the WACUP core which was causing higher cpu load than intended with the checks the plug-in is doing related to the taskbar preview Other small changes related to code optimisation & reducing overall processing overhead & duplication Updated libcurl (libcurl.dll) to 8.0.1 (20 Mar 2023) Updated libdiscid (discid.dll) to 0.6.4 (2 Mar 2023) Updated libopenmpt (in_mod.dll) to 0.6.9.18817 (5 Mar 2023) Updated minizip-ng (zlib.dll) to 3.0.9 (16 Mar 2023) Updated Monkey's Audio (in_ape.dll) to 10.07 (22 Mar 2023) Updated mpg123 (mpg123.dll) to 1.31.3 (19 Mar 2023) Updated unrar (unrar.dll) to 6.2.6 (16 Feb 2023) Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 26 Mar 2023 Updated zlib-ng (zlib.dll) to 2.1.0-devel (6 Mar 2023)