Added double-size classic playlist editor support & all of the changes needed to fool the classic skin engine to cope with this (whoever thought it a good idea to not do this natively years back when the main window & equaliser windows got it needs a friendly slap)
Added Discord & Twitter preference shortcuts to make it easier to find & setup these now playing update modes (a dedicated quick access preference page is planned once we work out what should go on it & how it should be displayed - please let us know about settings you commonly want to change & struggle to remember where to find them)
Added a replacement Waveform Decoder plug-in which is still based on libsndfile like the plug-in it replaces but resolves a slew of issues (including seeking in multi-GB 32-bit floating point WAV files) to improving metadata support (with more to hopefully follow on that) & Winamp integration (e.g. using the unified Alt+3 dialog instead of a generic messagebox)
Added Ko-fi (https://ko-fi.com/wacupdev) as another means to help financially support the development of WACUP during installation & within the WACUP preferences
Added ability (subject to skin support) via the Modern Skin general preferences tab to control whether the Web Browser features are enabled or not (this is mainly for those who don't like the feature or view it as a security issue as the browser element has negligable impact on loading times)
Added an updated Monkey's Audio input plug-in (in_ape.dll) based off Monkey's Audio v4.71 (unicode support, improved tagging support including using the unified alt+3 dialog & editing of tags!, initial albumart handling & some WACUP integration tweaks come with this over the Winamp 2.x target of original source code)
Added an updated WavPack input plug-in (in_ape.dll) based off WavPack v5.1.0 (not much changed as it was already in a good position from having been part of the Winamp Essentials Pack - a shame that died but WACUP is so much better :) )
Added an initial asynchronous implementation albumart service (albumart.w5s) to get album artwork from files so other plug-ins can then not lock-up the ui (at least as not much as it's been doing in some instances)
Added profiling options to the Advanced preferences page to aid in seeing how long it takes for the loading (via init) and closing (via quit) of the general purpose, input, output & dsp plug-ins as well as the w5s components (this is aimed as a debugging feature but may be useful for some with slow loading / closing when looking at the init & quit methods of the plug-ins)
Added a basic 'Components' plug-in preference page to see those that are installed & what Wasabi services they might be providing (this helped with debugging during taking over the w5s component handling from the native Winamp code)
Added an option to automatically load the current visualisation plug-in on loading instead of waiting for playback to be started (this is useful in some layouts to avoid it looking odd if not immediately starting playback as well as whilst debugging taking over the visualisation plug-in handling)
Added initial support to live load disabled input, general & library (if the replacement media library core plug-in is being used) plug-ins
Added better handling for incomplete & failed podcast downloads so it's a bit easier to see if something potentially went wrong & a retry is needed
Added the ability to show the Windows Explorer context menu for items within the main playlist editor & the media library playlist views which replaces the need for an old / broken plug-in by shaneh
Changed how the general purpose, input, output, visualisation & dsp plug-ins as well as the w5s components are loaded/unloaded to now be done via WACUP code instead of Winamp's native code (this improves the ability of WACUP to prevent certain plug-ins from being loaded to help avoid dll dependency loading issues that can otherwise occur through to enabling a more complete profiling of the plug-ins during init & quit)
Changed the playlist editor when using a modern skin compatible with the v1.3 or newer skin specification to use a freeform styled scrollbar for improved usability and consistency within the look for the skin (using something that's a hacked up classic skin just doesn't cut it!)
Changed where the Milkdrop presets are stored and accessed by default to be in the settings folder instead of the main install folder (this is the easiest way to resolve ratings not being saved without having to run as an administrator & no one should need to run WACUP in that manner!)
Changed the 'Titles | ATF' preferences page to have a larger input field for the ATF string along with a working preview of the output
Changed the default action on the 'Titles | ATF' preferences page to prompt for confirmation before resetting the ATF string to default
Changed the Discord preferences page to have a link to the forum thread which details how to setup WACUP to work with Discord & other information
Changed how curated Milkdrop presets are handled during install to download them only if needed instead of being always included in the installer
Changed the MP3 encoder preset handling to simplify things vs the common usage vs trying to maintain compatibility with existing 5.666 installs
Changed the Skin Manager plug-in to show a folder icon next to pre-extracted folders to make it easier to differentiate them (e.g. if extracted to work on vs also having an original copy of the skin as a wsz/wal/zip)
Changed some of the skin image loading to reduce duplication of images to better ensure only a single image copy is loaded & used for classic skins
Changed the time elapsed indicator on the classic playlist editor window to try to show a h:mm:ss formatted time (if the main option is enabled) to better match other WACUP related changes for time display (for time remaining it will keep using the -mm:ss formatting style due to space restrictions)
Changed the windowshaded playlist editor window to show (if applicable) the queued item position (via the 'q' action) for better consistency
Changed the windowshaded playlist editor real font handling to better fit within the area used with a skinned font to break less skins when that option is enabled via the classic skins preferences page (e.g. removing odd colour matching and overwriting expected borders of the area)
Changed the Waveform Seeker plug-in to fill in the currently played area (if applicable) under the generic waveform for applicable playlist items that cannot be processed to generate a waveform (this should help with usability & interaction with the plug-in for most use cases)
Changed the extraction of skins to be done by WACUP instead of the native handling where possible to help resolve some loading issues with sub-folders within the skin archives & to experiment with a few other things for later WACUP development :)
Changed the in-skin browser handling for the Bento & cPro skins (possibly other modern skins as well) to remove broken urls & use valid landing pages (this should help remove recent issues due to expired domains, etc)
Changed the Big Bento & Bento skins to support the new @HAVE_BROWSER@ value along with -nobrowser versions of the skin xml files (e.g. player-normal-sui.xml vs player-normal-sui-nobrowser.xml) to be able to follow the Web Browser on/off feature control
Changed the Internet Radio plug-in to better ensure there is no duplicated genres shown for the station listing (this is an age old issue with the poor data that stations provide to listing directories - sadly they don't care about such attention to detail which means I have to instead)
Changed how the WACUP build of libcurl is built to resolve dependency loading issues under WINE
Changed how the plug-ins directly using libcurl will now cope without libcurl.dll being able to be loaded (this is related to the above change)
Changed the error handling related to dll loading issues (whether they're missing or having dependency related loading issues) to show more appropriate information as well as now trying to generate a crash report if the problem is non-continuable (i.e. the code will crash anyway)
Changed the ASIO output plug-in to not create its background thread until it is being used for output to save some resources on loading
Changed the saving of the main winamp playlist (winamp.m3u8 in the settings folder) to be WACUP handled which now provides a secondary backup of the file on closing & removes the automatic generation of the legacy winamp.m3u (some old plug-ins look for this which can be re-enabled via the Advanced preferences page if needed)
Changed the layout of the Advanced preferences page to better accommodate new options
Changed some of the internals of the WACUP core to reduce memory usage for shared data between the WACUP plug-ins
Changed some of the previously JTFE provided apis to now be provided via the WACUP core (makes things cleaner)
Changed the podcast plug-in to only load it's feed cache when needed (depending on setup & usage of this feature, this can delay lots of memory being allocated when it's not going to be made use of as well as providing a loading time reduction if updating on start-up is not enabled)
Changed the SID Player (in_sidious.dll) plug-in to delay when it initialises itself to give an approximate 10MB saving of memory if the plug-in is being loaded but never actively used (this also provides a small loading optimisation)
Changed clicking 'config' for the Modern Skin engine (gen_ff.dll) plug-in to go to the preferences node instead of showing a basic or fancy about message
Changed the Album Art (gen_classicart.dll) plug-in to make use of the newly added asynchronous mode for getting the image data to show
Changed the Album Art (gen_classicart.dll) plug-in to limit the image copy it works with to 600x600px which in combination with the asynchronous mode for getting the image data better prevents the plug-in locking up the UI whilst it's trying to render the artwork
Changed the artwork loading on the File Info (Alt+3) dialog to make use of the newly added asynchronous mode for getting the image data to show (there were also some other changes that in general reduce the loading time of the dialog compared to the prior implementation)
Changed the loading of the output plug-ins to (hopefully) only happen when playback is actually needed (this is testing out a loading optimisation so may be reverted if this is found to cause issues)
Changed the priority of output plug-ins attempting to be used if one is not specified or the prior one has been removed (this relates to taking over the handling of output plug-in management so we can be more flexible in how things work going forward)
Changed the Waveform Wrapper (in_wav.dll) to better prevent the original plug-in it wraps from re-saving unchanged values on closing (this was found with the new profiling where this was the worst offending plug-in from just loading & then closing the WACUP instance when nothing would have been done)
Changed some aspects of the loading & closing of the plug-ins to reduce the time taken based on the added profiling feature
Changed the settings cache to prime its copies of the winamp.ini & gen_ml.ini files with all sections instead of doing it on a per section basis as requested to help reduce loading times
Changed the tooltip handling on the plug-in preference pages to show the clipped text (if applicable) & then our information about the plug-in
Changed the IPC_GET_EMBEDIF handling to automatically register the created window into the classic skin's Ctrl+Tab window handling to save having to remember doing it on a per plug-in basis
Changed the IPC_GET_EXTLISTW & IPC_GET_EXTLIST apis to be handled by WACUP which allows known plug-ins with lots of extensions to be suppressed from being shown in the filter list (wparam == 1) response so that when using in the open/save file dialogs it is less likely to break (i.e. potential crash or showing all files despite a filter being selected)
Changed the right-click menu on the podcast 'Downloads' node to show the option to update all of the podcasts if its parented to the podcasts node (I keep clicking on the wrong item so this is to keep me happy : )
Changed the Big Clock plug-in visualisation modes to hopefully look better compared to the prior version due to using a poor upscaling method (as the plug-in has used for ~14 years) which makes it better fit in with the look of other aspects of Winamp/WACUP
Changed now the NDE database files are loaded to remove doing a large memory copy between buffers for a small reduction in loading times
Changed the NDE database loading to be smarter about when its trying to remove whitespace from strings which can make a noticeable reduction in the time to load the related view & query results
Changed the /RESETOUT command-line option to also reset the audio device of the known plug-ins (this is to make it easier to deal with some Windows 10 updates causing the output device id to change & making the DirectSound output plug-in freak out & block loading)
Changed the classic skin smooth window resizing option for the resizeable skinned windows to dock the edge of the window to the screen & other skinned windows so its easier to make a layout that better suits your needs (am debating enabling the smooth window resizing option by default now that we've got consistent snapping of the windows between the two available window sizing modes for classic skins)
Changed the main playlist editor drawing under modern skins to remove an undesirable 2 pixel border from the left edge & to ensure the scrollbar is correctly aligned to the right edge of the window which was wasting 8 pixels of screen space
Changed the handling of the IPC_GETHTTPGETTERW & IPC_GETHTTPGETTER API messages so HTTPS urls should now be correctly handled along with some othe related changes to improve the reliability of handling the download (still more HTTPS related work to go on in other parts of the player)
Changed how podcasts are handled to reduce the complexity in the checking down which could either cause occassional crashes or leave podcasts that had failed still being marked as successfully completed (this also led to the removal of the export -> podcast downloads option from the exporter plug-in as the handling is no longer trying to maintain compatibility with how the original podcasts plug-in worked)
Changed some of the plug-ins to use a new callback method that removes the need to subclass &/or handle some of the main playlist editor menu & WM_COMMAND handling to detect actions in the window (this reduces some of the overhead of the plug-ins & what goes on within the window)
Fixed a memory leak when checking if a file is supported by the current input plug-ins
Fixed the trim ATF method not correctly removing trailing space characters
Fixed the custom fallback artwork handling not live updating correctly due to invalid cache invalidation (needed a restart to be applied)
Fixed the classic albumart plug-in crashing when it gets some unexpected metadata
Fixed the classic albumart plug-in updating to show the wrong item when some of the options were changed & the current selection is meant to be showing rather than the currently playing item
Fixed the classic albumart plug-in not updating as expected when the custom fallback artwork handling is changed via the Artwork preferences page
Fixed the Discord updates being incorrectly limited on the number of characters allowed when using the multi-line support
Fixed the Discord & other ATF based aspects not dealing with emoji type characters correctly (thank you kobochat for reporting)
Fixed the line input plug-in crashing in some setups when attempting to start playback
Fixed some issues with the IPC_SET_PE_WIDTHHEIGHT handling not correctly validating input which could cause some odd sizing of the playlist editor when switching between modern skins back to classic skins (madness I tell thee, madness!)
Fixed some column text alignments in the Audio CD views to better match the rest of the library
Fixed a random crash on close if the Audio CD view was open and a metadata query was in progress
Fixed queued items (via the 'q' action in the main playlist editor, etc) not showing the queued item position if there was no length (this has been a limitation for far too many years & replacing all of the main playlist editor drawing routines for my own now allows this to work right!)
Fixed flickering of highlighted queued or missing file playlist items when doing fast scrolling downwards in the main playlist editor (finally due to the joys of double-buffered painting!)
Fixed beta build download links incorrectly being handled by the in-skin browser which was causing it to fail (and changed the other links on that preferences page to load in the default browser)
Fixed the expansion of @HAVE_LIBRARY@ in modern skins to work with additional parameters following (this helps to also get @HAVE_BROWSER@ working)
Fixed some podcast feeds incorrectly being handled when trying to make a HTTP/2 connection to the feed server so they will now gracefully revert back to a HTTP/1 connection automatically
Fixed all of the reproducible crashes related to the Internet Radio plug-in (e.g. when updating the cache & doing a search at the same time)
Fixed the Internet Radio view incorrectly running a double-search on loading
Fixed the Internet Radio plug-in not always animating the node icon when updating the stations cache
Fixed the Taskbar preview when set to show the current albumart using excessive CPU if the artwork image is high resolution (generally above 600x600px) due to not caching the artwork correctly & needing to re-process the image on every update of the Taskbar preview
Fixed the module plug-in not returning a valid 'family' metadata string
Fixed a shared file metadata failure between TagLib (and potentially other in-WACUP aspects) and reading of the metadata on Monkey's Audio files
Fixed tag.dll (TagLib) not having a version resource to match all other WACUP provided dlls
Fixed some of the plug-ins not updating correctly when artwork for the currently viewed file is deleted
Fixed files supported by the vgmstream input plug-in not generating a waveform via the Waveform Seeker plug-in
Fixed the the Waveform Seeker plug-in acting oddly with the background colour going white briefly when refreshing or changing to the base classic skin due to incorrectly handling the background colour brush used
Fixed the incorrect re-saving of the main winamp playlist (winamp.m3u8 in the settings folder) on closing when no changes had occurred
Fixed some of the media library plug-ins crashing when opened & there was nothing present in the main playlist editor (related to highlighting the currently playing item in the library views)
Fixed the podcast view updating the information pane more often than needed when changing the selection in the view
Fixed a number of crashes when abusing the loading order of the plug-ins from the normally expected loading order
Fixed some random crashes when plug-ins checking information relating to modern skins get incomplete due to the modern skin engine only having been partially loaded (classic skins ftw!)
Fixed the Album Art (gen_classicart.dll) plug-in corrupting the artwork cache (this was much more of an issue with massive artwork e.g. 12600x12600px where it crashes)
Fixed the Album Art (gen_classicart.dll) plug-in not drawing anything within the window or leaving a gap for the artwork in details view mode when no artwork is able to be obtained
Fixed loading issues if youtube-dl & supporting dlls are incomplete due to a crash on loading
Fixed removing a single selection from the excluded file list window not always ensuring the change was correctly saved for the next session
Fixed the embedded windows to correctly maintain minimum dimensions when invalid sizes are applied to the window on loading / programmatic setting
Fixed the occassional corruption of aspects of the skinned windows under classic skins (e.g. the window title)
Fixed the contents of skinned windows sometimes not updating skin change / refresh
Fixed some of the command-line options being massively slow to respond (especially if a ui needed to be displayed)
Fixed the crash reporter not always including the generated Info Tool report
Fixed a crash seen when trying to retrieve CD information when some of the expected information in the Musicbrainz response is not provided
Fixed the installer incorrectly removing the legacy font rendering engine within freetype.wac on subsequent updates (this relates to older modern skins not designed for the Winamp 5.5+ updates)
Fixed some installs not being able to load modern skins if freetype.wac was present the settings cache was enabled (as odd combination of issues working against each other that luckily was able to be patched out this time around)
Fixed some display issues when smooth resizing is enabled in relation to the way the main playlist editor scrollbar is drawn to prevent some odd scaling related artifacts
Fixed not being able to add Apple podcasts the podcasts subdomain instead of the (seemingly now deprecated) itunes subdomain url
Fixed registering global hotkeys not always working causing some to randomly fail or for the configuration to become corrupted
Fixed a sporadic crash on loading by the Winamp core related to the delayed loading of the nsutil.dll supporting library
Fixed the Winamp core not being able to handle the downloading of HTTPS based playlist urls & other associated files
Fixed a crash when allowing any currently downloading podcasts to be cancelled on exit
Fixed the podcast downloads view status column not sorting as expected for items not in the process of being downloaded
Fixed the archive playback plug-in trying to use other input plug-ins which have been intentionally disabled via the preferences
Other misc code clean-up, associated bug fixes during development & all the other developer fun that goes on
Removed the cPro skin update system due to the demise of the skinconsortium website (as WACUP is bundling a modified maintained copy of cPro there's no need to have it checking for updates along with removing the potential security issue with accessing an unmanaged domain)
Updated cacert.pem to latest (15 May 2019)
Updated the Big Bento Modern skins to 1.1.4 (14 Feb 2019)
Updated the cPro (ClassicPro) engine to 2.04 (16 Apr 2019)
Updated expat (xml.w5s) to 2.2.7 (19 Jun 2019)
Updated libcurl (libcurl.dll) to 7.65.1 (5 Jun 2019)
Updated libebur128 (ml_rg.dll) to the latest github commit (17 May 2019)
Updated libflac to the latest github commit (7 Mar 2019)
Updated libjpeg-turbo (image.w5s) to 2.0.2 (14 Feb 2019)
Updated libnghttp2 (libcurl.dll) to 1.39.1 (11 Jun 2019)
Updated libopenmpt (in_mod.dll) to 0.4.5.11626 (27 May 2019)
Updated libopus (libopus.dll) to 1.3.1 (12 Apr 2019)
Updated libpng (image.w5s) to 1.6.37 (14 Apr 2019)
Updated libsndfile to the latest github commit (2 Apr 2019)
Updated openssl (libcurl.dll) to 1.1.1c (28 May 2019)
Updated lzma (lzma.dll) to 19.00 (21 Feb 2019)
Updated minizip (zlib.dll) to 2.8.8 (23 May 2019)
Updated taglib (tag.dll) to the latest github commit (17 May 2019)
Updated unrar (unrar.dll) to 5.71.1 (2 Apr 2019)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 30 Jun 2019