Added a WACUPified version of the MatrixMixer plug-in (out_neo.dll) to aid in up/down-mixing the audio channels along with some other audio processing whilst using the other available output plug-ins & is configured via Preferences -> Plug-ins -> Output -> Channel Mixer (for beta testers this will remove the interim build of the dll so those of you not paying attention to things will no longer get an error message on loading along with disabling the original out_mixer from being loaded as it doesn't support the other WACUPified output plug-ins)
Added the ability to check & report in the plug-in preference pages if a plug-in dll failing to load is likely due to it not having been built to support DEP/NX-bit (aka very likely to be an old plug-in)
Added export actions to the appropriate library navigation tree right-click menus where an export option is implemented to mirror those also provided via the library button's export sub-menu
Added an option to the Playback preferences page's audio modes section to control (subject to input plug-in support) if files with video will have that rendered as well or if only the audio will be used
Changed how the core reports failures to load some of the required components as well as adjusting the crash reporter to better differentiate these enforced on load failures
Changed the albumart conversion api to be more forgiving of the input parameters given to it so it should work more reliably now without having to remember too many specifics
Changed how the delay loading used by in_wave works to deal with a strange crash report seen (this is similar to a change applied to in_mp4 a few builds back doing the same)
Changed how the taskbar preview is handled so the peek handling should work far more reliably instead of it looking like WACUP has crashed (due to the OS showing a spinning progress indicator instead of the expected main window) though there might be some visual quirks if using a skin with faux transparency due to the OS api being provided with a bitmap of the main window not supporting alpha within bitmaps
Changed the wording of the dll loading failure based on some recent feedback & to try to make it more obvious to beta testers not paying attention to a number of messages on how they can resolve the issue
Changed how the DSP & Visualisation preference pages work to avoid incorrectly loading the plug-ins when they've been configured not to be enabled along with better handling of plug-ins not loading correctly
Changed how some of the ok to load a plug-in checks are done to improve the handling when dealing with plug-ins with non-english characters as part of their filename (not common but there's some which could prevent the disable plug-in mode on the preference pages from not working as expected)
Changed how the "album" metadata is obtained if it's checked for by the albumart service to try to use the metadata if present in the local library database instead of only going directly to the file (this can help reduce some of the delay to find the albumart especially for files on slower storage which has been seen to cause a hang crash in some instances)
Changed the local library file add / update handling to reduce some of it's handling causing db values to be modified when there's not been a change which offers a small reduction in import times (more to do)
Changed the installer to better reflect if a portable install is being updated vs the generic messaging that was previously being used along with removing the superfluous portable install mode during updates
Changed the installer to no longer try to internally update the install location being used when an update is being attempted which might help to resolve the reports of beta installs incorrectly updating preview installs
Changed a number of aspects related to adding / updating files in the local library database to try to reduce the time taken to process a file including unintentionally double opening some files whilst trying to determine the albumart details associated with a file (this is where millisecond savings on a file can make more of a difference when processing 10s & 100s of 1000s of files)
Changed some internals to use a slightly faster integer to string conversion along with some related clean-up to reduce the work done with some related conversions
Changed around some more of the in_mp4 internals to try to avoid some of the weird crashes still being seen with it vs the delay loading of the supporting dlls used
Changed the local library views albumart cache handling so it should be much less likely to generate new cached images if the library data has been modified as well as how the file to cache matching is done
Changed how the albumart & metadata services process files when the local libary is using them during adding or updating items in the database to minimise how much reprocessing of the file is done to reduce the time taken to process the files (e.g. a selection of around 2200 files of various formats & albumart availability went from around half a minute down to around 8 seconds to be processed)
Changed how batch refresh actions are handled in the local library views so it no longer tries to live update the current items in the view cache & instead will wait until completion to trigger a view refresh which then allows for any of the filters, etc to be correctly applied vs what was trying to be done which ultimately didn't work as well as intended & made the process slow if a local library view was the currently active media library view
Changed the podcast view handling to try to a better job in populating the duration &/or file size columns if the feed doesn't provide that information (as some don't) by double-checking if it can be obtained from the existing library contents or downloads (this may cause some lag in initial view loading for some until it's been able to be cached) along with trying to update any local library results where it's not already flagged as being a downloaded podcast
Changed how the core during loading handles trying to get the string to show for the taskbar text so it's less likely to block process loading if the item doesn't have an already cached main playlist title string & for where the file or the local library database are slow to respond to getting the metadata needed to generate the title (this should avoid some initial on loading hang crashes seen)
Changed some of the actions used to reset preference options back to their default values to have prompts to confirm if the action should be done or not
Changed the installer messaging if the supporting installer verification stage fails due to an unexpected error instead of showing the somewhat confusion no internet connection message (not that either messages should ever need to appear)
Changed the installer to use the helper dll throughout the whole setup process instead of trying to switch to the newly installed WACUP core dll as there's some setups where this doesn't work causing an incomplete install to be made (might only affect some older Win7 setups but as this change appears to work ok for all Windows installs it'll be used going forward)
Fixed the update dialog clipping the new version text
Fixed the playback excluder window inner controls not being sized correctly when first shown
Fixed a regression causing skinned checkboxes to not work as expected due to incorrectly disabling the handling when the skinned preferences code was disabled many months back
Fixed a crash when doing some of the internal plug-in look-up when attempting to find a plug-in to play some stream formats
Fixed a crash in the local library view albumart cache loader
Fixed the probable cause of a few crashes seen during closing
Fixed some unintended duplicate processing when loading from the local library views cache which could cause some of the view loading to take longer than expected & to double-up the view memory used
Fixed the last to be queried item in a local library albumart view not always being loaded until the filter is refreshed again
Fixed a painting alignment issue with the bolded checkboxes on the installer mode selection page when used under OS dark mode
Fixed a crash if a local library view query has been triggered whilst an existing loading of view albumart is in progress
Fixed a ui related hang which could occur when the local library views albumart cache is being populated if it's necessary to do a full query to locate files for the album if what's first found is invalid
Fixed a slowness in trying to obtain metadata from APE files which aren't valid media files & are the AVS helper dlls having been or attempting to be added into the local library database (aka too many things re-using file extensions)
Fixed a compilation issue which incorrectly prevented the preferred CPU optimisation options being used for the jpeg decoder
Fixed some quirks with the processing of embedded artwork mimetypes for some files where it's filled with junk data
Fixed a notsoyasapi crash on WINE if there's no enumerable output devices which might also apply to some Windows installs too
Fixed the last selected library view not being correctly restored between instances if non-english characters were used by the node's invariant string
Fixed renaming a local library view which is left as selected on closing not being restored as expected between instances
Fixed the media library navigation tree not refreshing as expected when removing a selected child playlist tree item
Fixed double library tree items appearing when adding a new one via the send-to action & possibly from some other calls if set to show playlists as child nodes
Fixed a number of issues with restoring the last selected child playlist node (when enabled) if the names of the playlists contained duplicates
Fixed an issue with the initial sizing of the queue manager window (if enabled) along with the queue listview not being correctly sized once the window is resized
Fixed a number of issues with trying to set the icon for the running process in the taskar especially if it's set to group them without text labels (this may still not work as the OS requires an appropriate shortcut e.g. in the start menu for the OS shell to store / read the appropriate icon from)
Fixed some issues mostly with the main visualisation with lower samplerate playback when using the notsodirect output (still not 100% ideal but it now shouldn't be causing a lot of ui related lag)
Fixed the reproducible memory & handle leaks in the notsodirect & notsoyasapi output plug-ins which depending on how many items are played could become an issue causing WACUP to crash / act weird
Fixed drag+dropping bookmarks using the title instead of the filename for the entry
Fixed some slowness in title generation starting when adding items into the main playlist (after accounting for the local library database to have been loaded if not already) due to the background title refreshing thread not being primed earlier enough to handle the newly added playlist items
Fixed triggering a main playlist undo event causing many playlist modified notifications when only one is needed which for larger playlists should make doing an undo be much quicker to complete
Fixed the advanced prefs page not correctly updating what's going on when doing some of the yt-dlp actions
Fixed the local library & few other aspects not seeing some of the playable formats if there's not a directly reported input plug-in but it is possible to indirectly handle the format with other plug-ins present in the install
Fixed the local library database being incorrectly triggered to be loaded from some of the actions to update metadata when requested on an url
Fixed some inconsistencies with how in_url & in_mp4 respond to %type% & %streamtype% ATF values so it should now be correct including if the in_mp4 preference option to only play audio is enabled
Fixed double-clicking on the first item in the local library albumart views adding all items instead of what's expected for the selected album
Other misc small changes as part of the changes to reduce the impact of some of the internal methods as part of helping to reduce the time it takes to process files for metadata & associated albumart
Updated brotli (libcurl.dll) to 1.1.0 (31 Aug 2023)
Updated cacert.pem to latest (22 Aug 2023)
Updated libcurl (libcurl.dll) to 8.3.0 (13 Sep 2023)
Updated libnghttp2 (libcurl.dll) to 1.56.0 (4 Sep 2023)
Updated libopenmpt (in_mod.dll) to 0.7.3.19618 (9 Sep 2023)
Updated Monkey's Audio (in_ape.dll) to 10.22 (14 Sep 2023)
Updated OpenSSL (libcurl.dll) to 3.1.2 (1 Aug 2023) which bumps up the dll size more than a bit
Updated Spout2 (vis_milk2) to 2.007.012 (5 Sep 2023)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 16 Sep 2023