Added the ability to determine if WACUP only shows in the System Media Transport Control (SMTC) integration on appropriate Windows 10 installs when it's not the active program (this is also now the default behaviour due to feedback related to the OS provided action overlapping too much of the WACUP instance when working with it at the time)
Added a 'Windows 10' preferences page so it's easier to disable the options related to the Windows 10 Integration plug-in if appropriate (this also adds an option to disable the SMTC feature in the plug-in though completely disabling the plug-in is the preferred option via the General Purpose plug-in preferences page)
Adding the currently stored skin into the crash report log file so it's easier for me to see if it's using an obviously known 'bad' skin (e.g. a modern skin that keeps throwing divide by zero errors)
Added an option on the 'General' preferences page to control how the main right-click bookmark menus are handled when clicked with respect to playing, enqueuing or enqueue & playing as you may need
Added support for the 'browser next / previous' actions (e.g. those found on a mouse with additional buttons) to be handled by the hotkeys plug-ins which can be useful for moving forward / backwards in the main playlist or controlling the volume or any other available hotkey actions (note: this may not work consistently as a global hotkey depending on what other programs are possibly handling these actions)
Added an option on the new 'Shuffle' preferences page for controlling restoring the shuffle table between sessions for those not happy with this deviation from what Winamp did (it is enabled by default as minimising repeating plays of playlist items until the playlist has completed naturally is better & resolves a long standing complaint that Winamp would repeat files since there was no cross-session info)
Added initial support for natural sorting of string values (which relates to numbers within a string being interpreted as a sequence rather than their character value) such as within playlist titles or local library results to better match user expectations & the supported versions of Windows (if none of that makes sense, it should make values with both text + numbers in them sort in an expected manner)
Changed some of the plug-in initialisation handling to better contend with (mostly older) plug-ins having issues & failing on loading which then causes WACUP to crash on loading
Changed the crash reporter to better report .NET runtime crashes (e.g. win10shell)
Changed some of the error handling in the Not So Asio output plug-in to try to minimise the crashes which keep occuring with it (am not expecting this to help but it's an attempt)
Changed how the older IPC_FORMAT_TITLE API is handled in relation to older plug-ins trying to use it to try to reduce the crashes seen related due to them passing incomplete data
Changed to not send 'ispodcast' to the input plug-ins as this is causing issues for some of the input plug-ins in relation to how it first accesses the file & cause a crash (this value is only meant to be sent to the local library plug-in & this change should resolve some of the odd crashes being experienced)
Changed how the shared metadata service treats 'streammetadata' in relation to how the input plug-ins are then directly queried
Changed how the internal ATF processing is done to reduce duplicate metadata queries being made to the shared metadata service &/or the input plug-ins depending on what is supported (this is primarily to reduce the amount of additional processing done as well as reducing the calls to the input plug-ins on fallback which for some can be slow to respond &/or cause stability issues based on some crash reports)
Changed the Audio CD, Archive Playback & Playlist Seperator input plug-ins to no longer rely upon subclassing the main WACUP window to do some of their integration (e.g. live menu updating)
Changed the Global Hotkeys & Taskbar Integration (Win7shell) plug-in to now no longer rely upon subclassing the main WACUP window due to the WACUP core calling it as needed for some of the required messages
Changed the Repeater & Undo plug-ins to lower the number of specific messages it's attempting to handle when subclassing the main WACUP window (still a bit more to do to be able to remove the subclass)
Changed the Format Converter plug-in to now no longer rely upon subclassing the main WACUP window for the handling of the API messages it implements
Changed the Bookmarks, Exporter & History, replacement Local Library & Playlists library plug-ins to no longer rely upon subclassing the main WACUP window to do some of their integration (e.g. detecting file changes)
Changed the default classic skin window positions with a new install to better show off some of the WACUP additions whilst reducing initial positioning overlaps based on recent feedback
Changed the /RESETCLASSICSKINPOS command-line option to also reset the double-size option to off
Changed the /RESETCLASSICSKINPOS & /REPAIR command-line options to then restart WACUP once the action has been completed (based on feedback received restarting is expected)
Changed the installer to better handle scenarios when the WACUP core dll cannot be updated (still not determine why this is happening for some) so it will fail gracefully sooner in the update process
Changed the IPC_GET_HMENU api to now also provide the menus for the main player button context menus (i.e. right-click menu on the play button)
Changed the majority of the WM_WA_IPC API messages that the Modern Skin engine (gen_ff.dll) sends to now be processed directly without going to the main window handler to see if it'll help resolve some of the weirder ui interaction issues (e.g. accessing menus triggering stack overflow crashes & possibly the embedding of the generically skinned windows causing random crashes for some setups more than others)
Changed the installer to check for ReactOS to prevent those inquisitive enough to try to do it from hitting the issues that are present (mostly due to it supporting a Windows XP level of API but WACUP relies upon a number of required Vista & newer APIs)
Changed more of the WACUP specific plug-ins & also parts of the core to move away from SendMessage(..) based API calls for direct usage where possible whilst still offering support for the SendMessage APIs
Changed the installer checks to better handle updating from an old 2019 era WACUP preview build to the current late 2020 / early 2021 builds so it's not re-extracting the Winamp installer when not required
Changed how the main right-click & windows (modern skin specific) menus are handled with the 'media library' entry to hopefully avoid some reported instances of the menu item appearing at the top of the menu (this should also gracefully get out of the way if the legacy media library plug-in is being used to avoid duplicate menu items)
Changed how the artwork cache is handled between sessions to now attempt to maintain it which depending on the usage can improve the initial loading experience to reduce some artwork related aspects being slow to initially render
Changed the podcast plug-in to automatically hide the info are with in the podcast library view & the the view layout options on it's related preferences page when running under WINE (this is to help avoid some stability issues seen with this feature on WINE related to the embedded browser mode used for the info pane)
Changed the handling of crash reports from WINE installs to make them easier to detect from those from Windows installs
Changed the shuffle related options on the 'Playlist' preferences page to now be on their own preferences page as a child of the 'Playlist' node
Changed the installer to help complete the transition away from using the Nullsoft DirectSound & WaveOut output plug-ins over to the WACUP equivalents of Not So Direct & Not So Wavey (the prior 68x0 builds only removed the Nullsoft plug-ins if they were not found to be the currently used output plug-in whereas this change will remove them & set the active output plug-in to the appropriate equivalent)
Changed the initialisation order of the Taskbar Integration (Win7shell) plug-in to minimise a tangible delay experienced when the plug-in is enabled (nothing revolutionary on the time saved but the delay was enough to be noticeable when looking for it at around 20-30ms on my development install)
Changed how visualisation plug-ins are handled to better ensure that high resolution timers (needed to ensure a more consistent frame rate) are used when one (or more) is running
Changed the library history plug-in to better cache some of the values it displays to avoid repeat processing for a small performance improvement with the responsiveness of the view
Changed the 'vorbis comment tag' tab (for FLAC & Vorbis files) on the alt+3 dialog to now sort the metadata to better match with the 'raw metadata' tab
Fixed the probable cause of a deadlock seen in a crash report related to the Not So Direct output plug-in
Fixed the probable cause of a deadlock seen in a crash report related to the Not So Wavey output plug-in
Fixed the crash reporter not recognising running on Windows 8 with the OS compatiblity mode being enabled
Fixed the probable cause of a crash on opening the output plug-in preferences page (if this still happens then it's most likely an issue related to the atsurround output plug-in)
Fixed the probable cause of a crash within the NDE handling seen in a number of crash reports over the past two builds due to possible corruption / incomplete loading of the file
Fixed the replacement local library plug-in sometimes incorrectly handling updating the current view cache when removing items from the view
Fixed the initial processing of urls by the Streaming Url Processor (e.g. YouTube playlist links) causing WACUP to be unresponsive & sometimes triggering the crash reporter (it now should keep the program in a more responsive manner along with altering the playlist entry to indicate that something is happening compared to before)
Fixed the installer not removing the existing Win7Shell & Win10Shell plug-ins when updating which could cause post-update related failures due to internal api mis-matches
Fixed the probable cause of a crash within the settings cache when trying to read in some of the settings
Fixed the internet radio plug-in not always waiting for the first run download to complete before its quit() has completed which could cause a crash if the download was still in progress for some setups
Fixed a conflict with how the generically skin windows are handled vs the overall window positions & always on top mode under a classic skin that has been causing a hang with some setups
Fixed a number of issues which meant the MP4 Demuxer plug-in wasn't as thread safe as it should have been (this is behind a lot of the crashes seen with the 68x0 preview builds)
Fixed the probable causes of some hangs experienced related to their playback threads not relenquishing correctly
Fixed a massive regression in the performance when accessing MP4 based files especially those with artwork to show
Fixed a crash when trying to read in all items from an ini file section (this was seen with the Audio Capture plug-in)
Fixed placement of the built-in window positioning on loading to minimise the chance of them going off-screen if something went wrong during the prior instance so they should re-appear on the primary monitor
Fixed shift + left/right when playback is paused (along with shift + click on the previous & next buttons) not changing the current playback position as expected (under classic skins the seekbar won't update but this is something that'll be resolved when I take over the drawing of the classic main window & is currently due to a disconnect between the Winamp core & what WACUP is doing for playback handling)
Fixed an issue introduced before the 68xx installers which was sometimes preventing a sensible install path being set when checking to use the portable install type
Fixed a timing issue that could cause the Streaming Url Processor plug-in to crash on exit if it was processing an url request at the time
Fixed a timing issue that could prevent the History plug-in from being able to save the current playback position for the resume option when a file is intentionally stopped including it being paused
Fixed a regression preventing VGM files going to the VGM input plug-in instead of the vgmstream input plug-in (the fun of inconsistent / unofficial namings of files to do with video game based formats)
Fixed the tooltip in the Waveform Seeker window causing the window to be brought to the top & overlapping other windows
Fixed a crash on playback if the played history database (or any of the NDE based database files) has become corrupted thought it won't help to recover any data which may have been in the database file(s)
Fixed a performance regression with Milkdrop that's existed for over a year which has been preventing it from running at the desired frame rate (if the hardware can do it) or just running 10-20% below the specified frame rate irrespective of hardware capabilities
Fixed a number of small incompatibilities with some of the older plug-ins that are trying to be used to either gracefully fail (since they expect Winamp specific code layouts for things) or just because they send an invalid response (which also applies to when being used under a plain Winamp install)
Fixed the current main playlist edit item not being correctly scrolled into view during loading
Fixed the media library window when using the replacement media library core getting closed if WACUP is closed in a minimised state when using a classic skin (modern skins might still be funky but the modern skin engine also doesn't support starting minimised correctly)
Fixed a crash & a parameter validation issue during live editing of the ATF $decode(..) method which should now ensure the final parameter is provided
Fixed the current working directory not being correctly restored between sessions (& also reduced the memory overhead for the value when WACUP is running)
Fixed a visual regression with Milkdrop introduced when reducing some of the processing done which was not needed
Fixed the video window right-click menu not showing the correct one when using the simple window mode
Fixed some quirks with the selection tracking mode in the classic artwork & lyrics windows where it'd either show the wrong information briefly or completely (as per the lyrics plug-in) or trigger an update that would make the artwork aspect flicker due to it being removed & then re-drawn at a later time (more noticeable at times during loading where it could appear & disappear a few times)
Fixed the installer not always installing the supporting library for the MP4 Demuxer input plug-in when creating a minimal WACUP install
Fixed the reproducible issues with the video support being disabled & causing the classic skin main window not react after a first install / clearing out of the relevant settings
Fixed the reproducible causes of the Not So Wavey output plug-in sometimes deadlocking either on track change or if WACUP is set to resumes playback on start-up
Fixed disabling the info area in the podcast library view not immediately being hidden without manually resizing the library view
Fixed the lyrics window not setting the 'no lyrics found' message correctly when selection tracking & no lyrics could be found
Fixed some crashes seen in relation to the Get/Put ATF methods due to incorrect parameter validation
Fixed stopping an already paused SID (Commodore 64 Music File) taking a few seconds to respond to the request
Fixed the cause of the WASAPI output plug-in not allowing the main window vis to run due to an incorrect value provided when the output is being opened & that success of that is reported to the WACUP core
Fixed the possible cause of a crash seen in some setups when adding items related to local files into the main playlist
Fixed the about window getting hidden behind the main window of modern skins
Fixed the Waveform Decoder (in_wave.dll) plug-in not loading due to a missing dependency (mpg123.dll) against libsndfile.dll due to the installer not correctly handling that specific install type (if the OpenMPT Module Decoder or vgmstream input plug-ins were also being installed then this wasn't an issue - installers can be a pain to get done correctly at times if you forget about the dll dependencies)
Fixed the Ctrl+Alt+End global hotkey not working as expected (the default actions is to stop but it was toggling next on stop) due to the side effects of a workaround related to classic skin windowshading
Fixed the edit playlist entry dialog to focus & pre-select the text in the new entry field on opening instead of focusing the browse button
Fixed editing the 'comment' field in FLAC & Vorbis files when there's already a 'description' field not seeming to update the field on save
Fixed the 'comment' handling from ID3v2 tags to only provide the basic COMM field instead of returning any COMM field if there's not the basic one (this better aligns with user expectations & in_mp3's handling)
Fixed the shift+e batch metadata editing dialog in the main playlist editor crashing when trying to apply changes due to a number of issues in some of input plug-ins as well as how the local library plug-ins were accepting the strings to be applied (at least I hope this is fixed as my tests no longer crash but I'm not 100% certain for those that have been experiencing this issue for a number of the recent builds)
Fixed the probable causes of some quirks related to the shuffle table being incorrectly maintained between sessions when it's not meant to be (there is still some more refinement to follow including changing it to not default to the first item when a new playlist is created)
Removed the now no longer required crash fix patches related to the Nullsoft DirectSound & WaveOut output plug-ins
Removed a number of dll exports from the WACUP core dll which are no longer applicable / needed to export giving a 2KB size reduction
Updated cacert.pem to latest (19 Jan 2021)
Updated libjpeg-turbo (image.w5s) to 2.1 Beta 1 (25 Nov 2020) + latest Git commit up to 21 Jan 2021
Updated libopenmpt (in_mod.dll) to 0.5.5.14111 (31 Jan 2021)
Updated libsidplayfp (in_sidious.dll) to 2.0.5 (24 Oct 2020)
Updated libsndfile (libsndfile.dll) to 1.0.31 (24 Jan 2021)
Updated minizip-ng formerly called minizip (zlib.dll) to 3.0.0 (24 Jan 2021)
Updated Monkey's Audio (in_ape.dll) to 6.09 (30 Jan 2021)
Updated mpg123 (mpg123.dll) to 1.26.4 (24 Dec 2020)
Updated Patreon list (31 Jan 2021)
Updated rapidjson to the latest Git commit from 6 Jan 2021
Updated taglib (tag.dll) to 1.12.0 beta 2 (23 Jan 2021)
Updated unrar (unrar.dll) to 6.0.3 (1 Dec 2020)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 25 Jan 2021
Updated WavPack (in_wv.dll) to 5.4.0 (10 Jan 2021)
Updated zlib-ng (zlib.dll) to latest re-based update (29 Jan 2021)