Added options to the lyrics plug-in so the temp cache can be cleared immediately or everytime that WACUP is being closed
Added an option to the Enhancer plug-in so it can now be set to not show its window on initial loading whilst still running
Added a prompt when attempting to open more than a few folders all at the same time to avoid if wanted opening many folders
Added known issues links to the About preference page as almost no one seems to find the link that's on the download pages!
Added an option to the playlist preferences page to keep the current playing item centered within the main playlist view
Added some ini only options for now that allow for experimenting with customing the discord playback images via user urls
Changed the web connection handling to remove some of the debugging checking out DNS being a cause of connection issues
Changed some of the internal calls to refresh the main playlist items to prioritise the current item where appropriate
Changed the crash reporter to give a better indication if post-release plug-ins were applied or if the action failed
Changed the handling of getting metadata during modern skin loading to avoid ui hangs for files on offline network shares
Changed now the local library plug-ins deals with handling maintaining filter selections to avoid it blocking on closing
Changed the OS api used for folder enumeration to one that can provide a small saving in the time needed to processing
Changed the IPC_GETVUDATAFUNC related handling so passing -1 will now return the peak across all of the reported channels
Changed batch reading metadata from files to avoid some repeated attempts to open the files via taglib when it had failed which is done to help avoid some reprocessing which can reduce issues with network shares along with reducing some of the time it takes to process local library metadata refreshes for files its known not to handle (e.g. most video game related formats)
Changed the history playback tracking saving to do a one time reprocessing to find & remove any duplicated playback entries
Changed to use commas instead of spaces to separate duplicate metadata fields when metadata is read from a range of files which will require the local library to be refreshed for files stored within it for the change to apply if applicable to the files being used
Changed how duplicates in the local library db, exclusion list, etc are determined to use a faster method which saves around half a second when checking a 575K entry local library database with my setup
Changed the history plug-in to leverage the pre closing message to try to get ahead of things to avoid closing problems
Changed the playlist reading & writing to make better use of buffering which helps reduce the time to read & write them (e.g. this helps shave another 30ms from saving out a 251K entry main playlist)
Changed how the native input plug-ins build their supported file extension list to use a shared method & save some memory
Changed around a bunch of things internally in the core dll to help reduce its size such as altering when initialisation is done to help reduce load time & memory usage to avoid allocating memory not needed & removing some debugging code not intended for the public builds
Changed the crash reporter help message to try to make it more obvious to check the known issues with repeated crashes
Changed the modern skin settings file (studio.xnf) saving to make better use of buffering to reduce the time it takes to write the file by adjusting what happens in the hook already inplace to allow for backups of the file to be created prior to the gen_ff plug-in then doing whatever it does to create the file
Changed a whole bunch of the internals to reduce call overheads as well as reducing the size of a number of the dlls
Changed the Win7shell plug-in to now use the image selection filter from the core instead of using it's own instance
Changed some more of the main playlist loading to save a bit more time by avoiding checks that are known to not be needed
Changed the way WINE is internally detected to reduce some code duplication related to isolating the crash reporter calls
Changed 'Show first selected in Playlist Editor' send-to menu to now be done by the core instead of via the JTFE plug-in
Changed some more of the internal handling to move away from the wasabi based services for smaller code & less overhead
Changed the milkdrop plug-in preferences to try to display what the monitor connected to the display adapter is which might make it easier to work things out when using multiple monitor setups
Fixed the Win10Shell / SMTC related crashing issue due to applying a change after misunderstanding some API documentation
Fixed the handling to get post-release plug-ins to quickly fix issues (like above) failing on the new vs old version check
Fixed probable cause of an internal api call related to the main playlist not working well related to multi-threaded usage
Fixed an occassional crash when SID files are being queried for metadata during some of the multi-threaded based actions
Fixed the Win7Shell plug-in not properly checking for hung threads on closing along with not using the pre-closing message
Fixed a random hang during closing if any CD drives were enabled in the running instance but no drive contents were present
Fixed some MP4 based files not reacting to seeking as expected due to the length information not being stored where expected
Fixed the reproducible issues related to the multi-vis handling though it might require re-applying your choices to fix it
Fixed a crash when trying to generate a fallback set of artist & title for any metadata requests where that's not yet found
Fixed probable cause of a deadlock on stopping playback due to the main vis thread conflicting with the output plug-in calls
Fixed the error handling around getting bad strings in some of the db comparison calls being processed when they shouldn't
Fixed the likely cause of a hang on stopping when using the audio capture mode due to still sending audio when stop is called
Fixed crashes on closing due to the clean-up of the folder monitor implementation especially when handling multiple folders
Fixed the likely reason behind some of the random crashes with the MP4 handling especially when used via the in_url plug-in
Fixed some issues related to the output plug-ins trying to be called when process closing has started to avoid them crashing
Fixed having shuffle enabled & manually playing an item not then going back to the prior playlist item as expected from this
Fixed the child nodes within the grouped playlist nodes in the navigation tree not being able to be dragged to new positions
Fixed the '(no )' local library filter item not being correctly maintained if selected between instances of the view
Fixed the probable cause of some local library metadata refresh / updates not storing / removing empty values as expected
Fixed a problem with reading / updating local library metadata when there's no title metadata also clearing the artist field
Fixed reading metadata from MPC based files not being as fast as it could be due to not caching the file between the requests
Fixed the handling around trying to load a library playlist during program starting not working & it leaving an empty playlist which will require going to the Autoplay preference page & reselecting the wanted playlist if using this feature
Fixed the lyrics cache not being purged periodically to help prevent it constantly growing & causing file storage problems
Fixed a performance issue with the processing of playlists which could cause large ones to make WACUP take forever to load
Fixed a crash when trying to use the open folder action & multiple requests are made from different threads at the same time
Fixed a potential hang on closing if the history plug-in is queried for metadata whilst process closing has been started
Fixed a crash when trying to save out file metadata changes for some file types due to a bug when comparing basic genre strings
Fixed the enqueue & play actions incorrectly picking a random item from what has been added when shuffle mode is disabled
Fixed a performance issue with the saving out of the shuffle table (e.g. from 630ms to 70ms for a 251K entry main playlist)
Fixed a small performance issue with the skinned button painting where it would re-process some of the shared information
Fixed a dll compilation vs linking issue which could prevent some of the DirectSound aspects being enabled in the preferences
Fixed a dll loading conflict with the FLAC encoder plug-in vs the potential for multiple libflac.dll being found on loading
Fixed a possible crash issue when trying to load the Output plug-in preference page vs some combinations of output plug-ins
Fixed an issue with the processing of notification area icon packs which could cause the preference page to fail to load
Fixed a small performance issue when verifying the origin of plug-ins during loading working on ones that didn't require it
Fixed the settings cache not being used during early process initialisation which caused it take a bit longer than expected
Fixed the installer not always working as expected if it happened to crash from a bad / broken test build vs helper dlls
Fixed another issue with the timing of some of the dll delay loading to avoid random crashes especially on finishing setup
Fixed the lyrics plug-in & to a lesser extent the albumart window trying to update their window too often when the main playlist is empty which would manifest as a slow / laggy ui & high cpu loads
Fixed an overallocation of memory by some of the background threads (e.g. audio cd checking for metadata) which caused a higher base memory usage to be observed under the profiling tools than was needed
Fixed an issue with clearing the text of the podcast views status text when checking for podcast updates has been completed
Fixed a small performance issue with the processing of playlist items when sorting by the directory they are found within
Fixed tabbing within the preferences window not working correctly due to the OS dialog manager not being correctly used
Fixed a patch which could cause the active modern skin window frame to not show as focused when clicking within the frame
Fixed all of the reproducible issues with modern skins due to bugs in the region handling not doing as gen_ff was expecting (e.g. the top left / right edges of most of the WinampXP skin windows weren't clipped correctly to provide rounded windows)
Fixed finding extensions for legacy ansi paths not working correctly which could affect stream playback & custom extensions
Fixed some of the string conversion methods not always null terminating the converted string causing some random issues
Fixed the discord feature from the yule log plug-in triggering a crash either on loading or shortly after playback starts
Fixed some more code duplication issue along with code being enabled in this build when not needed in the other build type
Fixed some inconsistencies with how batch file modifications are handled which could cause some changes to not be detected
Fixed an initialisation problem which could cause the internal playlist service to not be seen by the plug-ins after loading
Fixed an indefinite hang on closing which could happen if a local library metadata api call was aborted due to closing being triggered but there were already attempts to access the local library db
Fixed a change to lower the memory usage not working correctly in some instances causing random crashes with the folder monitor
Fixed some conversion issues which could cause invalid metadata being sent to a DNAS is configured to use v2 streaming mode
Fixed sorting of the columns in the podcasts root view not toggling to the descending mode as expected due to a clean-up bug
Fixed the probable cause of a crash seen during closing if the folder monitor or a local library action had been running
Fixed the possible cause of a crash seen by some when trying to access the in_msx preferences due to its use of subclassing
Fixed a long standing unexpected code duplication related to the json parser in all of the native plug-ins making use of it
Fixed a concurrency issue with getting information from a specified main playlist file which was causing crashes for some
Fixed a processing issue when calling the pffft implementation which could trigger procdump calls & potentially more issues
Fixed a validation check with priming the albumart cache on loading which prevented it from being used slowing loading down & made the display of artwork in the lyrics & albumart windows to obviously lag
Fixed some more issues with the modern skin region handling which should get more working correctly after the 21550 changes
Fixed an internal method used for generating common OS registry paths not working correctly causing anything relying on it to fail (e.g. this affected the option to check / set the ability to start WACUP with Windows via the Autoplay preference page)
Fixed the cause of some crashes seen when trying to obtain artwork for the lyrics & albumart windows due to a handling issue which caused a now unneccessary set of fallback code to be triggered which was slower & blocked the main ui thread causing an unresponsive crash to occur
Fixed another possible handling issue on closing if there's been a process memory corruption whilst using a modern skin however there's an issue for some users that is still being looked into for a proper fix in relation to the folder monitor vs potentially large local library databases & the memory handling around them causing problems
Fixed a possible conflict with the timer handling within the Windows 10 | 11 Toast feature (though it's not clear why this had crashed)
Fixed a memory leak introduced with 21612 due to the pffft handling changes which caused it to re-create it's scratch buffer on every call instead of caching it which was causing some of the issues above
Other small inconclusive changes based on things seen in the crash reports assuming they weren't all due to the SMTC issue
Other small changes based on trying to clean-up the source code, de-duplicate things & reduce the processing overhead
Updated adplug/adlib (in_addanotherplug.dll) to 2.4.0 (6 Apr 2025)
Updated c-ares (libcurl.dll) to 1.34.5 (8 Apr 2025)
Updated libexpat (xml.w5s) to 2.7.1 (27 Mar 2025)
Updated libpng (image.w5s) to 1.6.48 (30 Apr 2025)
Updated libsidplayfp (in_sidious.dll) to 2.13.1 (25 Apr 2025)
Updated minizip-ng (zlib.dll) to 4.0.10 (4 May 2025)
Updated Monkey's Audio (in_ape.dll) to 11.10 (2 May 2025)
Updated OpenSSL (libcurl.dll) to 3.5.0 (8 Apr 2025)
Updated the installer to be built with NSIS 3.11 (8 Mar 2025)
Updated unrar (unrar.dll) to 7.1.6 (20 Mar 2025)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 3 May 2025
Updated WinToast (gen_win10shell.dll) to 1.3.1 (12 Mar 2025)