Added an option to the Playback -> Volume tab to allow WACUP's volume slider to control the OS process volume when the option for the output plug-in(s) to control the volume is disabled along with related changes to be able to react to the volume being changed via the OS configuration (e.g. Volume Mixer) so it should remain in synchronisation along with reducing the processing by the preferences
Added an option to the Current Artwork tab of the Play Tracking options so a user provided image can be specified to be used instead of leaving it on the last rendered output when playback has stopped
Added support for setting custom artwork for stream urls via the Alt+3 / File Info dialog Artwork tab (this is currently stored within the artcache folder & is tied to the specific stream url)
Changed to now build everything using the VS2022 compiler (previously using VS2019) along with updating the local copy of the runtime included & related clean-up of the previously needed VS2019 runtime folder (this unfortunately has bumped the installed size of things by around 2MB or by around 0.2MB for the installers which isn't too bad but it's never nice having things increase by that much)
Changed the Streaming Url (in_url) plug-in's yt-dlp handling to try to get the additional supporting deno tool that it now is requiring (am not sure if its actually needed for how in_url is doing things)
Changed the handling to hook file / url opening to do what it can to avoid skinconsortium urls being opened since the domain is now compromised (previously just abandoned) & seems to be serving up malware from reports (WACUP includes all of the files needed for cPro based skins so it doesn't intentionally make any attempts to access its old site but the skins themselves might have links to it)
Changed the NotSoDirect preferences to now be all on a single page instead of split as there's been more height by default to the preferences window for some time which is just enough to do this (it also removes a few KB of code no longer needed to deal with preference tabs)
Changed the streaming playback across a number of the plug-ins in an attempt to better handle the stream connection dropping so the internal handling will try to auto-reconnect to keep it going (there can & will still be some issues so if there are do report them including what the stream involved is but some of the problems are networking related & if not enough data is provided it will drop out!)
Changed libflac to now be built with multi-threaded encoding support per the change to use the VS2022 compiler
Changed the input plug-in handling to reduce the size of the plug-in structure (this doesn't affect x86) & consolidate 2 calls to setup the visualisation handling into a single one
Fixed a regression with the handling of %length% causing it to show either the millisecond or seconds value for some along with re-working the ATF handling to try to avoid this being able to happen again
Fixed some inconsistencies found with the fallback handling to get playing information from some of the input plug-ins whilst looking into problems with the length atf handling
Fixed a crash which can happen when switching from playing an Opus based stream to a local Opus file
Fixed the media library history plug-in not correctly responding to %length_seconds% ATF request if it's being used as a fallback to the local library not being enabled or knowing about the item requested
Fixed a potential hang crash on closing if the messagebox shown related to the main ATF string having changed is still open when WACUP is then instructed to close
Fixed a crash issue when accessing the input plug-in preference page due to an invalid internal look-up from some development work that wasn't meant for the build
Fixed the internal input plug-in cache reset being incorrectly triggered after closing has been started which could cause some input plug-ins to cause a hang on closing when there was no need to call them
Fixed a UI related hang with some of the library playlist interactions from trying to re-determine information that was already known during the start of the action triggered (e.g. some drag+drop calls)
Fixed the classic skin song ticker handling when reverting back to the playing item incorrectly triggering a playlist title refresh for the playing item (this was behind some of the length related changes noted above due to this managing in some instances to get a millisecond value to appear e.g. after having manually seeked within a file)
Fixed the probable cause for some of the local library view interactions causing a main ui thread deadlock to occur (e.g. on view close)
Fixed the recent handling changes around trying to remove the taskbar overlay icon when WACUP is not set to show in taskbar to better ensure the behaviour is only done when actually needed & a bit earlier
Fixed the taskbar preview stopping updating under recent Windows 11 installs due to it triggering the long running handling to stop it updating when the preview has since been closed as it didn't know the preview was still running
Fixed a crash when notifying the local library that replaygain results have been saved into a processed file (the tag saving afaict would've completed ok prior to this) due to an internal api coding issue
Fixed the Ctrl+Tab action for moving between windows for classic skins getting stuck on the last native window if there's no generic skinned windows configured to be shown (e.g. in a 2.x like window mode)
Fixed the remove / missing file checking of the local library not always working when dealing with entries on network based shares causing them to always be reported as still being there as valid file(s)
Fixed the selection / time display in the bottom right corner of the classic skin playlist editor window along with the windowshaded mode flickering during quick repaint requests (more so if docked when moving the main window)
Fixed the bottom of the list area of the classic skin playlist editor window flickering during quick repaint requests (more so if docked when moving the main window) if a partial item aligned with the area due to the no item area fill incorrectly being drawn when it wasn't needed (who knew FillRect will still work if given a negative area to try to fill)
Fixed some additional over painting of the classic skin playlist editor window found whilst looking into issues fixed above which wasn't helping with the flickering issues being seen
Fixed the compressed text resource handling not stripping the BOM when needed which was causing squares to show under WINE for the start of some text blocks
Fixed some plug-in & core initialisation being done when it not needed which was causing some memory allocations for aspects that weren't then being used (e.g. a 1MB allocation for in_addanother.dll)
Fixed the ADLIB/ADPLUG format preference tab not being sized to the preference window size
Fixed some internal menu handling which was potentially not thread safe or causing more memory to be allocated than was really needed
Fixed a small performance issue whilst trying to obtain the last played information for podcast downloads which caused the last local library item cache to be cleared which slowed down other accesses
Fixed a different issue which seems to have been behind some of the podcast view related crashes (mainly when the tooltip was triggered) along with resolving some memory wastage & unwanted re-copying
Fixed dragging some of the child nodes from the media library navigation tree onto the main window or the main playlist editor not working due to the plug-ins not receiving the needed on drop message
Fixed a small performance issue when attempting to determine the settings folder path to use which was using an OS call that was taking comparatively too long vs an alternative that directly returns it
Fixed the handling of %length% when url escaped (e.g. via the HTTP(S) POST feature) often showing as 0:00 in the output due to the escaped string incorrectly being re-processed assuming it's not escaped
Fixed some metadata showing without the last character if they'd been stored as a multi-value unicode ID3v2 field due to some problems with processing the string vs the potential BOM at the start of it
Fixed the customise fast-forward time menu from the next button right-click menu not working correctly along with the dialog when opened for that action not pre-selecting the fast-forward edit control
Fixed some more small performance issues related to how the native plug-ins may add their preference page to avoid it causing small amounts of blocking during loading when they can be deferred to later
Fixed some prior choices of runtime apis used to prefer the variants that are deemed to be more secure whilst also helping to avoid some unwanted memory allocations as well as being slower than desired
Fixed some MP3 files made up of differing elements / weird encoding setups not being handled correctly which could cause them to abort playing or the waveform seeker preview to only partially render it
Fixed the reproducible instances of the playback history logging feature incorrectly double logging the start of streams due to how playback starting vs getting what is the first valid title update (there's still for now the potential for this to happen if the stream takes a lot longer to initially connect than is expected but the changes for this should help out for the majority experiencing this)
Fixed a very weird menu related interaction with the skins sub-menu which can cause an unexpected mouse button down message going to the main window which would then incorrectly trigger mouse capture to occur from it was acting like the user had clicked on the main window which could then either prevent windows from being interacted with (modern skins) or the classic skin main window moving around as though it's trying to avoid allowing the mouse to get close to it
Fixed the classic skin songticker font handling along with related GDI elements sometimes being quickly created & destroyed before it's even been used when the skin is loading
Fixed some of the preference options related to forcing audio only playback not being disabled when the core's video support has been intentionally disabled to better reflect that they're not being used
Fixed SID playback which has been broken for some time & neither I nor anyone else noticed it or took the time to report it *meh*
Fixed the year metadata from SID files not being correctly formed causing junk data to be left as part of the returned string
Fixed the probable cause of some audio artifacting that could occur when using the NotSoYasapi output plug-in (affecting x64 more) at below 100% volume levels or when left/right panning was being applied
Fixed a crash when leaving the Skins preference page due to a problem with the handling of the last search along with restoring the last search (if there was one) when re-opening the preference page
Fixed a timing issue which could cause asynchronous artwork requests to be ignored until the next attempt if the attempt to add the request took too long vs the internal processing thread timeouts
Fixed artwork requests using the "playing" type not always getting back the image data despite it being available when the Streaming Url plug-in is given the request (e.g. while logging YT url playback)
Fixed a small performance issue with the skinned tooltip handling along with re-working the painting of them to avoid some GDI resource allocations
Fixed the Not So Neo output plug-in when set to use the as-is provided channel &/or samplerate &/or bit depth information from what's playing so it'll now reset the output handling to avoid playback output problems
Fixed some of the actions attempting to open into a folder potentially not working due to the internal processing used assuming it's for a file which then breaks some of the sanitising being done (e.g. the download folder for a podcast feed)
Fixed the probable cause of the Playlist File Remover handling not working consistently since build 21640 due to not providing the file path(s) in the manner the OS api being used is expecting them
Fixed how sacad is obtained (used for trying to do online artwork look-up) so it can for now obtain the last native Windows version of the tool so things can still work with WACUP (need to review this)
Fixed some artwork files not being loaded if they are misnamed (e.g. png named as jpg) which could explain some odd reports of prior loading failures
Fixed the HTTP(S) POST preference page showing the default ATF preview response when nothing has been entered by the user along with it incorrectly using the default part from the url if no ATF is output
Fixed some of the issues that could cause a hang / slow behaviour during closing if an attempt to get lyrics from online for what's playing is still in progress & adjusted the services being checked for
Fixed multi-channel AAC playback not outputting all of the channels as expected (especially if the playback preference option to allow surround playback to be attempted was enabled) which should improve things for those working with multi-speaker setups instead of it being incorrectly forced to stereo output mode in most instances
Fixed the spout mode of milkdrop not working for however long as an incorrectly applied setting change to try to get my 1050ti to be able to still render at 4K60 with it enabled completely broke things (the now correctly re-enabled mode tends to have it sitting at around 50fps so using anything more performant than my gpu should be able to hit 60fps with spout mode enabled - it does 4K60 fine if off)
Fixed some of the skinned tooltips not being shown correctly (e.g. text is clipped or the window is sized too small) when the window they're associated to is moved to a monitor with a diffent scaling
Fixed the batch metadata edit dialog incorrectly handling empty typically deemed to be integer values (e.g. for bpm, disc, rating, track, year) which could cause -1 being saved into the file's metadata
Fixed the handling of the update button on the batch metadata edit dialog not properly reflecting if multiple values have been toggled which could prevent the button from being enabled as expected
Other small changes to try to avoid some further memory wastage mostly from re-packing some of the internal structures where feasible & attempts at fixes that may not yet be fully working vs expectation
Updated libcurl (libcurl.dll) to 8.17.0 (5 Nov 2025)
Updated libpng (image.w5s) to 1.6.51 (21 Nov 2025)
Updated libsidplayfp (in_sidious.dll) to 2.15.1 (2 Nov 2025)
Updated Monkey's Audio (in_ape.dll) to 11.88 (24 Nov 2025)
Updated unrar (unrar.dll) to 7.2.2 (20 Nov 2025)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 23 Nov 2025