Added official command-line handling support for interacting with the player when using non-legacy mode or native only mode with the 64-bit builds with limited support provided for legacy mode instances (this is not something that has been formally supported in all prior WACUP builds & is why the functionality has been broken for at least 9 months with the beta builds prior to this build being released)
Added an input plug-in based on the recent in_vgm/libvgm solution (v0.51) by Valley Bell with the expected WACUP integration changes (transcoding, unified fileinfo / alt+3 dialog, removing legacy client support, etc)
Added the ability when using non-legacy mode or native only mode with the 64-bit builds to specify multiple items via the command-line handling options related to play / enqueue / enqueue & play (this is also a new addition over what Winamp was able to offer which is why it's not available when using the legacy loading mode)
Added the current running time for the current WACUP instance to a 'Statistics' block on the 'About | Updates' preferences page as sometimes it's useful to know this without forcing WACUP to crash :)
Added a 'duplicate at bottom' action on the playlist editor's send-to menu which is equivalent of the 'enqueue' action that Winamp's send-to menu would show but better reflects the action without the imho confusion of having an 'enqueue' action on there (added based on feedback from discord)
Changed the Milkdrop plug-in to reduce it's base memory usage by ~247KB by changing how some of the default parts for the pixel shaders are read & stored along with doing more to strip comments prior to compilation
Changed some of the file exists handling to reduce the chances of it causing the ui to lock-up when interacting with items that are on an offline mapped network drive share (this is never going to be a 100% fix & there's more that will need to be done but this is a start to at least alleviate loading & some of the more obvious playback related hangs)
Changed how visualisation plug-ins are handled if set to be loaded as WACUP is starting to prevent them blocking loading as much as they are doing at the expense of them appearing slower to load (this may also help with some quirks related to the modern skin engine & how it handles windows created on a different thread from the main ui thread as is the case with visualisation plug-ins)
Changed various aspects of the installer to allow the NSIS script to be used to make the existing version whilst being able to be used to make the 64-bit installer as well as removing the need for a plug-in
Changed the installer to simplify the post-setup updates that might be done so it's now all done in a single action instead of multiple spawned child processes which some of the A/V / test solutions didn't like
Changed the installer to rely less on some of the NSIS plug-ins that can sometimes be flagged as false-positives when used which is a hassle to deal with at times along with resolving some performance issues
Changed the project build settings for debug file generation which is meant to help improve my ability to debug things (the fun of default settings changing between compilers & me missing it until now)
Changed the gen_win10shell plug-in to now use a non-C# based solution which simplifies the WACUP loading process, halves the size of the plug-in & should make things a bit simpler for me with crash reports
Changed the XSPF & WPL playlist handling to no longer rely upon the libexpat based xml.w5s & instead it now uses the pugixml based handling which makes it simpler & helps to remove a need for xml.w5s in 64-bit builds
Changed how libcurl based connections are initialised to better handle the cacert.pem file being missing so it'll attempt to use an OS provided fallback to try & ensure HTTPS connections will still work
Changed how yt-dlp is handled so the 64-bit builds will now be used with the 64-bit WACUP builds (not really needed but it's nicer to just have everything matching when it comes to the bitness of things)
Changed how the active output plug-in is handled to better ensure that it's going to find a valid plug-in to use before it eventually reverts to the built-in null output plug-in (this change should also better handle the main settings file getting wiped vs what's actually been installed instead of assuming a default plug-in will be present because often users do things you don't expect!)
Changed how the Streaming Url (in_url.dll) plug-in handles getting yt-dlp if it's not already present so it goes back to only getting it if needed instead of getting it all of the time (this should help avoid some concurrency issues with the WACUP core & the plug-in both potentially trying to update / download this at the same time)
Changed the flac file handling to attempt to better ensure shared access to a file is possible (this may be the cause of a reported playback failure when waveform seeker is also enabled which might be conflicting with normal playback)
Changed the input plug-ins which don't have actual config dialogs to not report they do/redirect to the about dialog so it's clearer where there's configuration options available (this will not help with 3rd party plug-ins where the Winamp assumption is there is a config method provided no matter)
Changed the SID plug-in to use an embedded preference page (i.e. it appears as a child node under Plug-ins -> Input) & for it to only save out actually changed configuration values from their defaults
Changed the autoplay vs command-line /play handling so it shouldn't cause a double play event to be triggered
Changed the in_xsf plug-in configuration dialogs to not waste as much vertical space & some other misc tweaks
Changed how some of the plug-ins initialise their internal data structures to help reduce the time to initially load the dll along with only allocating / running some initialisation code when it's needed
Changed some of the overall loading process to attempt to minimise the potential of some slow / long running actions happening immediately on start-up which should make WACUP load faster (e.g. an older install with a larger database should be less likely to feel like it's lagging on loading compared to a clean install / small database setup)
Changed IPC_CB_MISC_AA_OPT_CHANGED to not be sent on initial loading of the metadata / albumart component which should prevent the plug-ins monitoring it from doing artwork refreshes unnecessarily on load
Changed the waveform seeker to use a cache to reduce some of the drawing overhead & adjusted the drawing refresh rate to minimise the impact of the plug-in on load time
Changed the lyrics & albumart windows to better ensure they're showing the missing artwork (subject to the configuration to show it or not) on initial loading to avoid the jarring pop-in that can occur (this makes loading a little bit slower but visually is a nicer experience)
Fixed the Settings & Plugins sub-folders for the configured WACUP settings folder not being ensured it exists on loading (this makes WACUP cope a bit better with a user / external tool nuking the settings folder or part of the settings folder without having to re-run the installer)
Fixed the probable cause of a deadlock seen in some setups when the current rating is trying to be queried from the local library whilst other metadata reads are going on at the same time (not 100% sure on this but it's better than before)
Fixed a number of build & initial run issues when compiling the WACUP code for 64-bit builds along with other changes to make it easier (when it happens) to provide a native Windows 64-bit build of WACUP
Fixed Milkdrop's desktop mode not working due to the things it needs not being created as expected when the high contrast theme is being used
Fixed some visual issues when loading WACUP in non-legacy mode & the user is prompted about the issue (e.g. the inner part of the video & main playlist editor show in odd states along with the playlist editor outer frame not being fully drawn once the prompt has closed)
Fixed a crash related to cleaning up after video playback on closing
Fixed the move actions in the JTFE window sometimes getting stuck in a loop
Fixed the installer incorrectly creating it's self backup in the WACUP settings folder if the install is cancelled before it's been completed
Fixed the duration from XSPF playlist not being used on loading these playlists if it's available
Fixed adding new metadata to opus file tags causing a crash due to incorrectly reallocating the memory buffer needed
Fixed the classic skin song ticker text incorrectly using the wraparound mode in triple-size mode when visually the string should fit (the WACUP 5-digit build string showed this which just made it look odd)
Fixed an intermittent issue that would cause playback of some Ogg Vorbis based HTTP streams to either fail (partial or immediate stop of playback) or for it to cause a crash
Fixed some of the playback logging actions not outputting linebreaks (e.g. when using the $crlf() atf method) as well as not being used in some of the preference page previews
Fixed some mod files not playing due to incorrectly handling the response of a check for warnings from the file (e.g. when there's missing external sample files which can still have the file play in a basic mode)
Fixed restoring the last library view not always working (was more obvious when running under WINE but also affected a default 64-bit install)
Fixed the probable cause of WINE theme switching causing WACUP to crash due to incorrectly handling WINE being set to report itself as Windows 10 vs the recent dark mode handling additions present in WACUP
Fixed the sorting of the plug-ins not always placing the currently enabled ones at the top of the list due to a string casing related issue with some of the plug-in names
Fixed the probable cause of the WACUP loader process staying around &/or running at 100% of a cpu core due to a problem with the clean-up of the legacy mode command-line (this seems to have been mostly affecting Windows 7 based installs but could be manifesting on any valid OS install because of variations in C runtime & platform memory handling)
Fixed clicking in the plug-in preference page listviews incorrectly reporting the state of a plug-in has been changed when closing the preferences / change to another preference page when running under WINE
Fixed a number of visual glitches when the media library window is being created including the view glitching for a time in a weird / incorrect size before it appears in the correct state (this took far too long to get to the bottom of but it makes the library window quicker to load along with view switching should feel a bit smoother as there's less duplicate processing & slow paint requests happening)
Fixed the compact time mode formatter not showing the expected time if there are no hours but the time is more then a day as it'd ignore the number of days
Removed installing the libexpat based xml.w5s with the 64-bit installs as there's nothing that uses it (it's still needed with the 32-bit version as the likes of gen_ff, in_mp3 & portables support need it)
Updated libcurl (libcurl.dll) to 7.81.0 (5 Jan 2022)
Updated libexpat (xml.w5s) to 2.4.4 (30 Jan 2022)
Updated libopenmpt (in_mod.dll) to 0.6.1.16764 (30 Jan 2022)
Updated lzma (lzma.dll) to 21.07 (26 Dec 2021)
Updated Monkey's Audio (in_ape.dll) to 7.25 (19 Jan 2021)
Updated Patreon list (31 Jan 2021)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 30 Jan 2022
Updated zlib-ng (zlib.dll) to 2.1.0-devel (29 Jan 2022)