Added an experimental /noui command-line mode which tries to have WACUP run without any of the main ui elements which might be useful for those using it in scenarios where the ui really isn't needed
Added an export playlists feature which will copy all of the known library playlists into a user specified folder whether they're WACUP managed or not (this will not copy the files the playlist reference)
Added an export sub-menu to the root library playlists view right-click menu which hopefully will make it more obvious there is an export action (previously named 'save as') available if the view size prevents the button from being seen
Added a /RESETMODERNSKINPOS command-line option which for now will just remove the studio.xnf to help get things back to loading when there's an issue with the modern skin engine plug-in loading the file
Added an additional start menu shortcut to make it easier to run WACUP via its procdump based crash collector for those having issues with it crashing on loading & aren't comfortable using the command-line
Added a WACUPified version of the HivelyTracker input plug-in which is now based on v1.9 of the library allowing WACUP to support AHX (Abyss Highest eXperience) & HVL (Hively) tracker formats (this removes the need to try to use the older & buggier in_ahx plug-in which led to look into getting this added)
Added a live hook to try to generate a backup of the modern skin settings file (studio.xnf) so its easier to get back to a working setup if that file is corrupted as the gen_ff plug-in can & will cause
Added an initial live folder monitor implementation to the local library plug-in which due to a certain someone (aka me) not paying attention & thinking it was done but I hadn't finished it nor made the option enableable (this should now support add, update & remove actions when enabled via the Folder Monitor preference page for each of the configured monitors but handling renaming is still to be done)
Added an option to the scrobbler support to try to handle stream playback (this is opt-in & is very much relying on the stream provided title &/or optional extended metadata actually being good enough)
Added an option to the scrobbler support to try to process smaller playing items down to around 5 seconds instead of the specification minimum of around 30 seconds (taken from a reddit related request)
Added an option to Playback -> Volume along with support in the WACUP provided output plug-ins to be able to globally control if output plug-in specific volume control is enabled (it is by default) or not which can be useful for those wanting to prevent the program volume from being changed so it can only be done via the OS provided process volume control setting instead
Added support to the Streaming Source DSP to allow for the Icecast source description to be configured for the source connection
Added multi-threaded FLAC encoding support as part of the libflac v1.5.0 update (from testing this roughly halved encoding time for a 1hr 30min MP3 but YMMV based on CPU, drive & other encoding factors)
Added an updated WACUPified version of the Enhancer DSP plug-in wrapper along with bundling up the needed files to save those wanting it having to go out & find the specific files without having to also get WACUP build specific versions of things (am aware that even with the wrapper there are some problems such as the size of the Enhancer window not matching the classic skin scaling still to be looked into)
Added the ability to use an alternate SSL backend via the Internet | Online preference page as part of trying to resolve the on-going reports of some installs not being able to contact the WACUP site (this will require allowing installation to continue without the online aspects that need to be obtained, going to the Internet | Online preference page followed by closing it & retrying installation)
Changed the crash reporter handling to try to be a bit more permissive for some of the exceptions being thrown which has been causing a crash to occur when it's not actually a crash & would've been handled normally (e.g. hopefully the open / add file / folder dialogs when dealing with offline network shares)
Changed the playback of archives to now do it within a worker thread (much like is done with the in_url plug-in) instead of having it wait in the play() method (I should've done this 20 years ago when the plug-in was first created) to avoid it blocking the main ui & triggering a hang crash for some (e.g. due to a lot of files & a high compresssion level which can just be slow to process to the needed part of the archive to extract out what's then needed)
Changed the handling around loading an h264 decoder to try to avoid a full process failure as seen from a crash report along with it trying to use the openh264 implementation as a fallback if the default Media Foundation handling fails
Changed the installer & core interaction so they can now better determine if the close triggered is due to an update attempt which will silence some of the on closing prompts to make it less of a click-a-thon when the user has already signalled that they want to have things close though this won't be seen until after this build has been installed (some actions such as in-progress podcast downloads will still cause a user required interaction to be interacted with)
Changed the Yar-matey! Playlist Copier (gen_yar) plug-in to now prevent WACUP from closing if files are being copied since it requires user interaction to cancel the OS file copy action that's being used to avoid it potentially hang on closing due to a long running copy still being in progress
Changed some of the playback core handling in relation to legacy input plug-ins in an attempt to resolve some of the weird crashes seen especially when the equaliser is enabled along with crossfading output
Changed some of the dialogs to better indicate the WACUP build type being used (i.e. x86 vs x64) to make it easier to figure things out from a support stance
Changed how the current main playlist item title & taskbar text is updated during initial loading especially if the playlist contents are changing to help avoid an often noticeable delay (1-2 seconds)
Changed the local library handling around metadata edits to avoid auto adding unknown items into it if the auto add on playback is disabled based on feedback
Changed the calculated width of the skinned buttons to minimise the padding used around them as well as resolving the centering of the text in the dropdown buttons being off for some fonts so more of the buttons can be seen without having to lower the font used &/or resizing the window
Changed how the local library view updating is triggered such as from playback changes since the playcount needs to be updated so it should now resolve most of the complaints of it compared to what ml_local wasn't doing (different plug-ins behave differently however much you inform some users) so it'll avoid most of the unnecessary updates that were happening unless the file should now appear in the results
Changed the locking done in some of the output plug-ins to try to resolve the odd deadlocks that keep happening
Changed the nde db loader to better handle some of the loading failures due to them being older corrupted copies in an attempt to avoid a full process crash & instead try to leverage any backups available
Changed the SMTC handling so it will now provide more metadata (e.g. genre) & playback information (e.g. playback position) which should improve integration with other tools that can query the SMTC information
Changed the Big Clock playback status checks to no longer see if a CD item is playing as that could in some instance cause a main ui thread deadlock to occur when the need for that check is no longer required from other work done a while back
Changed the sc68 input plug-in to do more as a native unicode plug-in (related to some of the handling changes needed for the x64 build which also apply to the x86 build of the plug-in)
Changed the 'save as' button in the library playlists root view to now be an 'export' button which shows options to export all or only the selected playlists via a pop-up menu instead of only working on the selected playlist(s)
Changed the metadata handling for bitrate & samplerate to avoid querying some of the input plug-ins (especially in_dshow with the x86 build) to avoid a crash that's been by some during local library import / metadata refreshes (this makes more use of mediafoundation which was already in place from a few builds back to handle getting the length without having to go to those troublesome input plug-ins)
Changed the installer message shown to indicate the current WINE version is not supported to include that version to aid in debugging
Changed the yt-dlp handling so Windows 7 users will obtain a compatible forked version since the main repository no longer provides an OS compatible version
Changed the history playback trigger handling to now be done off-thread which should avoid a possible ui deadlock that could occur from the crash reports when needing to make some of the metadata look-ups
Changed the milkdrop framerate options to now allow for up to 240fps to be configured from the prior 144fps limit (no idea how well this'll work as my setup refuses to go over 60fps)
Changed the big clock & waveform seeker plug-ins to reduce their effect on cpu load especially when playback is happening by better ensuring caching of their window content is done (more so for big clock) & removing some of the heavier actions being repeated when not needed (more so for waveform seeker in changing how the preview is drawn before its then stored as part of the cached window data)
Changed in_zip to now use the core handling to find the appropriate input plug-in to handle the extracted file which improves playback compatibility so everything is handled in the same manner
Changed how closing the WACUP process is handled to hopefully avoid some of the hung processes that can occur from plug-in / externally loaded dlls messing with things so it doesn't remaining running in an incomplete crashed state which cannot be dealt with (based on issues seen with the Morphyre visualisation plug-in)
Changed the Yule Log discord artwork handling so it will now re-upload the image on the first attempt in the given WACUP instance so if the site cache has been cleared it will appear (this will then keep doing the existing checks to avoid re-uploading the image during the same instance if its not been deemed to have changed e.g. when playing files on repeat)
Changed how the Yule Log discord artwork is sent to the WACUP site server to try to resolve the small number of reports of it failing (is still unclear as to where the issue is happening & might be out of my control with the client to site server connection being blocked by ISPs as seems to have been the case for at least one of the reported failures)
Changed the main playlist double-click handling to use a more direct call instead of a delayed timer based solution which might help with some reports of things misbehaving on double-click &/or being slow to react (it is still possible if the input plug-in / other aspects are happening but this somewhat avoids the main ui thread processing being involved which could cause the timer event ending up delayed)
Changed some of the region handling in the code used to get gen_ff loading outside of winamp to try to resolve some of the issues with parts of the skin not being shown as expected (this still is not 100% but helps fix some of the problems reported though might for some of the skins avoid parts of the windows being missing but might then cause some of the intended hidden background to unwantedly be seen)
Changed some of the live patching applied to the gen_ff plug-in so the BBM (Big Bento Modern) based skins related to the 20678 build causing thse skins to trigger an instant crash when trying to load them though it's been seen in older builds against various different modern skins just that beta build seemed to be consistently causing the loading failures
Changed some of the input plug-ins for the less common formats to better ensure they'll cache metadata requests & avoid reloading the files for every piece of metadata which makes them faster to query as well as reducing some of the time needed to scan them for metadata on import / refresh via the local library
Changed some of the live patching applied to the in_mp3 plug-in which should help to avoid it causing crashes when the plug-in is trying to process file with APEv2 metadata tags
Changed some of the plug-in build settings to reduce their size without affecting performance (this mostly applies to the x64 build for some of the vgm related plug-ins included)
Changed the way looking for associated NFO files during albumart loading (e.g. during a local library import / re-scan) is done for a small time reduction to complete the action
Changed how metadata is read from the mod based files to avoid getting the sample data (unless playing the file) which should reduce the time taken to parse them to get metadata
Changed the Alt+3 / File Info dialog to better distinguish if write support cannot be determined instead of showing things to be read-only such as from some network based shares
Changed some of the folder monitor scan completion handling so it will now smooth out the need to live refresh the local library view (if active) to reflect any changes that might've occurred especially if there are multiple folders being processed & complete at around the same time so the view can update just once instead of for every folder (there's still more to be done to make all of this more seemless)
Changed how selected items are determined within some of the main library playlist importing actions which can reduce the time taken (e.g. a single / small selection within a large list of items available)
Changed how skinning is applied to the WACUP provided media library views & plug-in windows to avoid SendMessage/PostMessage based calls along with reducing the call stack involved in processing the action which helps reduce some of the overhead for a small performance improvement (this also removes the standalone skinning.w5s which is now merged into the core to help avoid some of those overheads)
Changed the Discord preference page to try to indicate what might be going on if the RPC connection is failing (based on the recent Discord client update which broke the RPC) along with general connections
Changed the handling of the embedded windows to reduce some of the window resizing calls made especially during loading which avoids some duplicated processing for a small performance improvement
Changed how in_capture plug-in is built so it no longer has a requirement on the boost library (this makes the compiled dll smaller by ~20KB & removes the need for a massive dependency that's barely used)
Changed gen_yar to defer when it does some of its initialisation to reduce it's impact on the initial stages of loading until there's an actual need to have the menus be inserted
Changed the installers to go back to an older mode of trying to show the amount of progress happening
Changed the internet connections to try to resolve some of the weird reports of the WACUP site not being accessible which is preventing the installer, etc from working properly
Changed the Streaming Source DSP to assume 'source' is the username to use for Icecast source connections if not explicitly configured to simplify getting things connected
Changed the way the WACUP plug-ins are able to handle the media library drag + drop related actions for a small performance improvement whilst trying to avoid some ui calls
Changed the media library window to not create the inner view if the window is not currently set to be visible which avoids some overhead for those who've intentionally closed it or the skin is showing a different window on initial loading
Changed how the waveform seeker window internally flags that processing is happening which should avoid some of the instances of the window showing no contents especially if waiting on metadata to be read during initial loading
Changed the podcast download view loading so it should now load sooner especially if its the first view during process loading instead of waiting for the local library database to have been loaded so the view is able to be used sooner whilst the background processing may appear to take longer (the loading hit is taken at a different place now so the same checks are done just in a loading friendly manner)
Changed the in_xsf based plug-ins to avoid some initialisation especially their configuration related dialogs until there's actually a need to display them instead of doing it during initial playback for a small resource saving when anything is otherwise done to trigger those plug-ins
Changed the format information panel on the Alt+3 / File Info dialog to now try to distinguish between stereo & joint stereo for MP3 files to better mimic what in_mp3 was reporting for such files
Changed some of the background services to now be notified that process closing is about to occur to give them a chance to remove any pending actions such as albumart & lyrics look-up to avoid blocking on closing for as long as could otherwise occur if they were allowed to wait to be processed under normal running
Changed the explore folder handling so it should be better behaved with setups not using Explorer by default along with dealing with them not supporting the api used for batch file selection
Changed some of the internal code handling to simplify using compressed text resources for messageboxes & setting the text on some windows
Changed year to be considered as part of the pre-defined associative sorting that the local library can apply to the results pane when set to sort by artist to get the albums into a more sensible ordering
Changed the playlist loader to be a bit smarter with some of the checking done which helps to reduce the time to process the file (e.g. saving ~30ms from testing with a 250K entry main playlist on loading)
Changed how the commonly used not found image handling is done to now internally treat it as part of the current skin images to save having to keep re-creating it depending on what the plug-ins are doing
Changed the open button on the Alt+3 / File Info & change playlist entry dialog so they'll now show a more appropriate text against the item being displayed (e.g. folder, url, CD)
Changed the main playlist loading to be triggered a bit earlier in loading to give it more of a head start which cna help offset delays in being loaded with much large playlists
Changed some of the handling around getting gen_ff to work under WACUP which reduces memory usage slightly along with a small saving on loading
Changed the installer to use the alternate SSL backend as it appears to be better behaved for setups previously having issues with the existing libcurl + openssl based solution when trying to access the WACUP site (something that still needs to be fully resolved) which should reduce the remaining reports of the installer complaining that there's no internet connection when there is causing user confusion
Fixed popping in some NCSF sets (ty again AmiSapphire)
Fixed a crash when trying to process some MP3 files with the fallback handling when trying to determine the current bitrate of the playing item
Fixed the probable cause of a crash with the linein / audio capture mode when using the old Win3.x era mode on quick playback restart which seems likely to be concurrency issue that's been present for years
Fixed a crash when triggering some of the actions from the internet radio view & it happens to still be running them when the view closing clean-up is then triggered (e.g. enqueuing a lot of streams at once)
Fixed the crash reporter when configured & able to send an email to help get extra context about the crash that's happening to better indicate if it's from an x86 or an x64 build
Fixed a number of concurrency related issues with the archive extraction which likely was the reason for some of the odd reports of things not wanting to play as the prior calls would incorrectly remove the extracted file whilst other actions were still pending so this'll now be a bit lazier in removing the extracted files (like the recent in_url cache handling changes) which should resolve such failures, etc
Fixed the crash reporter when configured & able to send an email to help get extra context about the crash that's happening to better indicate if it's from an x86 or an x64 build
Fixed a crash when trying to view the file information through the adplug based input plug-in (in_addanotherplug) which mostly appeared under the x64 builds but should be possible under the x86 build as well (found whilst checking out a crash report from a midi file being checked out under the x64 build)
Fixed MP3 not being shown as a supported file type in the Add / Open file dialogs when the fallback (or native x64) handling is being used along with trying to better handle the many extensions supported
Fixed the probable cause of a crash seen when trying to live update some of the local library view cache after using the in-view file info dialog
Fixed the probable cause of a hang crash seen when trying to calculate replaygain on some MP4 based files due to the decoder not releasing nicely
Fixed the cause of some crashes seen with the newly implemented stream playback mode with in_url due to some core vs playback concurrency problems
Fixed some more quirks with the way streaming MP4 playback is handled to avoid some actions causing the main ui thread to deadlock & cause a crash
Fixed the probable cause of a hang crash seen when trying to sort the library playlists
Fixed a rare crash seen when closing the Not So Yasapi (WASAPI) config preference page
Fixed some issues with the config option used to change the main window drag & drop behaviour along with trying to drag items from the media library not following the setting correctly for enqueue & play
Fixed a small performance issue with the main playlist drawing to save having to re-query the current font information all of the time which makes fast scrolling to be a bit smoother
Fixed a command-line handling quirk where a trailing double-quote could incorrectly remain on folder paths which could then prevent the passed in folder being enumerated as expected
Fixed a crash when cleaning up things after having attempted to import an iTunes playlists xml file
Fixed a crash when trying to play some vgm file formats
Fixed the waveform seeker cue sheet tooltip handling not displaying utf-8 encoded files correctly
Fixed the discord currently playing progressbar (when playing something with a known length) to now correctly handle playback not starting at the beginning which could cause it to show a reduced duration
Fixed a potential memory leak when saving playlists along with reducing short lived memory allocations to save a bit of time (more useful when doing a full export of all library playlists)
Fixed the probable cause of a ui related deadlock when loading the podcasts view seen in a recent crash report which also makes the view loading be a bit quicker
Fixed some plug-in dlls not being correctly reported as being the wrong bitness (e.g. 32-bit plug-ins put in a 64-bit install) due to how the filename was checked
Fixed an unresponsive hang crash happening when podcasts are already being downloaded & the trigger happens to update all of the podcasts which could cause a main ui thread deadlock (still might be more issues especially when queued up to downloading 100s of podcasts but this should avoid the obvious crash which could occur)
Fixed some issues with the format converter & the handling of mime type for some of the formats which could incorrectly be set causing a crash or a failed conversion
Fixed a crash with the DSD input plug-in due to a missing validation check when trying to open files for their information
Fixed a metadata issue for EGG files when trying to parse an invalid associated file with them from within python installs
Fixed a deadlock that could occur with some of the local library view updating when trying to obtain the final view results
Fixed some inconsistency with the mapping of file rating metadata into the 0 - 5 star range especially for files not stored in the local library db which could cause an excessive number of stars to show
Fixed the wav encoder messing up the header information of the wav files created if the input source has a samplerate with a value that is larger than a 16-bit value because I mis-read the wav header spec
Fixed a problem for some of the file types not being able to report their samplerate during ATF / metadata querying calls due to the common handling not correctly reverting to the specific input plug-ins
Fixed the local library not trying to get the bitrate & samplerate for items whose length are under 1 second
Fixed the local library view filters & nde queries incorrectly handling some combinations of english & non-english metadata as the same value causing the results especially on filter selection to not be as expected
Fixed the probable cause of the installer which seemed to affect the x64 build the most spinning at a high cpu load for many minutes before incorrectly showing a WINE version error message despite running under Windows
Fixed the horizontal scrollbar for the podcast view episode list being missing
Fixed a performance issue affecting the majority of the media library listviews due to more being done to determine which columns need to have their content displayed (to avoid those not visible still being fully processed as the OS likes to do) when it could be cached
Fixed the possible cause of the milkdrop framerate limiter acting oddly if there's a configuration issue which could cause it to enter the unlimited framerate mode (though this might still not be right if things are causing the internal timer resolutions to be modified unexpectedly or something is causing the vsync to be mis-reported)
Fixed waveform seeker getting stuck on trying to redraw unprocessable archive items due to an issue with how in_zip processed some of the paths provided to it as part of the file conversion api handling
Fixed a performance issue with some of the local library metadata calls from the other plug-ins with the internal handling of the ingress thread vs the timers used to manage some aspects of it (this is was more of an issue with lots of repeated calls in quick succession such as the podcast downloads view loading when its trying to query the last played time incase that's been updated since the last load)
Fixed a small performance issue when the playback excluder window is loading causing it to refresh its window elements as though a skin change had happened when there was no need to be doing that
Fixed the probable cause of a crash when the OS notification toasts are enabled due to a concurrency issue
Fixed a compilation issue which caused duplication of the pugixml code in the core & some of the plug-ins along with some other data duplication issues found
Fixed the ATF $char() method not correctly handling values relating to unicode characters so it should now accept them instead of outputting gibberish text along with fixing a small performance issue
Fixed a performance issue with the classic skin main window visualisation data processing by tweaking some of it to better leverage SSE2 based optimisations
Fixed the big clock & waveform seeker windows not updating their contents as expected when their window is being moved which was more obvious when docked & moved in connection to the main window
Fixed the probable cause of playing files via in_wave (affecting the x64 builds more due to that currently being used for MP3 playback) where the information provided to the playback thread could be wrong
Fixed an inconsistent crash when triggering the 'save as' option on the file info / alt+3 dialog artwork tab
Fixed a white flash seen when loading some of the native preference pages when the OS dark mode is enabled
Fixed an inconsistency with the way in_zip handles some of the other input plug-ins which could cause it to not report that seeking in the playing files was supported by the input plug-in used for playback
Fixed the font of some of the elements in the playback excluder window getting messing up when moving onto another monitor with a different dpi setting to the one it was started on (forgot to apply this when other parts like the media library window had already gotten it a few years back)
Fixed a small performance issue with the classic skin main window visualisation handling where it was double-processing getting the new visualisation data on to the main window which is now avoided & reduces the GDI object count by one due to no longer requiring an intermediate step
Fixed a bad performance issue with milkdrop causing it to use an excessive amount of cpu time whilst preparing the frame to render (this now allows my 1050ti to run presets at 4k 60fps with minimal cpu load vs this one line change which had caused it to peak at around 40fps whilst using a full cpu core)
Fixed a compilation issue with milkdrop causing the dll to be larger than needed from linking in un-used code
Fixed a crash seen by some setups when the mediafoundation dlls are not present which incorrectly caused the dll delay loading to trigger the crash reporter since the wanted dll couldn't be found
Fixed some project & code compilation settings so things now build ok with the C++20 target (even if not properly making use of those features) along with de-duplicating some of the code being inlined when it wasn't required (i.e. not offering a performance improvement) which shaved ~14KB from the core dll size
Fixed a crash when closing the Taskbar -> Thumbnail preference page after de-selecting all of the thumbnail buttons
Fixed de-selecting all of the thumbnail buttons causing the default buttons to be used on the next restart instead of not showing them (though un-checking the option to consider adding buttons is preferred)
Fixed the probable cause of a crash seen by some setups when trying to play an invalid / empty playlist item where there's no extension able to be found when things were then passed onto a runtime call
Fixed the metadata calls to get replaygain information incorrectly being processed & passed onto the input plug-in actually handling playback when playing items via the Streaming Url plug-in (in_url) which in some instances was seen to cause a weird crash (most likely due to known issues with the re-used in_mp3 plug-in with respect to how it doesn't like handling multi-threaded metadata calls to it)
Fixed a small performance issue with how the core & its metadata handling was doing the reset action sent to the input plug-ins to get them to clear their local metadata caches of the last queried file to avoid up to 3 loops over all of the input plug-ins as could happen in some instances
Fixed an on closing issue when ASAN (AddressSanitizer) is used on the build due to a timing issue with some of the window clean up inconjunction with the OLE/COM related process clean-up (this might help resolve some of the odd on closing crashes that have been going on for some time but never tend to generate an appropriate crash report to be able to help resolve it)
Fixed the installer reporting an access issue if the x86 & then x64 or vice-versa were run too soon after each other when the initial instance was still cleaning up
Fixed in_wave not always handling its mpg123 related checks correctly which could cause playback / file processing to incorrectly fail despite the dll being loaded which would then appear as things being ok when trying to play the file again or another MP3 file (this affected the x64 build the most since it's the current way in which MP3 files are handled but could affect x86 when in_mp3 is not available)
Fixed trying to load cPro skins externally of the skins folder causing those skins to incorrectly show an error message about ClassicPro not being installed due to how the warning maki script uses relative file paths
Fixed the a classic skin drawing optimisation incorrectly being applied when using modern skins which could in some cases cause the main playlist to not be drawn
Fixed metadata from SPC files not being correctly handled due to the SNESAmp Wrapper incorrectly handling the metadata reset actions
Fixed a conflict with the handling to resolve some of the 3rd party plug-in windows showing gibberish for their titlebar text which inadvertently broke the AVS preset editor handling (has been an issue for years but was only recently reported)
Fixed the Streaming Source DSP crashing on loading when loaded via some of the DSP stacker plug-ins (e.g. the muchfx based plug-in though it doesn't help resolve muchfx crashing on other interactions)
Fixed a compatibility issue with IPC_GET_EMBEDIF which could cause some of the x86 plug-ins to trigger a crash when an x64 specific change was left incorrectly being applied to the x86 build
Fixed a gen_ff related issue where loading multiple modern skins during an instance would cause it to keep registering its message processor which could potentially be behind some of the slow down reported by some with long running instances since it would be re-processing some of the window messages multiple times when there was no need for it to be doing so (aka not a WACUP induced bug)
Fixed a potential corruption issue found when ASAN (AddressSanitizer) is used on the build in relation to how the live patching was being applied (more needs to be checked but gen_ff hard fails with it)
Fixed a small performance issue related to how some of the skinning related messages were sent to the respective controls which meant more steps in the callstack to get to them
Fixed metadata requests made to in_vgmstream incorrectly returning 16 for most of the unhandled metadata values due to a bug with how the bitdepth support had been added into it
Fixed a possible deadlock issue if there was a problem creating the playback thread within in_wave
Fixed getting the metadata from sub-songs within sc68 files not working correctly due to passing in the wrong filepath which could then also cause excessive file re-processing
Fixed displaying metadata information from mod based files not working if playback of such a file had just happened due to not clearing an internal cache to avoid reloading files
Fixed vgmstream trying to process some OS related files as part of its fallback handling which causes excessive local library processing (will need to get it to filter them out)
Fixed the probable cause of incomplete / failed legacy local library database imports along with a performance issue when attempting to import such database files into our files
Fixed the probable cause of a crash when starting some of the visualisation plug-ins which based on a crash report was more likely to occur with the multiple plug-in mode enabled
Fixed some of the files excluded from being added into the local library database incorrectly still being counted as a valid addition which could cause import / folder monitor scans to incorrectly trigger a view refresh when there was no effective change (this should further help with some of the on-going complaints to do with the local library live refreshes itself which some find jarring especially if not needed as this fix helps reduce)
Fixed the albumart & lyrics windows not always updating when a stream is playing to reflect the stream provided title updates (previously this could either not update at all or just show the first song)
Fixed the internal lyrics handling getting stuck when playing a stream due to the local cache not being cleared in a timely manner especially if the next item playing on the stream doesn't have any lyrics (this would cause the lyrics window to keep showing the last obtained lyrics until the next time lyrics can be obtained against what's currently playing on the stream)
Fixed the albumart window not keeping the details view shown when resizing especially if the item currently playing is a stream or not in the local library due to how a loading optimisation had been applied which could then cause the plug-in to ignore the collected metadata causing it to incorrectly revert to the simple album view display mode
Fixed MilkDrop's desktop mode not being available or not working as expected when running on recent(ish) Windows 11 releases
Fixed an optimisation from a few builds back which could cause intermittent setup failures of the tooltips on the main playlist & embedded windows
Fixed the WACUP provided streaming plug-in (used by the x64 build & optionally with the x86 build depending on the setup) not behaving as expected when pausing along with it blocking the ui when stopping
Fixed the media library preference option to toggle the button grouping not working correctly due to an internal messaging issue which prevented the grouping option being correctly passed to the live view
Fixed the batch metadata edit dialog not returning the focus back to the main playlist window when it closes (reported via email)
Fixed clipping of some of the skinned buttons due to issues with some of the DPI related handling & the text of some static controls losing their expected text alignment after some library views had loaded
Fixed via a hackish workaround the indentation of the library navigation tree sometimes not being reset when making quick changes to it such as on font reset
Fixed some problems with loading archive & virtual playlist items if commas were part of the filepath for formats where it's used as part of the internal file indexing where they weren't just at the end of the filepath being processed
Fixed the display for some of the podcast view tooltips to better avoid some of the excessive linebreaks which could appear as part of trying to re-process some of the HTML content to be tooltip friendly
Fixed the probable cause of the library history plug-in causing a main ui thread deadlock hang to occur from some of the metadata requests (more of an issue under modern skins) when used as a fallback mode
Fixed some appverifier related issues found with NotSoDirect which could cause some issues when the process is closing which could cause hang / crashes
Fixed using delete in the simple listview mode of the local library views not always working as expected which would often cause a view search to be triggered but the text in the search field wasn't altered
Fixed a small performance issue with in_vgmstream & how the WACUPified version of the plug-in builds its list of supported extensions to reduce the CPU & memory allocation impact when processing lots of little strings
Fixed a classic skin ui updating issue when starting some streams when using in_url on initial loading due to the main window visualisation not having been correctly initialised (the changes for this might also help with some of the on-going reports of the main window randomly stopping updating but am not sure if this will or will not help)
Fixed a number of small issues found whilst doing some initial testing to see about moving over to the VS2022 compiler for the provided builds (for now am sticking with my existing VS2019 setup)
Fixed the cause of some scrobbles not being cached if the daily scrobble submissions has been reached
Fixed a dpi handling issue with the plug-in lists in the preferences which could cause it to clip the plug-in description lines in an unexpected manner
Fixed externally trying to start playing a playlist not always following the shuffle mode setting causing it to always start playback from the first item of the added playlist if set to replace the existing contents along with the enqueue & play action always starting from the first item added instead of picking a random item in the newly added items after the end of the prior playlist contents which is now also applied to internal actions where it makes sense (i.e. if a specific item in a selection wasn't already selected)
Fixed some issues with the non-modern skin provided Thinger window which could cause it to not be displayed correctly nor react to the close window button until the second attempt due to a focus issue
Fixed some wasted memory in some of the internal data structures especially for the media library navigation tree handling though this mostly applies to the 64-bit builds where I can break compatibility
Fixed opus playback sometimes getting stuck in an endless loop unless the user manually triggers a playback stop (e.g. if playing a network file & putting either machine into a sleep / disconnected state)
Fixed the lyrics window not showing the not found image on initial loading when more processing is still happening which could make things feel a bit unresponsive (this was triggered by a change in the early 1.99.x builds which no longer is needed due to other optimisations made in the year & a half since that time)
Fixed the albumart & lyrics windows keeping the not found image around for longer than was needed which typically caused around 1MB to be kept allocated when there was no longer a need for it
Fixed some of the keyboard actions not working in the jump to file dialog depending on when its been loaded vs the type of skin being used which could cause some keyboard actions to not work as expected
Fixed the online lyrics handling not correctly handling a lack of metadata from the playing item which could cause repeated attempts to try to obtain them along with causing some on closing related hangs
Fixed a number of hang / crashes on closing if local library metadata requests were in progress (such as from calls related to getting albumart & online lyrics look-ups) due to happening after the plug-in had been through its quit stage (this is not the final fix for this problem but should alleviate the problem for those experiencing it for now without too many downsides)
Fixed the settings location diagnostics not using the expected path output mode due to some prior changes to avoid re-processing the path strings in some instances which incorrectly broke this specific use
Fixed the main playlist loading causing a save on closing despite nothing having actually changed due to how some playlist item types were being handled with respect to transient metadata for them
Fixed a small performance issue with the saving of a very large main playlist file (this is still slower than I'd like due to having to string convert but that will have to be looked into at a later time)
Fixed drag + drop from within the Audio CD views & the related navigation tree nodes not working along with the navigation nodes not being configured to be able to be moved within the navigation tree
Fixed drag + drop onto the excluded files window not always saving out the added items or it causing items to be added to the currently open media library view if it happens to accept adding new items
Fixed a small performance issue during loading from trying to repaint the media library view before it had been displayed
Fixed a performance issue when starting with a loaded Audio CD media library view which could cause it to block the overall loading until completed making WACUP feel laggy
Fixed resizing the Audio CD media library view listview header not always saving their new position
Fixed a potential deadlock & also excessive re-processing as part of using IPC_REFRESHPLCACHE calls
Fixed replaygain values from MP4 based files tagged by other players not always showing as expected in the raw metadata tab of the Alt+3 / File Info dialog
Fixed Audio CD playback issues when trying to play from externally added track filepaths instead of using the built-in means of WACUP accessing the Audio CD
Fixed some inconsistency with how the different style of Audio CD paths are handled with the Alt+3 / File Info dialog along with removing the raw metadata tab which isn't applicable for them
Fixed the view artwork button on the Audio CD library views not always working as expected
Fixed some of the DWM api calls being incorrectly run against windows that won't handle what's being attempted which would cause unwanted messages to appear under a debugger & slightly slow down loading
Fixed the listview headers on the Podcast root view not being skinned as expected when running under WINE
Fixed some small performance issues with milkdrop causing it to reprocess some of the strings unnecessarily
Fixed 3rd party plug-ins not being correctly reported as such in the plug-in preference page lists when portable mode is enabled which could cause confusion as to why the plug-ins are not being loaded
Fixed the likely reason behind some skinned tooltips not being seen or showing as expected if the overall instance has always on top enabled
Fixed a concurrency issue with the recently added live folder monitoring support which could cause crashes
Fixed the tooltips on the classic skin video window not updating correctly or them disappearing shortly after WACUP has loaded (a similar case happened to the main playlist which wasn't applied to this)
Fixed the video window background flashing in its classic skin position if un-checked under a modern skin where the video window has been embedded into it (e.g. the Bento based skins)
Fixed the media library navigation tree not reacting to right-clicks as expected especially if using the menu button / shortcut on some of the older media library plug-ins (e.g. as seen with ml_pmp)
Fixed a crash related to the BBM skin web reader script due to it not checking the return value of the list objects correctly (gen_ff shouldn't have crashed with this but the script was also incorrect)
Removed the need for cacert.pem as the libcurl + openssl handling now seems to be in a state that behaves well across the different Windows + WINE platforms that WACUP has support for
Other small changes based on things that may help with some of the inconclusive crash reports (e.g. not using gen_ff will obviously help in most instances)
Updated adplug/adlib (in_addanotherplug.dll) to the latest Git commit from 4 Jan 2025
Updated c-ares (libcurl.dll) to 1.34.4 (14 Dec 2024)
Updated libcurl (libcurl.dll) to 8.12.1 (13 Feb 2025)
Updated libexpat (xml.w5s) to 2.6.4 (7 Nov 2024)
Updated libfaad2 (libfaad2.dll) to 2.11.2 (4 Mar 2025)
Updated libflac (libflac.dll) to 1.5.0 (11 Feb 2025)
Updated libjpeg-turbo (image.w5s) to 3.1.0 (12 Dec 2024)
Updated libsidplayfp (in_sidious.dll) to 2.12.0 (1 Dec 2024)
Updated libnghttp2 (libcurl.dll) to 1.64.0 (21 Oct 2024)
Updated libopenmpt (in_mod.dll) to 0.7.13.22826 (6 Jan 2025)
Updated libpng (image.w5s) to 1.6.47 (18 Feb 2025)
Updated lzma (lzma.dll) to 24.09 (29 Nov 2024)
Updated minizip-ng (zlib.dll) to 4.0.8 (85 Jan 2025)
Updated Monkey's Audio (in_ape.dll) to 10.96 (11 Feb 2025)
Updated mpg123 (mpg123.dll) to 1.32.10 (14 Dec 2024)
Updated MSXplug (in_msx.dll) to the the current sub-modules
Updated openh264 (in_mp4.dll) to 2.6.0 (12 Feb 2025)
Updated OpenSSL (libcurl.dll) to 3.4.1 (11 Feb 2025)