Added a native implementation of the Jump To Track (gen_jtt) plug-in (originally from 2003) which completes the trio of the Jump To dialogs now being implemented within the WACUP core :)
Added double-clicking on the vertical divider in the library window between the navigation tree & the currently selected view to act as a way to resize the navigation tree to only take up the width needed to see the currently visible items within it (something that I've been wanting for a long time to make the alignment of things a lot simpler vs trying to eyeball it)
Added double-clicking on the vertical divider in the internet radio & podcast views to resize to the radio station genre tree & the podcast channel list respectively
Added double-clicking on the vertical dividers in the local library views to align the divider to the right edge of the filter to it's left to make it easier to align things based on the intended sizings
Added an option to the Playlist preferences page to control whether existing title information in playlists if present is used or if it'll be ignored when added from outside of WACUP (e.g. via drag & drop or from Explorer) causing the titles to be regenerated based on the current ATF string
Added drag & drop support for some of the media library navigation child nodes onto the main & playlist editor windows instead of only being able to use the right-click options &/or doing it from within the selected library view (e.g. podcast downloads or a bookmark category)
Added support as well as an option to the Video preferences page to allow supporting plug-ins (aka in_mp4) if the option is enabled to attempt to fallback to using OpenH264 for decoding that data format (this will attempt to get the required dll & is aimed more at WINE setups where Media Foundation support is lacking but is off by default as most setups do not require the additional processing this adds)
Added a libfaad2 based AAC decoder (may also look at a Media Foundation based solution later but this is more portable e.g. for WINE) which now allows M4A (MP4 using AAC) to now be playable (e.g youtube)
Added an option on the File Association diagnostics preference page so it's possible to save the currently reported file associations to a text file
Added initial WACUP versions of an ASAP (8-bit Atari) based input plug-in (named in_later so as not to conflict with existing in_asap) & an sc68 (Atari ST & Amiga) based input plug-in (named in_sc68k so as not to conflict with existing in_sc68) to further expand the native playback support for video game based formats
Added support to allow manual title refreshes in the main playlist editor (e.g. via Ctrl+Alt+E) to now by default trigger the local library plug-in (if enabled & the item(s) are known in it's database) to refresh the metadata it has cached for those playlist items before the new title is generated (there is an option on the playlist preferences page to disable this)
Added the ability to change the view mode of the local library root instead of mimicking the plug-in from 5.666 where it'd only over show the results in a simple list
Added a preference option on the Notification Area preference page to control the click behaviour of the notification area between click to show/hide or to always show it (with ctrl+shift+click doing the opposite to the currently selected mode)
Added 'show all by/from artist/album' to the local library results right-click menu (replicating ml_local's feature to make a quick results filter) along with a preference option to be able to disable this mode
Changed how the native dialogs are handled when moving between monitors with different DPI / OS text scaling so they should now be sized as expected (subject to appropriate OS support & whether the OS is correctly doing things e.g. some messageboxes can act oddly)
Changed the multiple visualisation support to now correctly remember the chosen visualisation plug-ins between running instances (this is going to require some reconfiguring for those using this feature as the prior implementation would run visualisation plug-in that was able to be used)
Changed the local library & podcast navigation node updates to be done in an async manner to avoid a possible ui related deadlock
Changed the local library handling of getting information about the associated artwork on add / refresh of metadata to remove a number of duplicate calls being made to get the information
Changed the waveform seeker plug-in to reduce it's impact on CPU load when WACUP is not playing & if the plug-in is not processing any file(s)
Changed the error message Milkdrop shows if using the multiple visualisation mode & anything else that's running in fullscreen using DirectDraw happens to run before it
Changed how the podcast related xml files are parsed to save a bit of time with much larger files by changing how the xml parser is used to allow for some aspects to be better primed prior to population
Changed a few of the plug-ins to reduce their memory usage (e.g. undo now only allocates what's needed instead of what might be needed to store the backup file paths) as well as reducing some memory handling (e.g. shaves a bit more time off a full local library database load)
Changed some more of the internal NDE handling to reduce the peak memory overhead of the loaded database records with upto 55MB saved for a 300K entry database used during testing (savings will be less with smaller databases)
Changed how the local library calls to get an ATF title for a file are handled to massively reduce the time it takes (e.g. 4500 podcast downloads when dragged onto the main window could take around 6 minutes to be processed with it now down to a few seconds if set to read all of the titles when added into the main playlist) whilst also reducing the cpu load to process things (double win on this!)
Changed the main playlist metadata reading options to remove the non-background reading version of the default option as both options had ended up doing the same thing with other changes to the core over recent months & had been a bit confusing to some (tl;dr this won't make a difference to most when it comes to metadata reading)
Changed the installer to adjust the location it uses to store its uninstall information related to changes that needed to be made to the normal 32-bit x86 builds (the impact of this is minimal compared to the downsides of the changes made with that build)
Changed the checks made for lyrics information within file metadata to improve it returning lyrics when it's known it's in file
Changed how the internet radio cache database is generated to better ensure duplicate listings will not be added whilst reducing the overall size of the archive by ~3MB & improving load times for all builds by making the database files smaller (with it being faster still with the nde changes in this build)
Changed some of the handling of the artwork cache priming to further reduce it's impact on loading
Changed some of the SMTC handling to try to avoid a full process crash if winrt unexpectedly fails
Changed how the podcast downloads are handled to use less memory whilst initially parsing the downloads file (saves ~3MB with a file of ~4.5K downloaded podcasts)
Changed some of the supporting code used when the main playlist is being loaded which reduces the overall time to parse it (bigger time savings the larger it gets)
Changed a number of the plug-ins to better ensure they're only creating internal aspects when needed which reduces the idle memory & can slightly reduce load times
Changed how the fast changing parts of the classic skin main window are painted to reduce the re-processing done which lowers the cpu load & impact of painting the window
Changed how the artwork in the lyrics & albumart windows are drawn to reduce the time required to initially display the image & reduce the cpu load when resizing the windows
Changed the Win7Shell plug-in to do it's jumplist setup not on the main ui thread to avoid it blocking during loading
Changed some of the plug-in loading checks to better avoid doing any loading of unwanted / disabled plug-ins & reduce the need to double-check it's a valid file for slightly faster per-dll load times
Changed how the AppUserModelID is generated during loading (needed for some aspects of taskbar pinning) to take less time if WACUP is installed in it's default location in non-portable mode
Changed the audio cd playback handling to double-check the type of the first track when trying to play it & skipping playback if it's not reported back as being an audio track (this is to contend with mix-mode cds (e.g. PC games) where in some instances it may incorrectly be attempted to be played & in some instances even seeming to play (more of an issue with some solutions mounting images of cd's)
Changed the taskbar preview rate current item popup dialog to now indicate the current rating value instead of just showing a 0-5 set of buttons
Changed how self restarts are handled to hopefully resolve the reported issues of it sometimes not seemingly starting a new WACUP instance (it did but the timings of things meant it could then still see the current instance & abort loading so this now changes things to avoid the failure in the scenarios I was able to use to replicate this issue)
Changed the batch metadata editor in the main playlist to better signal to the local library that a batch of updates is potentially on it's way to avoid doing per-file view updates until the batch is done
Changed some more of the compiler & dependency handling to reduce the size of some of the plug-in dlls whilst also reducing the time to load them
Fixed a crash on the skin management preference page
Fixed a crash due to an incorrect validation on EOF
Fixed a crash under WINE if the h264 decoder cannot be obtained when attempting to playback MP4 files
Fixed a regression of sorts with the podcast download handling where manually triggered downloads were not being shown as downloaded after a restart (related to changes in the prior build to reduce the re-checking done during feed updates though this was a scenario that was being masked by the prior handling)
Fixed the add / refresh of metadata in the local library incorrectly replacing the currently cached artwork when there's no need to as it'd typically negate the whole cache & make things take longer to complete the metadata processing
Fixed a number of small memory leaks which depending on the action & changing active focus of WACUP could cause problems over long running instances
Fixed incomplete update attempts of the internet radio database (e.g. due to a crash) to now re-trigger the download to avoid later update failures
Fixed a deadlock with the local library if getting metadata for a file takes too long whilst ui actions occur that then want to access the database (e.g. getting the length of an avi file whilst closing wacup was triggered & the cancel import dialog wasn't responded to)
Fixed the waveform seeker plug-in trying to create new processing threads when WACUP is attempting to close which could in some cases cause a crash during closing
Fixed a ui hang / crash on closing that could occur from some of the play/enqueue local library view into the main playlist handling as well as reducing the time to add them by not re-processing the items
Fixed a resource leak when in_mod is requested to process a file which is not something it is able to handle due to file extension re-use of unrelated files
Fixed a resource leak when using the Alt+3 / File Info dialog due to the lyrics tab not correctly cleaning up it's background thread whether lyrics exist or not
Fixed a painting issue of the classic skin playlist scrollbar when in double-size mode not updating the full scrollbar area when more playlists items area added causing the scrollbar position to change
Fixed the waveform seeker window not always updating it's inner window contents as expected on skin related changes
Fixed a timing issue that could cause the podcast view to incorrectly indicate there were no feeds (hiding buttons & showing a related status message) when there were known feeds loaded
Fixed a display issue on the lyrics tab of the alt+3/file info dialog where it was not always correcting the linebreaks to ensure they appear correctly within the edit box
Fixed the priming of the artwork cache not correctly handling things causing the memory needed to maintain copies of the artwork to be doubled & not released until the process completes (e.g. 8MB of cached artwork would leave 8MB of data allocated when it'll never be used nor released when the cache updates during the running instance)
Fixed a crash when trying to change the output audio device with the Not So Direct plug-in due to a mis-handling issue with the settings cache
Fixed the main window visualisation not entering the expected stopped playback state when a SID file ends & no other file is attempting to be played afterwards (manually stopping did not show this issue)
Fixed an issue with priming the artwork cache where it could incorrectly ignore what was known to the cache just after it's been primed if the request for artwork will always be a smaller resolution image than the request being made (e.g. asking for a 600x600 image when the source is always going to be 574x574)
Fixed a crash when using the format converter whilst having the preference page for the plug-in still open
Fixed a slew of performance issues related to the bookmark handling especially during initial loading if it's a selected library view with a large bookmarks file (e.g. 7.5K of entries which goes from approx. 6 seconds down to a fraction of a second on my dev machine)
Fixed some painting issues under Windows 10/11 within the preferences when dark mode is enabled & a custom OS theme has been applied (not a standard OS theme feature without it being patched to work)
Fixed the Win7Shell plug-in always reading the bookmarks file on loading even if set to not show them in the jumplist
Fixed the tooltips on the embedded classic skin windows not always having their positions updated when the window size has changed
Fixed the installer not always ensuring that the local VS2019 runtime folder is installed if some of the runtime files are missing
Fixed a crash (more likely to be seen only under a debugger) related to the WACUP install checks some of the modern skins are doing
Fixed an OS call made by the Win7shell plug-in incorrectly being hooked by the WACUP core which was causing higher cpu load than intended with the checks the plug-in is doing related to the taskbar preview
Fixed some inconsistencies with the handling of the classic skin song ticker painting between skinned & non-skinned font handling along with the smooth scrolling speed not matching when using different scaling settings
Fixed loading of the bookmark menus especially the agent menu or if the settings cache was disabled being really slow when having a reasonably large bookmark & related category files to process
Fixed the Discord related preference page having a tab on them when there's no need to be like this (lazyness on my part when creating the preference page for this ages back)
Fixed a number of ui hangs when first opening any of the preference pages related to the Yule Log plug-in due to possible slowness in the loading of the local library database whilst making the previews
Fixed an api implementation regression which broke getting some of the information from the media library navigation tree
Fixed the FLAC encoder not correctly handling 24-bit audio data causing invalid files to be generated
Fixed the classic skin windowshaded mode scrolling by 2 lines instead of the expected 1 line due to the mouse scrolling option being incorrectly applied to that mode
Fixed a regression which caused the current audio cd drives to not be shown in the main right-click play submenu
Fixed MP4 files incorrectly playing despite aspects of the UI indicating that the player is meant to be paused when WACUP is set to use the paused on load autoplay option
Fixed setting a rating outside of the local library views not working as expected as well as rating changes not being correctly reflected in the right-click menus in the playlist & main window menus
Fixed the taskbar preview rate current item popup dialog not following the OS dark mode theming
Fixed a performance issue with initial loading of the classic skin songticker right-click menu due to the rating sub-menu
Fixed some inconsistencies with the shift+space to force the current main playlist item into view if done via the classic skin equaliser window as well as the action not flashing (if configured to do so)
Fixed a sorting issue on the output plug-in prefs page when dealing with non-unicode output plug-ins
Fixed Ctrl+Shift+4 (sort the current playlist by duration) not working in the main playlist editor window
Fixed an NDE handling issue which could cause a crash during closing with some of the maintenance tasks
Fixed some of the local library query apis not working as expected (e.g. as called by gen_classicart)
Fixed a drawing & handling issue related to the rating element of the gen_classicart window
Fixed a handling issue when multiple input plug-ins are trying to handle the same extension & it was possible to keep retrying the already attempted input plug-in
Fixed a number of memory leaks related to poor handling of some broken files preventing the intended clean-up not always being run
Fixed a duplicate "media library" preference node being added at the bottom of the preference tree when manually enabling the library core
Fixed the root media library preference node not being expanded as expected when manually enabling the library core (if previously expanded prior to being disabled)
Fixed the add new local library view dialog incorrectly generating a bunch of empty view files especially if the view creation was cancelled along with some other view creation / edit related quirks
Fixed the horizontal divider in the local library views incorrectly moving downwards when moving some of the vertical dividers within the view
Other small changes related to code optimisation & reducing overall processing overhead & duplication
Removed the tweeting support from the Yule Log plug-in (almost halves the file size of the plug-in)
Updated libcurl (libcurl.dll) to 8.0.1 (20 Mar 2023)
Updated libdiscid (discid.dll) to 0.6.4 (2 Mar 2023)
Updated libopenmpt (in_mod.dll) to 0.6.10.19034 (15 Apr 2023)
Updated minizip-ng (zlib.dll) to 3.0.10 (9 Apr 2023)
Updated Monkey's Audio (in_ape.dll) to 10.10 (29 Apr 2023)
Updated mpg123 (mpg123.dll) to 1.31.3 (19 Mar 2023)
Updated unrar (unrar.dll) to 6.2.6 (16 Feb 2023)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 29 Apr 2023
Updated zlib-ng (zlib.dll) to 2.1.0-beta1 (28 Apr 2023)