Added an initial Intro Play mode to the Playback preferences page to allow for only playing a specified duration of a playlist entry before automatically going to the next (aka WACUP's gen_intro implementation)
Added some extra error handling related to mp4 video playback decoding failures seen in some of the recent crash reports (rather than crashing it'll hopefully abort playback now)
Added some extra checks to some of the input plug-ins which delay loading their supporting library dll to avoid some of the recent crash reports where the library dlls cannot be found for some reason (still not sure what is going on with these setups as the installer should have correctly installed things but better to be more cautious & self-disable plug-ins if there's an issue than allowing them to crash!)
Added additional options for the Now Playing current artwork saving support to give more control over the saved artwork (e.g. unmodified, kept to the specified size limit or always sized to the size limit whether it's larger or smaller than the set limit)
Added a /RESETCLASSICSKINPOS command-line option (also used by the /REPAIR mode) which will attempt to reset all of the known classic skin window positions back to their defaults (e.g. if going from modern skin to classic skin has messed up / lost windows offscreen & you need a quicker way to get them back than for example using the likes of winspy++ to force them back into view)
Added options in the Library Playlists plug-in to make it easier to import library playlists from another Winamp / WACUP install & have it maintain the displayed filename (which doesn't happen if you just add the folder via the more generic folder / file import option)
Added support to import direct Google Podcast Feed urls (this covers urls using podcasts.google.com/feed/ - if you find others then please let me know so I can look into what's needed to support them)
Added a psuedo debug mode to the Playback -> Equaliser preferences tab for inspecting what is currently set (this is mostly to help with starting to replace the Winamp equaliser handling code for WACUP's)
Added a 'Silence Detection' preferences tab on the root Playback preferences node which is an integrated version of my Silence Detector DSP plug-in (dsp_silence_detect.dll) & allows for doing certain actions based on a configurable amount of digital silence being detected (e.g. restarting the current playlist item if you're listening to a stream & the internet connection drops)
Added some new hookable notification messages for the repeat & shuffle modes being changed to help simplify detecting such changes (for plug-ins updated to detect these messages)
Changed how the 'Stop with fadeout' option works compared to Winamp's behaviour to try not to cause the UI lock-up whilst the fadeout is in-progress
Changed how the Podcast feed updates are handled to reduce the idle resources used for a small memory reduction (it also makes crash reports a bit cleaner for me so win-win)
Changed the Playback Tracking -> Now Playing preference tab to now have the artwork logging related options (as introduced in build 5864) to now be on their own Current Artwork to better accomodate the additional feature options related to it
Changed how the DirectX 9.0c requirement by Milkdrop is handled to now be done when Milkdrop is started instead of relying on the installer to generically do this (i.e. it now won't install a minimal version of the older DirectX 9.0c runtime unless it's actually needed as some would prefer based on feedback received which should improve the initial installation time & resolve a number of false positive issues related to running the DirectX runtime during install)
Changed how the Streaming Source DSP plug-in determines the LAME encoder dll it uses to avoid older versions being used which can & will cause crashes
Changed how some of the metadata requests are being handled to hopefully minimise some of the potential locking issue seen in the crash reports & user feedback
Changed (temporarily) how background titles for main playlist entries are read for UNC based paths to lessen the likely of a title being generated for unavailable shares (more will be done to improve this so it doesn't cause the UI to lock-up for a while if the UNC location cannot be resolved)
Changed the Streaming Source plug-in to use less resources when there are no active streams
Changed how the library playlists view works when there are no playlists to make it more obvious what can be done to create or import playlists to be shown within it
Changed (again) the name of the SNESAmp wrapper plug-in as the SNESAmp plug-in installer generically removes any in_snes* filenames which can remove the WACUP wrapper
Changed more of the standard Winamp APIs to now be handled via WACUP code (this also includes deprecating ones that show no obvious sign of being actively used)
Changed the Next On Stop plug-in to now be directly part of the WACUP core which should also resolve some of the quirks with it & reduces the overhead (e.g. 2 few subclasses & a 12KB size reduction from not being a separate plug-in)
Changed how the clasic skin main window is 'hidden' vs how Winamp handles it to try & avoid it overlapping onto other monitors depending on their orientation (e.g. one above another was more likely to have parts of the window showing on the monitor below it which wasn't the expected behaviour)
Changed how the current playback position is obtained & also provided via the APIs to try to reduce any duplicate processing (this change will hopefully also resolve some of the deadlocks that have been happening from the crash reports)
Changed the video window & support to not be created if there are no compatible input plug-ins present reporting video playback support on start-up
Changed the icon provided by the original Winamp process to now be the WACUP icon as per a user request to make things more consistent in the task manager & volume mixer for WACUP
Changed where the original Winamp notification area icons are stored / accessed from to be part of the shared resources dll & related changes to support this (e.g. with the agent mode)
Changed how the notification area icons are loaded to work better on higher resolution setups (this means that the higher resolution version of the icon can be used instead of it picking the smallest & the OS upscaling which makes the icon look blurrier than it should be)
Changed the skins menu (all 3 instances of it) to now be completely managed via WACUP code instead of relying on the Winamp core & then having the partially integrated Skin Mananger plug-in re-processing the menu items from Winamp (this should make the skins menu a bit quicker to load as well as removing some of the hooking that was needed which provides a small reduction in overall message processing)
Changed some more of the menu actions to be handled via WACUP code along with fixing some missing / incomplete handling found during testing
Changed some of the menu handling to de-duplicate things between the 'main' & the 'modern' menu resources where the same sub-menus were duplicated to instead be done in a shared manner (slightly less resources & all of that)
Changed some of the integration of the Three Mode Repeat plug-in in preparation for it being merged into the WACUP core (which will be completed when the main window drawing is taken over!)
Fixed a compatibility issue related to the local library (ml_local) plug-in & how some IPC_HOOK_TITLESW messages are sent which could cause a crash to occur for some
Fixed the probable cause of a library history view updating related crash
Fixed a modern skin loading crash due to a conflict with a patched method
Fixed an issue seen with trying to determine a file types extension that could cause a crash to occur
Fixed a crash seen due to recursively loading a folder returned from a shortcut lnk file
Fixed the prebuffer value for Not So Direct not being correctly read in on loading if it's been changed
Fixed a crash on closing when one of the WACUP output plug-ins with an integrated preference page is the current page when the preferences window is open
Fixed the library history plug-in sometimes trying to handle playback stopping events even if it's set to off via the preferences (a missing logic check)
Fixed some internal path based checks within some of the plug-ins not being as robust as needed
Fixed an issue with the Podcast preferences page that could sometimes prevent the update interval from being changed
Fixed an issue with the artwork resizing api where it might not generate the image at the specified limit & instead always output as a 600x600 image
Fixed the duration of playlist items added into the main playlist editor when dragging a folder onto it being read when not required to be read due to the current playlist title reading settings (e.g. when set to only read them on playback) which should improve the loading time for large folders compared to the prior build & removes some duplicate processing that was going in on the default title reading mode
Fixed the Not So Direct output plug-in sometimes causing a crash on closing if there's been a playback related issue earlier on during the running instance
Fixed the Not So Direct output plug-in not correctly handling higher audio channel counts (e.g. 7.1) & also some weirder arrangements as expected (e.g. when using the Matrix Mixer output plug-in which will likely be added to WACUP in the not too distant future)
Fixed a number of issues reported & seen with the classic skin smooth resizing mode where the window being resized / moved would not snap or snap in an expected manner to the other windows
Fixed Discord Rich Text Presence updates failing if the main title line is generated as a single character string (changes made will not ensure this is at least 2 characters long to work)
Fixed a main playlist editor painting issue where the background for the dead space wouldn't be correctly drawn at specific sizes due to how the area vs number of playlist items is calculated
Fixed issues with processing UTF-8 encoded lyrics data that could cause a crash / hang or gibberish to be displayed
Fixed the internal lyrics api not reporting the correct generated length of the lyrics string to display which could appear as an ellipse / random characters in the lyrics window
Fixed the possible cause of the Streaming Source plug-in causing a deadlock on early starting of the stream whilst the preferences page is currently being viewed
Fixed a number of causes of invalid parameter related crashes from the submitted crash reports
Fixed some of the slowness with scrolling actions with the Lyrics window by resolving a caching issue (more needs to be done as certain artwork & lyrics combinations are still far too slow / use too much CPU on updating the window contents)
Fixed a crash when loading the Streaming Source DSP plug-in if the LAME encoder dll cannot be found (this also adjusts some of the handling so it'll not cause a deadlock when then trying to start the stream)
Fixed the inner contents of the skinned about window not always showing due to not being set to always be visible
Fixed the probable cause of a compatibility issue between some of the visualisation plug-ins & modern skins on loading where the visible / active state of the visualisation plug-in is changed by the skin (still not 100% sure that the changes for this won't break anything else)
Fixed the probable cause of an issue seen with some crash reports where plug-in loading tries to load an invalid instance from the internal plug-in list (still not 100% sure about this as I've not been able to replicate this very occassional issue seen within the crash reports)
Fixed the probable cause of toggling the time remaining & mini-vis modes in the classic skin main window not being correctly preserved across instances
Fixed where possible the random filename generation methods sometimes incorrectly creating an empty .tmp file (e.g. would more likely occur with library playlists)
Fixed the probable cause of the podcasts view sometimes locking up on loading despite earlier attempts to avoid this
Fixed long tooltips in the Podcasts & Download views not being correctly clipped to avoid junk characters after the added ellipse
Fixed some higher bitrate files not starting to be played as expected when using NotSoASIO due to a lower than needed internal buffer
Fixed some more of the reproducible issues when trying to use NotSoASIO which would cause playback failure or crashes (it's still unstable but that seems to be more audio driver related from what I can test)
Fixed the possible cause of a hang on closing seen (likely related to the HTTP POST support & connection issues)
Fixed the close button tooltip on the generic classic skinned windows not being correctly positioned in double-size mode
Fixed the close button tooltip on the classic skinnned video window not being shown when using the non-dedicated window
Fixed a window sizing issue with Milkdrop & some modern skins where the outer window can be resized to be too small which would cause Milkdrop to self-close making it hard to resize the window to show
Fixed DSP & Visualisation plug-ins which have been hard-blocked in the WACUP core still showing as loadable via the respective preferences page
Fixed an occassional issue where M4A / MP4 based files will not always play despite the input plug-in being available & the file does exist
Fixed the 'formatinformation' metadata not being queried correctly with it often showing the generic value instead of the per plug-in details
Fixed a skin loading / changing related crash issue (seen with the rescinded beta build 5984 but might have been going on with older builds)
Fixed trying to set the taskbar text causing a crash when running in a super reduced install where a minimum number of plug-ins are enabled
Fixed some more quirks with the classic skin window snapping for windows snapped on the left & top edges which weren't snapping on the bottom & right edges with other windows
Fixed changing the pinned taskbar icon to use the Winamp icon not showing the correct icon when WACUP is not running (toggling the icon preference option is needed to apply this or re-pin WACUP as needed)
Fixed the library smart view export menu items conflicting with the menu ids of other actions & either causing an attempted smart view export &/or blocking the intended action (a better fix will come when the media library core is replaced with the WACUP provided version)
Fixed the IPC_OPEN_URL handling not working in all scenarios
Fixed an issue seen with some of the ML_IPC_GETTREE calls when the downloads node was set as a child of the podcast node in the library window where the results would stop after the podcast node (not sure how long its been doing this but correctly setting the podcast node to indicate it has children fixes this API response)
Fixed a lock-up that can occur when toggling classic skin double-size mode & WACUP trying to apply the new window position to a generic skinned window that was not created on the main UI thread (e.g. with Milkdrop)
Fixed the reproducible issues with toggling classic skin double-size mode so that all supported skinned windows should now maintain their relative positioning
Fixed the reproducible issues with classic skin window placement going wrong when doing classic -> modern -> close wacup -> modern -> classic (there is likely to be more that need fixing but it generally requires the plug-in to be fixed to avoid saving / restoring invalid window positions)
Other small changes whilst trying to take over more of the Winamp APIs to be handled by WACUP as well as adjustments to the WACUP build process to save me some time when doing releases :)
Updated brotli (libcurl.dll) to 1.0.9 (27 Aug 2020)
Updated discord-rpc (gen_yule.dll) to latest community updates to try to resolve some hang issues occuring with it
Updated installer to be built with NSIS 3.06.1 (31 Jul 2020) which marks the 20th anniversary of NSIS!
Updated libcurl (libcurl.dll) to 7.72.0 (19 Aug 2020)
Updated libopenmpt (in_mod.dll) to 0.5.1.13351 (26 Jul 2020)
Updated libsndfile (libsndfile.dll) to 1.0.29 (15 Aug 2020)
Updated mpg123 (mpg123.dll) to 1.26.3 (17 Jul 2020)
Updated Monkey's Audio (in_ape.dll) to 5.54 (24 Aug 2020)
Updated Patreon list
Updated the bundled VS2017 UCRT for older Windows releases
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 22 Aug 2020
Updated zlib-ng (zlib.dll) to latest re-based update (23 Aug 2020)