Added an initial native equaliser implementation along with the changes needed to remove the legacy mode handling (i.e. WACUP no longer uses winamp.original from 5.666 to be able to run for all setups)
Added options on the equaliser on/off button right-click menu for classic skins & the modern skin equaliser sub-menu to change the frequency bands & limiter options without neeing to go to the Playback preferences page
Added an initial native last.fm scrobbler feature to the Yule Log plug-in targeting their 2.0 API which allows for it to show 'scrobbling now' before the actual scrobble occurs (those using the existing official scrobbler plug-in can continue to do so as this implementation will self-disable itself if it's found to already be present & enabled so there should be no conflict)
Added an initial WACUPified version of in_qsf (Highly Quixotic QSF Player) for playing Capcom Q-Sound Format (QSF) files
Added actions to the local library view / library button to refresh the metadata for the view / local library as a whole only for files determined to have changed since the last read of data by the library
Added a warning confirmation prompt before the ASIO output plug-in is attempted to be set as the active output plug-in due to the issues that using the plug-in may have (especially resetting volume on track changes depending on driver / device handling)
Added better help messages for some of the actions that may require admin access to complete (e.g. skin installation & enabling the agent mode) incase they fail or the user cancels things &/or doesn't get the then expected result
Added options to the Local Library sub-menu on the Library button menu to go to the Folder Monitor preference page along with triggering a rescan of any actively enabled folders set to be monitored
Added WACUPified versions of the old 3rd party Thinger & Yar-matey! Playlist Copier plug-ins for better integration (these are installed but not enabled by default on new / updated installs if not already present & removes the need for the extra_plugins archives that the beta testers had needed to get access to these)
Added a tooltip on the library podcast navigation node when feeds are being updated to give a better indication if some appear to be taking longer than expected to be processed to help track them down
Added /SEEK= to the command-line options as a more obvious action compared to /WA_IPC 106
Added an option to the General preference page to allow for disabling the physically delete item handling in the core & native WACUP plug-ins (this will disable menus, shortcut handling & for some of the ui related aspects hide the icons that might appear when this is set to disabled)
Added to the advanced prefs page a set of options to control the playlist formats (real & virtual) that WACUP will attempt to handle (this is more for debugging purposes but might help in some scenarios)
Added an option to the Playlist preference page to allow for the item lengths to not be shown (this complements the existing option to hide the playlist item positions) & some related library playlist view handling to get this working with it
Added a workaround for WINE installs to try to use the 'DejaVu Sans' font for the library clear search / edit view buttons instead of relying on the main ui font since it all too often will show as an empty box (which is what'll still happen if the desired font cannot be found & is something afaict about how WINE does it's font mapping for extended characters vs what Windows is able to do)
Added an option to the Classic Skin preference page to be able to disable the song timer flashing between showing the current position & not if playback is paused (default behaviour is to flash it)
Added a workaround for files going through the re-used DirectShow (in_dshow) plug-in to avoid some file access sharing conflicts
Added a workaround for the AjaxAMP plug-in to avoid it causing a hang on closing due to getting into an infinite waiting state
Added a workaround for the modern skin engine & related skin scripts used to open the folder a file (typically what's playing from the in-skin albumart panel areas) to try to be more like the rest of WACUP & have it open the folder with the file selected (this should hopefully not break any modern skins but you never know & would need to have this modified later on - if it breaks anything report it!)
Added an option to try to provide a copy of the albumart for currently playing item in a manner that allows Discord to show it instead of just being limited to the predefined logo branding image
Added forced mono playback support to the FLAC, Musepack, Vorbis & WavPack input plug-ins (for when the option is enabled via the Playback preference page)
Added 24-bit output support for Musepack when the option is enabled via the Playback preference page
Added an option to the native scrobbling support so it can be made to only scrobble what's known to be in the local library database as a means to control what might be scrobbled (e.g. ignoring temp files)
Added processing time to the /*DIAG command-line options to help give an indicator of any perf issues when trying to load the specified database
Added an option to the classic skin prefs page so it's possible to disable the ' *** ' part appended to the songticker text if it needs to be scrolled due to being too large to fit within the skin area
Added a $rating([filename][, star_mode]) ATF method to make it hopefully simpler to have the current playing or a custom file's rating shown using unicode stars (imho nicer to look at vs asterisk unless setting star_mode to zero)
Added all of the created generic embedded windows to be accessible as toggle window global hotkey action instead of relying on the core &/or plug-in creating such windows to set things up which meant some were missed
Added support for skins to override the default big clock window colours which follow the main skins colours by either a bigclock.txt or via plugin.bigclock.* colours from modern skins (done in the same manner as the waveform seeker plug-in)
Added an option onto the History media library node to try to refresh the current titles it has cached which can be useful if the main ATF has been changed to help keep things looking the same (this new action will not refresh the title for urls as that's often not going to be viable without playing them & I doubt anyone would appreciate them all being pinged)
Added matching refresh & remove menu items from the local library node right-click menus to the local library view settings button menu which should make it easier for some to find that don't know about the node right-click menus
Added a remove view item(s) menu action to the local library view settings button menu as a complement to the additional menu items noted in the line above
Added a workaround for those trying to use dsp_altacast.dll (though it's installer will break WACUP's FLAC support due to replacing it's dll with a much older one) so it can now find WACUP's lame_enc.dll without needing to manually install a copy of that dll in the root of the WACUP program folder
Added making backup copies of the bookmark related files when they're being modified incase of there being any issues during the modification process
Added basic panning / balance support to the Not So Yasapi output plug-in but only if the source is stereo (mono / more channels is something for later) which should suffice for most when this plug-in didn't do anything (it's somewhat at odds with the intent of WASAPI but its been asked for a few times now so here we go)
Added a /PROCDUMP command-line option to aid in debugging issues if it's not possible to get WACUP started to be able to access the Error Reporting preference page to run the equivalent mode this now adds
Added a workaround for modern skins being used where the gen_ff plug-in won't correctly clean-up some of the temp files it creates in the OS TEMP folder causing a load of wtf*.tmp files to potentially build up over time (as for whatever bizarre reason it insists on making copies of some of the OS provided fonts before trying to use them instead of oh I dunno just using the actual font the OS is providing...)
Changed how the input plug-in metadata cache clearing action is triggered which should better avoid some issues seen by them trying to provide a response for the fake file that's being given to them (e.g. could cause some weird hangs on closing with some of the older input plug-ins)
Changed how main playlist title updates are handled when process closing is started to avoid closing taking too long & triggering the OS unresponsive handler
Changed how the preference window works to better verify that the dialog attempting to be created is likely to be valid before creating it to avoid a crash
Changed how the missing files highlighting is initialised to hopefully avoid causing a hang crash
Changed some of the metadata loading handling for the CD input plug-in to avoid a timing conflict when metadata for the loaded CD is trying to be obtained
Changed how the supporting dlls defined to be delay loaded by the input plug-ins is handled to attempt to resolve the loading failures (or unexpected dll unloading) seen by some in combination with some of the multi-threaded actions being made of those input plug-ins
Changed a number of the library plug-ins to no longer use delay loading which should resolve some of the crashes experienced by some with the recent build along with a small file size reduction across them
Changed the initial loading of the podcast & its related downloads view so it now won't attempt to pre-prime the local library database (if being used) as that was causing some ui elements to hang if starting / resuming playback on load (this reverts a change that was made a while back within the beta builds where at the time it had actually improved the ui elements hanging but other changes have since negated the need for this)
Changed the visualisation preference page to try to reflect more changes live without having to manually start / stop things (e.g. when selecting a sub-module)
Changed how exporting bookmarks are handled to use a quicker internal solution which also makes things nicer when using the pls output mode
Changed the streaming url plug-in to try to obtain some of the title information if not playing & the core requests a title (e.g. after adding a youtube url) though this can be slow (normally seeing 3-5 seconds for yt-dlp to resolve the information being asked for)
Changed how the local library albumart cache works (again) to avoid a collision which could cause "Artist1\Hits" & "Artist2\Hits" to show the same albumart due to matching things on "Hits" for the album
Changed the local library view handling to use playcount as part of the associative sorting when the rating column is the selected column to sort by (this better aligns with how the removed ml_local worked)
Changed some of the internal listview related calls when dealing with item selections to try to minimise reprocessing done in some instances which could in rare cases trigger the unresponsive handling
Changed some of the internal main playlist title update handling to hopefully resolve the slow to respond / deadlock that a number of crash reports implied
Changed a number of the plug-ins to make use of a new internal api call that attempts to get all of the needed metadata in one call from the local library (which is usually faster) with it falling back to getting the metadata on a per value basis whilst hiding all of that to simplify what the plug-ins need to do
Changed some of the internal playlist calls for getting & setting information (mostly related to the length) to avoid a deadlock & concurrency related issues
Changed the async albumart requests work to avoid a deadlock seen in some crash reports (e.g. due to the lyrics plug-in window & cache priming conflicting)
Changed the streaming url plug-in to remove a small delay in the processing of urls (this however doesn't resolve the fundamental slowness with yt-dlp's processing)
Changed how the taskbar text string is updated to try to workaround a rare hang crash that can occur to have it abort the action if things are likely to block
Changed some of the tooling related handling to consistently use async downloading which should resolve some of the ui related hang crashes that some have had
Changed the add / open url dialog to now attempt to process any url based playlists entered into it to use a non-blocking method to process the downloading (still need to apply this to other aspects)
Changed some more of the in_2sf initialisation to halve the remaining initial dll loading time & reduced the memory usage until the plug-in is actively used for playback
Changed how skins are being parsed to now ignore instances of a single skin archive within a sub-folder within the skins folder as that is not correct (occurs when extracting some "skin packs") so they will not appear in the menus / preferences as it's not worthwhile to re-work a load of the skin handling at this time
Changed some of the handling when trying to get the items within a local library view to elsewhere to hopefully resolve the deadlocking issues that have been seen in some crash reports
Changed how podcast feeds once downloaded are handled to try to avoid blocking in the libcurl callback handler which from some crash reports might be blocking actions for too long on some feeds causing weirdness to then occur once it's released & able to spin back around to process any remaining feeds
Changed the internal list of extensions to be ignored when getting metadata requests to avoid some more based on recent crash reports (e.g. ini)
Changed the checks made for an unhandled crash on the next time WACUP is run to verify the files needed have some data in them before trying to submit them
Changed the local library plug-in to do some more caching of api call responses to minimise instances of the calls blocking on another call on the same file
Changed how the lyrics plug-in handles initial loading of the background albumart to reduce it's initial loading impact to avoid a potentially large image resize action occuring on the main ui thread
Changed how the api calls to seek within the playing item are handled to be more reliable especially if it's from a quick stop & restart of playback where some of the input plug-ins can action the call but might be incorrectly reporting that seeking is not possible (this could cause some of the playback resume handling to fail but isn't the only cause for it)
Changed the milkdrop DirectX 9.0c not present handling to show the messagebox for longer before it'll then attempt to then auto-install it unless no is selected
Changed some of the WINE related handling including for now disabling WACUP's dark-mode detection if running under WINE as visually it's a mess due to afaict incomplete handling on WINE's side for things
Changed how the podcast library views handle tooltips for the feed / downloaded items to better condense down multiple linebreaks which can come from the source html so the tooltips use up less space
Changed most of the handling around thread creation to resolve some issues if they fail (e.g. due to low process memory) & to reduce code duplication throughout
Changed the local library & history database handling to attempt to recover the database if there's determined to be some indexing related issues within the files (e.g. due to dat & idx file mismatching)
Changed the podcast plug-in to attempt to determine incomplete downloads more consistently though this is still not 100% due to a lot of feeds not providing the correct file size of what will be downloaded
Changed the initial installer text to better reflect the current state of WACUP & it's feature support
Changed libcurl to make use of the c-ares library for the asynchronous DNS handling which reduces the time with large podcast updates
Changed the lyrics window loading so it'll avoid drawing the not found image when actual albumart is known it'll be drawn for a small time saving during initial process loading
Changed saving the current shuffle table to be done on it's own background thread to avoid it triggering a main ui thread hang for some setups where saving out was taking too long
Changed the global hotkeys plug-in to not be enabled when running under WINE since support between it & WINE & the user's desktop environment doesn't seem to be working per feedback (if WINE improves then this can be re-enabled at a later time & there's the command-line actions which can be used as needed via shortcuts which seems to get close to what's needed as a workaround)
Changed how closing works so WACUP will now attempt to minimise itself to avoid any ui related aspects updating whilst any potentially slow running actions (e.g. saving out playback changes) could previously cause the ui to stay shown in a somewhat unresponsive state which has in some instances allowed the user to try to still interact with it & that then causes the unresponsive handler to take over
Changed (again) the main image resizing implementation to something which does it much quicker (e.g. 220ms to 60ms for one 2900x2900px test image in the albumart window to go in a near 4K albumart window) which should make a number of aspects feel smoother along with allowing the local library cover view to process & populate things quicker overall (especially if set to prepopulate the albumart in the view)
Changed how the child library playlist view is handled to do item title load / refreshes on a background thread (e.g. for playlist items missing a pre-generated title on loading) to avoid ui related blocking (especially helpful during initial WACUP loading)
Changed the preference option to control the visual style of the plug-in preference page lists (icon + description vs simple list) to be on the root Plug-ins preference page instead of being part of the Advanced preference pages along with some other reworking of the advanced preference page layout for other changes made to it with this build
Changed the waveform decoder preferences to now be done as an integrated preference page along with adding an option to control the old floating point file normalising behaviour (which could make some files sound louder than expected)
Changed the installer to prevent it installing on WINE instances prior to 7.0 to avoid a number of issues that WINE 6.x & earlier have causing aspects of WACUP to break or not run correctly at all for some
Changed the minimum size allowed for the classic skin embedded windows to now be 250px (or the scaled equivalent) from the 275px minimum due to how the skin frame elements are defined (may look into adding additional skin elements to allow for small window sizes but that would require skin updates to occur so may not happen)
Changed how the crash reports are generated to make it easier for the Error Reporting preference page to now be able to show the crash summary for the last crash that occurred (depending on the type of crash this may still not be able to show a reason but it's doing the best it can for now)
Changed how IPC_STARTPLAY is handled from some of the gen_ff related plug-in calls to try to have it avoid a weird hang crash seen by hooking it & changing it to be proxied on as a PostMessage call
Changed the handling around the re-used in_mp3 plug-in to minimise the chance of it causing a hang on close crash (e.g. due to older dsp plug-ins not behaving correctly) during stopping / process closing
Changed some of the library plug-in loading to do a better job in avoiding non-WACUP named copies of plug-ins from being used (related to some work done to provide a newer 3rd party ml_sony.dll compile)
Changed the handling around the gen_ff metadata calls to try to further reduce the chance of it causing such calls to make a long running query occur on the main ui thread which can cause the OS to treat it like a hung process (until a replacement gen_ff is made this is always going to be an issue as it's scripting doesn't like asynchronous ways of doing things which is needed when it comes to metadata)
Changed how the crash reporter handles auto restarting so the dialog now cancels the restart if using the action button or clicking the close window button instead of triggering the restart immediately which is useful for when there's a core bug which might get it stuck in a restart loop
Changed the message shown if there's an issue to load any of the needed w5s component dlls to make it more obvious that re-downloading the WACUP install is required if it failed after a self-update attempt
Changed some of the native WACUP input plug-ins to attempt to react to the main replaygain preference option being toggled if playback is happening (there's still cases where it will not fully live update)
Changed back the global hotkeys plug-in to be loaded under WINE again as it can work for some setups & was unbeknownst to me being actively used so this should resolve that for those users
Changed how the WACUP core dll is built to now have the cpu optimised image handling aspects in a supporting dll (pucaw.dll) which is mostly to help save time when compiling the core dll
Changed the diagnostic preference page & crash reporter system details for WINE setups to better handle things when some of the information isn't provided despite the API calls giving a successful response
Changed some of the plug-ins, supporting libraries & core dll loading to reduce the memory & some aspects of initialisation to be done when they're going to be used instead of always done if never used (this is a small reduction compared to work done a year or so back but every byte saved & fewer calls needed to allocate more memory helps)
Changed the crash reporter to skip reporting the current skin in it's summary log file where it's know that a heap / process memory corruption has occurred which is likely to cause ini reading issues
Changed some of the plug-ins & core dll to remove some duplicate processing done on internally generated strings to reduce some of the cpu overhead for small per-call savings (aka micro optimisations)
Changed how WACUP is shown in Task Manager for its running process name depending on which loader exe is used
Changed IPC_GET_GENSKINBITMAP to expose the core's viscolor.txt related information for those skins supporting it
Changed some of the nde memory handling for a small reduction in database loading times (typically a few ms per db)
Changed the missing files highlighting of the main playlist to now do the periodic checking on a background thread to avoid it causing ui redraws & potentially blocking the main ui thread when the view of the playlist hasn't changed nor has the missing status of the items shown which avoids some main ui thread contention & triggering playlist redraws & the associated cpu load for no useful benefit
Changed the Taskbar Text sub-page to allow for the option to control appending ' *** ' to the end of the taskbar string if scrolling is enabled to be available under the default taskbar text string (previously it was only available if a custom atf string was selected to be used for the taskbar text though disabling this may break some external tools that scrape now playing from the process text)
Changed how the tooltips for the generic skinned windows are created to minimise their impact during initial loading (they tend to take 5-10ms to be created on my dev setup which adds up with multiple windows)
Changed the streaming source plug-in to avoid lame_enc.dll being immediately loaded if there's no streams configured to automatically be run on load
Changed how resuming playback on loading works to avoid a potentially noticeable delay in playback starting if replaygain handling is also enabled
Changed how the podcast plug-in saves out feed changes to avoid it causing as many ui related blocks along with getting it begun sooner during closing if there's a need for it
Changed how the native window tooltips are handled to skip creating them if a modern skin is being created
Changed how current playing information from the input plug-ins is handled to avoid too many calls causing higher than expected cpu loads especially for some modern skins which run unrestricted on their System.onInfoChange(..) handlers (e.g. when responding to bitrate changes)
Changed the modern skin timer frequency option to now offer a lower 15 fps target (this can help to reduce cpu load but will more noticeably affect some modern skin related animations & responsiveness) as well as hooking the timer responsible for the main visualisation so the option now applies to it (for some skins this will cause them to now see it running at 60fps instead of at around 40fps as seems to be gen_ff's default based on the timer interval specified)
Changed the WAV handling input plug-in's "formatinformation" response to try to report the sub-format of the file (e.g. "Signed 24 bit PCM")
Changed some more of the aspects related to modern skin plug-in handling to better ensure it's only created when a modern skin is being used for a small load & memory saving when only using classic skins
Changed how the vertical padding around the skinned buttons is determined to help avoid the lower part of characters like y being clipped (more of an issue for those on Win7)
Changed how the w5s components are loaded so more is done to check the expected callers of them to allow the core loader to avoid registering those that are not going to be needed (e.g. vp6/vp8 for in_nsv)
Changed the visualisation plug-in menu to now show a running or stopped text next to it to better indicate the known status of the plug-in by the core instead of it just showing as checked or un-checked
Changed how things occur after a known crash to attempt to clean-up any wtf*.tmp files which may have been left by the modern skin engine plug-in not being able to complete it's normal (albeit buggy) clean-up
Changed how the local library plug-in db change syncing is handled to minimise running whilst other queries can occur
Changed some playlist item length handling to avoid quirks seen when zero was specifically set (treated as no length)
Changed the installer to skip the Win7Shell plug-in being installed for those trying to use the Vista Extended Kernel
Changed the native media library plug-ins to update the currently playing item on next / previous if it's not playing
Changed the installer to auto-disable the Not So Asio plug-in if not actively used to reduce bug reports involving it
Changed the podcast view handling to reduce the scope of any internal locks & minimise the chance of that deadlocking
Fixed some of the crash issues seen with the Not So Direct output plug-in due to timing &/or input weirdness due to issues experienced prior to the output stage
Fixed a crash if the playlist editor window was sized to nothing whilst trying to scroll within it at the same time
Fixed a crash hang on closing if the preference page to show WACUP's current version information is slow to respond whilst also trying to close the WACUP instance
Fixed the probable cause of a deadlock with in_mp4 due to trying to process a stop request whilst other actions are still in progress (e.g. starting youtube playback)
Fixed the probable cause of a crash seen if there's an issue in trying to create a generic skinned window for a visualisation plug-in which is then destroyed as part of the failure clean-up related to this
Fixed a timing issue with how some internal aspects of visualisation plug-ins & the classic skin main window vu meter work which could cause it to randomly fail especially after doing fast switching to an item with different output format (e.g. sample rate changing)
Fixed a number of issues related to visualisation plug-ins with multiple modules within them when interacting with things via the visualisation preference page
Fixed a crash for some setups when trying to export the current bookmarks file to another format
Fixed opening to the crystal classic skin prefs page not working correctly & causing painting issues from the prior classic skin preference page that would've been shown before the plug-in forced it's own
Fixed a text clipping issue on the streaming source status text which appeared when it's been running on the same connection for many days
Fixed the add / edit view dialog getting stuck if having tried to edit the root local library view first & then going to add a new sub-view
Fixed a regression causing newly added library playlists to not always appear or react as needed within some ui elements until restarting
Fixed some issues with the handling whilst getting titles from yt-dlp which could cause them to show with question marks instead of the intended characters
Fixed a number of youtube urls not playing as expected (no playback & causing high cpu, super slow fps & missing audio, odd frame pacing)
Fixed a deadlock which could occur whilst trying to do a local library import / refresh & an item doesn't have a known 'album' metadata value whilst trying to determine associated albumart details whilst doing other interactions with the local library plug-in views &/or database
Fixed the probable cause of a crash when using the send-to menu in the bookmarks library view
Fixed some actions incorrectly trying to process CD related items using the alternative CD path format which could then cause WACUP to become unresponsive due to multiple actions trying to access the disc
Fixed some of the audio from the last played 2SF file being heard at the start of playing another 2SF file
Fixed a crash with out_neo if there's an issue with the selection of the output plug-in which is used by it
Fixed a crash seen when checking if a JPEG file was valid prior to trying to fully decode the image file
Fixed some issues due to input plug-in corruption / unexpected member overrides (e.g. due to in_mp3pro)
Fixed the probable cause of a crash seen when downloading a podcast in low memory / other process issues
Fixed some duplicate processing when internally converting strings to save time & avoid object lifetime issues
Fixed the waveform seeker not drawing cue points correctly due to a painting optimisation change from months back
Fixed some overpainting & flicker issues with the adding / processing status area at the bottom of the playlist window
Fixed a number of small issues related to how local library view sorting is handled across threads to hopefully resolve some of the odd crashes seen especially when doing fast local library view switching
Fixed read-only OGG files failing play due to incorrect file permissions being requested when attempting to open the files
Fixed a crash issue due to an internal api issue related to the handling of library window node creation & localised strings
Fixed a crash due to being able to trigger the skin right-click menu on the skin preference page if no item had been selected along with the menu incorrectly appearing when it shouldn't if clicking on the dead area of the list
Fixed a crash on close due to the Win10Shell plug-in where in some instances it's able to cause the process closing message to be received twice which then caused the plug-in to deadlock itself on the first call to close whilst receiving the second self-induced call to close
Fixed the probable cause of a hang / crash on closing (especially if doing quick load & closes with autoplay enabled) when using Not So Direct due to mishandling output device releasing which could cause the DirectSound threading to not like what's happening
Fixed some threading issues with the Streaming Source DSP which could cause a hang / crash on close to occur due to the title update thread still trying to acquire metadata when it's no longer viable
Fixed the waveform seeker plug-in sometimes trying to open a file for processing when the overall process is trying to close
Fixed a number of thread handling issues with some being able to keep running after they should've been stopped (e.g. bookmarks loading during a quick load & close)
Fixed in_mp4 triggering a crash under procdump instances when stopping playback due to a mis-timing in some of it's clean-up
Fixed the probable cause of a crash on closing with the history plug-in due to it's processing thread not exiting correctly
Fixed a number of issues with video only MP4 based files which either wouldn't begin playback correctly or metadata wouldn't be returned as expected
Fixed the format converting api getting stuck in an endless loop when trying to find an appropriate input plug-in for video only formats which could appear as the waveform seeker plug-in locking up / preventing closing from happening as expected
Fixed some items being incorrectly flagged as unsupported due to trailing characters / sub-file designations when checking for files being missing
Fixed a number of small memory leaks with the audio & video decoder handling in in_mp4
Fixed Alt+ not working if set as a global hotkey due to a conflict with the Alt+Click action on the stop button
Fixed a crash due to a timing issue with adding some of the preference pages whilst an unrelated attempt to get a localised string was also happening
Fixed a path generation issue with the ML_IPC_PLAYLIST_ADD api when using the import flag preventing the specified playlist from being copied over to be a library managed playlist
Fixed the local library not being able to correctly detect PNG albumart for the 'has artwork' & related metadata columns
Fixed the local library plug-in sometimes not accepting podcast additions if the item was already in the local library database but a re-download / podcast feed parse is attempted
Fixed the probable cause of some of the jtfe related actions on the send-to menu causing a crash due to incorrectly parsing the string list
Fixed a few instances where the handle from CreateThread was not being correctly released which could cause the process handle count to grow unexpectedly which for some could cause a process crash to occur
Fixed the podcast image handling not correctly trying to re-download the branding image if what's found locally isn't complete when a feed is being updated
Fixed some of the input plug-ins crashing if there's a delay between playback being attempted, their playback threads starting & a received stop / restart playback action
Fixed a crash seen by some when closing the folder monitor preference page
Fixed a memory leak for some instances where a local library internal query is mid-processing & is cancelled for another call (impact of this massively depends on machine speed & size of library database)
Fixed a loading quirk with the albumart window which could cause it to show the unpopulated cache image if the local library is taking too long to respond to the request
Fixed importing some older local library databases due to incorrectly handling the stringfields which could cause some actions to unexpectedly fail despite things seemingly looking to be correct
Fixed some small performance issues with the local library plug-in from the style of internal queries used to avoiding some reprocessing when it's determined it's never going to succeed with it
Fixed non-real filepaths incorrectly being reported as missing when the local library is checking for missing files when they are actually there & a check wasn't using the actual filepath for it
Fixed some deadlocks related to the visualisation plug-in handling especially when the multiple visualisation plug-in handling is enabled & actively being used
Fixed a crash due to how a file path conversion api was being called not handling multi-threaded access correctly
Fixed a classic skin loading issue which could prevent bitmaps with palletised colours being displayed correctly
Fixed a playback issue for DFF / DSF files via the in_dsd input plug-in if a DSP was currently active
Fixed a multi-threaded crash issue when trying to save multiple files from online responses at the same time (e.g. updating associated artwork for podcasts)
Fixed the probable cause of a crash when resizing some images especially in low available memory scenarios
Fixed a crash seen by some when doing clean-up of string data being passed into NDE based database files
Fixed a number of reproducible issues with trying to install skins into WACUP when a manual file association for the wsz & wal file types has been setup along with better handling of user cancellations
Fixed some issues with the Streaming Source & Server plug-ins where disconnecting & reconnect might not work correctly along with a possible audio glitching issue due to how title updates were handled
Fixed some title update requests from the main playlist incorrectly causing the local library to show a processing state with its navigation tree icon when what was attempted has long since been completed
Fixed some more dark-mode related issues with the Milkdrop (& possibly other plug-in) preferences due to mis-alignment of the drawing of some of the control texts
Fixed some file extension to input plug-in matching not working as expected when the file extension contains multiple periods (e.g. sc68.gz) causing the file to not play or go to the wrong input plug-in
Fixed some test metadata calls not getting the correct response for MP4 based file types (e.g. the type of the file not reporting video when it would normally be based on the assumed file extension)
Fixed a playback failure with Youtube urls via in_mp4 which mostly appeared in the dev / interim builds but was potentially able to appear within the prior builds
Fixed a deadlock issue if opening the history database fails along with some other related handling changes if there's a loading failing within the other plug-ins
Fixed the intended live loading of disabled library plug-ins via the media library preference page not working correctly in all instances along with the list not being sorted to place all active plug-ins at the top
Fixed the Ctrl+Alt+E / refresh playlist metadata action not handling all actions correctly depending on the main playlist title metadata reading options which could prevent changes from being observed
Fixed a visual issue with the bottom area of the queue manager window & library view when there's queued items
Fixed the queue manager library view not being created if the library core is enabled after WACUP has been loaded
Fixed the adlib based input plug-in not reporting the family string correctly for some file types (e.g M as A2M)
Fixed a handling issue if the artwork cache wasn't able to process the passed in image correctly which could cause the default / fallback image to incorrectly be used despite the source image being valid
Fixed the local library taking far too long to resume processing some of the background actions if a ui related call occurs which needs to interupt things (e.g. getting album metadata for artwork loading whilst doing a background refresh of metadata within the local library database)
Fixed a performance issue with the local library ingress thread by not properly caching the supported list of file extensions which caused it to be re-generated on all files attempting to be processed (e.g. going from around 60 seconds to do a quick check of metadata changes against 30K items down to 2 & a bit seconds)
Fixed some MP4 based files not playing / rendering all elements due to not correctly parsing the sample size information
Fixed a conflict between the Autoplay & History handling during initial loading which could prevent the resumed playback from being tracked though the playback offset (if that's enabled) would be tracked
Fixed a regression which broke the fallback handling of misnamed opus files with the ogg extension & vice-versa not being passed onto the appropriate input plug-in if the first match cannot play the file
Fixed a number of inconsistencies with the physically delete items handling between the core & plug-ins (e.g. main playlist right-click menu shortcut style & incorrectly being hidden when disabling plug-ins)
Fixed some quirks found with the albumart window due to the sped up image resizing sometimes allowing things to get out of sync visually during some quick playback & selection related changes
Fixed the child library playlist view incorrectly trying to re-generate titles for items that are missing one & had already been attempted to have a title generated for them which could cause some ui lag
Fixed the podcast download view list loading text not spinning
Fixed an mpg123 dll compilation issue causing it to be larger than needed
Fixed the in_mod input plug-in configuration incorrectly mentioning the option to treat files with sub-songs as a single file would only play the first sub-song when it should be playing all of them (that was only a thing during an interim build & was long since resolved between the config option being added & the prior preview build having been released over a 2.5 year time range)
Fixed a seeking issue with the in_mod input plug-in if configured to treat files with sub-songs as a single file due to a library bug
Fixed floating point encoded WAV file formats having their output incorrectly normalised which could cause some files to play much louder than expected (there's a preference option to be able to re-enable the old behaviour for those that might not like this default behaviour change)
Fixed some debugging code incorrectly being triggered by some setups which could cause a crash on initial loading
Fixed the link on the Error Reporting preference page to open the crash reports folder incorrectly selecting all of the crash report archives found in the folder instead of only selecting the most recent
Fixed a crash hang due to trying to determine albumart for cue files (this isn't a currently supported mode & the re-used in_mp3 just doesn't behave well for this)
Fixed an issue with in_midi sometimes causing a hang on closing due to the call to clear metadata cache as part of the main playlist title refresher sending an api message to the main window from within the main window processing
Fixed an api compatibility issue between the replacement local library plug-in & the re-used portables plug-in from 5.666
Fixed the version information on the snesamp wrapper about messagebox not being loaded correctly due to an api call issue
Fixed some issues reported with the installer whilst trying to obtain the Winamp 5.666 installer which should improve the reliability of the action (small refinement over the big overhaul done earlier on)
Fixed a weird crash with the gen_ff plug-in patching due to a timing issue in setup vs getting the plug-in hooked on load
Fixed the AVS window preset submenus not appearing requiring hard disabling of the skinned menu handling (might be something to do with cross-threaded handling but for now its simpler to disable it here)
Fixed the probable cause of a crash on closing due to the modern skin engine plug-in unloading or skin switching from modern to classic whilst some actions might have still been trying to determine the type of the skin as part of skin changing related notifications
Fixed the geiss visualisation plug-in incorrectly being compiled to always show the running frame rate as that ironically will reduce the frame rate (also re-worked a few things to minimise it's impact if enabled which gets it close to running at 30fps for some of the modes with 4K resolutions)
Fixed another handling issue which could cause a crash when switching from a modern style skin to a classic skin if an albumart request was in-progress from the modern skin engine
Fixed the replacement local library plug-in not implementing some non-unicode apis which some plug-ins not previously tested require to fully work (e.g. ml_sony)
Fixed the in the /WA_IPC command-line calls incorrectly being limited to 0-65536 when it should be 0-4294967295 due to the validation being re-used on
Fixed a thread handle resource leak caused by the in_mp3 input plug-in if it attempts to play something it cannot handle which over time can cause the process to fail due to too many open handles (aka the fun you can hooking dlls to workaround bugs without source code)
Fixed the spawned menus in the main playlist editor window when using a modern skin not triggering some of the intended core to plug-in callbacks which prevented some of the per plug-in submenus appearing
Fixed some of the font lists showing duplicate fonts (seen when running under WINE where it doesn't appear to de-duplicate instances of the same font which could cause some setups to lag enumerating them)
Fixed the probable cause of some modern skins showing random colour blocks when the skin is set to be scaled below the default size
Fixed the extraction of file extension changes from the prior build not working as expected which caused some files with multiple dots/periods in their full file paths from being played due to the wrong extension having been extracted which could not then be matched to any of the appropriate input plug-ins (this reverts some of the change as aspects are still needed for virtualised vgm related file paths)
Fixed the refresh metadata action in the local library filter panes not working due to a bug preventing the contextual data being passed to the processing thread
Fixed the local library view albumart cache not generating a consistent hash for the file when the media file was located within the first level folder (e.g. d:\music) which could cause some actions including refresh the albumart to not always work as expected
Fixed some albumart in the local library views not being displayed correctly (e.g. part of it being wrapped to the other side of the image) if the original size of the image vs the requested scaled down image didn't align in an expected manner against the desired output size for the image vs any centering that might be needed
Fixed using the built-in null output plug-in under some modern skins causing a crash when trying to interact with the skin crossfading controls (this isn't supported by the null output & neither is crashing)
Fixed the IPC_UPDTITLE api & similarly related internal actions not always appearing to work due to the background metadata request processor not always being created in an expected manner which also manifested in streaming url title updates not being shown
Fixed the equaliser window button right-click menus getting corrupted due to the wrong menu being worked on with the newly added actions on the on/off button from the prior build
Fixed a playback failure with in_mp4 in relation to the crash fixes introduced from the prior build due to some iTunes related metadata for gapless playback being incorrectly re-applied on all audio samples
Fixed the possible cause of some installs experiencing crashes when there is a playback event triggering the Windows 10+ SMTC feature due to some aspects of the cppwinrt instance having not been initialised
Fixed a crash with the recently added native scrobbling feature if playback is happening & the scrobbling setup has not been completed at the time of a new playback event
Fixed an in_mp4 related crash more likely to be seen if still playing whilst closing has been triggered due to an incorrect status check
Fixed in_mp4 not applying ReplayGain to AAC audio because someone didn't remember to do it when libfaad2 was introduced for AAC playback
Fixed another crash in the notsodirect output due to a mishandled device sharing update
Fixed how ReplayGain information is obtained so it should no longer cause a potential long blocking action on the main ui thread (e.g. due to the local library already being busy at the same time) which has been causing some setups to crash due to the OS treating it as a hung process or for refreshing the newly playing item title updates to fail or for ReplayGain to not be applied as expected for any MP3 files
Fixed a playlist item title formatting crash issue (possibly a weird side-effect of the issue above this)
Fixed a libpng build configuration issue which could cause valid png files created under much older libpng versions to fail to be decoded as expected which could cause full process crashes to occur or aspects of some modern skins / albumart to fail to render as expected (this explains some of the weird skin loading related failures over the years as libpng 1.6.x changed some handling on chunk load)
Fixed NSF/NSFE playback not working due to an internal api change no longer passing the internal object to the playback thread (along with some related changes to avoid the thread handle from leaking)
Fixed the crash report summary incorrectly handling crash reports from WINE configurations due to them having an extra line in the message body which wasn't being clipped along with not being able to access the zip comment if it's already open in another process as long as it doesn't have an exclusive lock & allows for shared read-only access
Fixed a hang / crash that could occur in some instances when trying to use the preference option to completely reset the local library database if there's some actions already running against it which are taking longer to abort than expected
Fixed a small closing performance issue with the NSF/NSFE (in_notyansf) input plug-in which caused it to appear in the profiling output when most of the time it shouldn't have been
Fixed the JTF window initial search on load incorrectly following the search delay input time which depending on the configured delay would make the window loading feel really slow
Fixed some parts of the skinned JTF window incorrectly changing the text font seen when moving the window between monitors (more of an issue if the dpi of the monitors is different)
Fixed the unskinned JTF window not showing the search results in the listbox using appropriate colours if dark mode is enabled & WACUP is following that OS styling
Fixed some of the local library queries incorrectly allocating more memory for the item records than is needed when the number of results is known instead of allocating with the default padding
Fixed some deadlocks related to getting metadata from the local library plug-in which was more likely to occur when using a modern skin which displays metadata for the currently playing item within it
Fixed the play/enqueue/enqueue & play handling from the local library plug-in incorrectly allowing the thread used to avoid a main ui blocking action (e.g. if made to play all local library items) to be created as many times as possible when an action was already in process (aka don't hold down enter on a selected library node)
Fixed a crash when trying to update the internal shuffle table due to too many actions from different threads trying to start playback
Fixed the albumart plug-in window sometimes not showing the metadata that's expected for the playing / selected file if it's not present in the local library database (this wasn't a consistent failure)
Fixed some issues with a number of the input plug-ins not liking being called too fast as part of some of the fix testing in the lines above this
Fixed a thread safety issue with an internal api used to generate unique values which could in rare situations cause a processing related crash
Fixed the local library plug-in incorrectly enumerating over all of the extended metadata values when being used to generate item titles & a "stream" prefixed tag is requested (e.g. streamtype) which will never succeed as only non-stream values are supported by the local library
Fixed a performance issue with obtaining AAC audio data from MP4 based files which often affected the waveform seeker plug-in preview for such files (e.g. taking 15 seconds vs under 2 seconds for a 3 minute test file)
Fixed the JTF window flickering (still not 100% on the groupbox) on resizing or when moving it around (much more of a problem for the unskinned version) due to the native listbox control not doing double-buffered painting & some of the JTF window drawing code being slower than it should have been (it's now much faster) along with the skinned version incorrectly pre-filling all of the window background when only the area not showing items needed to be filled in
Fixed the JTF window not correctly handling DPI related monitor changes which could cause the window to appear in an odd manner making it unusable for some setups
Fixed the new library playlist action not always creating the initial empty playlist file which would cause the playlist view to show the no source playlist error
Fixed an recurring failure when trying to send files to be processed for replaygain due to a timing & feature validation conflict when checking writing replaygain metadata is supported
Fixed a crash for some replaygain processing attempts due to a conflict with trying to update the local library metadata for the file in a way that was needed when WACUP was using ml_local but is no longer needed for it's native plug-in
Fixed some FLAC files incorrectly playing which could appear as too much gain being applied
Fixed MP4 based files with AAC not showing the appropriate progess when processed for replaygain (due to decoder handling changes it often meant they'd jump from 49% to 100%)
Fixed the folder monitor status column being auto-resized incorrectly if there's no folders set to be monitored
Fixed the wrong reason being shown in the replaygain processing list when the file(s) trying to be processed are handled by any input plug-in(s) which are unable to save the metadata into the file(s)
Fixed the library navigation tree handling incorrectly handling the bookmarks & local library plug-ins when moving them in the tree by not putting them into the new position due to them also acting as drag & drop source points (aka not getting the api right & returning the wrong value for the intent of the action needed)
Fixed the library navigation tree incorrectly indicating that sub-node items can be moved when it's not currently implemented in WACUP's library core (will be considered as a feature to add later on)
Fixed some inconsistency with the way controls on the history preference page were being handled causing some to be incorrectly disabled from unrelated options
Fixed the 'is podcast' option on the batch metadata edit dialog being always checked due to not verifying that the value from the local library had been obtained
Fixed an internal api change exposing a title handling issue in the Streaming Source DSP when it's set to use the v2 protocol causing the current playlist string being used for the title parameter causing it to display incorrectly (e.g. as 'artist - artist - title' instead of 'artist - title' when using the default ATF formatting)
Fixed some typos related to the word library (libary & libray)
Fixed the podcast downloads view running its processing timer when there's no active downloads running for a small cpu reduction
Fixed a small performance issue with the classic skin song ticker due to not caching the length of the generated string for later drawing
Fixed the classic skin song ticker not reflecting the changed song in some instances (more of an issue since the above fix altered the timing of things happening to expose this occuring on going backwards)
Fixed some main window timer actions incorrectly being double processed which could cause for slightly more idle cpu load than intended
Fixed some more unwanted initialisations in some of the plug-ins for aspects not needed immediately along with a small performance issue on applying colouring to some of the image elements
Fixed the handling after a crash not always clearing out the last crash message which could cause it to keep embedding the first crash message into any other crash reports instead of the actual crash reason which would cause the error reporting preference page to show the wrong reason (all due to trying to avoid calling some actions during the crash collection stage that would fail if using the native OS ini handling)
Fixed a missing reason being shown for plug-ins intentionally not loaded by the core under WINE due to it not offering the support needed to use them
Fixed a random crash when attempting some podcast downloads due to a timing issue preventing the needed internal service from having yet been created
Fixed some of the menu items on the import sub-menu of the library button menu showing the folder monitor sub-menu instead of doing the intended mode
Fixed the library view buttons being double processed for some of the plug-in views on loading for a small reduction in view loading times
Fixed a possible crash issue when closing the internet radio or podcast views due to incorrectly handling the clean-up of the imagelists used by them
Fixed a resource leak when modifying the albuamrt on the Alt+3 / File Info dialog due to some debug code incorrectly still being enabled for the build
Fixed a resource leak when the library navigation tree needed to set the icons within it & they didn't already match to the existing native icon sizes
Fixed a loading performance regression with the Playlist Separator plug-in (in_text.dll) along with using a less than ideal way to register itself in time to have it's separator items shown in the correct visual state as soon as WACUP's playlist editor window is visible
Fixed a crash when trying to add some google podcast feed urls
Fixed memory leaks related to the hotkey registration mis-handling the display string being used for them due to a regression from a prior bug fix a year or so back
Fixed a timing issue with the about preference page where the build version information could stay showing as checking for updated information when the connection had already failed but was not indicated
Fixed the local library view filter pane columns not reflecting things correctly when they're being re-ordered (if supported within the view handling)
Fixed some issues with the custom mp3 encoder setting handling which could cause it to be ignored & use the default encoder settings vs what's expected
Fixed an ini parsing issue when priming the settings cache which could cause the processing to get stuck in an endless loop due to unexpected differences in the linebreaks found in some ini files
Fixed the core incorrectly trying to update some of the notification area icon tooltips when those icons aren't configured to be shown
Fixed a loading performance issue with the Not So Direct output plug-in causing it to equate to a third of the initial time to load the default output plug-ins
Fixed a regression which broke double-clicking in the waveform seeker window to start playback around the position of the double-click
Fixed how podcast downloads are verified to better handle the feed file reporting a completely different size to what is downloaded which could cause some feeds to keep re-downloading already downloaded episodes
Fixed unicode stars not shown in the classic skin songticker when set to use the skinned font (now it's handled like a normal asterisk character instead of showing as blank spaces)
Fixed the internet radio plug-in running a timer to update it's navigation node which hasn't been applicable for a few years
Fixed opening the about dialog before any other dialogs (e.g. preferences) not applying dark mode as expected
Fixed the titlebar text of the generic classic skin windows sometimes flickering during painting (aka double-buffering to the rescue)
Fixed playback resuming on start-up & showing what's playing in Discord is enabled could sometimes show as paused despite playback happening due a timing issue with how some of the plug-ins resume playback
Fixed a drawing issue with the big clock ocsilloscope visualisation mode where there could be seen a partial line from the centre line to the first plotted value (e.g. more obvious with sine waveforms)
Fixed the big clock spectrum analyser visualisation mode still moving / flickering when playback is paused instead of sticking with the last processed state per all other spectrum analyser instances seen
Fixed the visualisation preference page not showing the currently selected plug-in as selected if it's not actively running when the page is loaded (the plug-in would still be run via other actions but the page would effectively act like no visualisation had been selected)
Fixed some inconsistencies with the visualisation preference page & the main window menus which could make it seem like the selected visualisation setting had been lost when it was tied to the running state instead of the prior preference / menu selection
Fixed an issue with the multiple visualisation support which due to changes related to dropping the re-use of the Winamp core meant some of the WACUP visualisation plug-in handling now wouldn't trigger the quit method to be called on closing the whole process (closing a single visualisation plug-in would do as expected) which could prevent some window positions, etc from being saved out as expected
Fixed the streaming url plug-in incorrectly trying to react to some metadata requests which can at times cause slow responses
Fixed a copy of gen.bmp being incorrectly loaded when using modern skins which due to some un-understood weirdness is causing some modern skins to crash on loading (if not it saves a resource handle & around 70KB of memory)
Fixed a full copy of the default classic skin images incorrectly being cached when using a modern skin for resource, memory & time to load the skin reductions (this related to the above fix but was applied in a generic manner for any skin & not ones that seemed to have issues due to a coding logic that didn't avoid the main classic skin loader from being triggered)
Fixed a parameter check within the albumart handling preventing some of the modern skins with embedded albumart panels from changing to the not found / default image & stayed showing the last valid image
Fixed a small performance issue with some of the replacement drawing code the WACUP core provides to allow the modern skin engine plug-in to run under it (how noticeable this'll be I'm not sure as it's a bit of a percent reduction according to the profiler & there's a lot more work that needs to be done or better still just getting on with a native WACUP replacement plug-in to handle modern style skins)
Fixed the classic skin song ticker & some related handling being incorrectly triggered when using a modern skin (e.g. changing the playback volume) which is a waste of cpu when it's not going to be seen
Fixed switching between some modern style skins was causing an unhandled crash (i.e. WACUP's crash reporter would not be triggered) due to service callbacks registered by the modern skin engine not having yet been removed by the plug-in causing them to be called when they're no longer valid which is not going to work out too well (aka another reason I do not like the gen_ff plug-in)
Fixed the lack of a video config group for the modern skins to be able to query the "autoopen" & "autoclose" values
Fixed a crash when the re-used in_mp3 plug-in is sent some file path strings which cause it to get an response that the runtime it uses doesn't like instead of the plug-in doing some extra checking first
Fixed the modern skin script timer handler incorrectly running some aspects when starting WACUP under a classic skin & never changing to use use a modern skin
Fixed the reproducible instances of the modern skin related windows briefly flashing white whilst WACUP is still loading (this is quirk of the OS vs timing to create the windows & is jarring on a dark mode / low light setup)
Fixed the mode switching button of the Vortex modern skin not displaying which prevented the action from being able to work (is unclear if the cause of this issue affected other modern skins or not)
Fixed the region map image related handling in a number of modern skins not working which would typically appear as missing seeker position bar / elements due to the elements being treated as a null region
Fixed a crash when trying to resize some of the moderns skins when the scaling setting has been set to less than 100%
Fixed an image handling issue which for some skins could cause an obvious black block to appear during resizing of the main window (this was affected cpro skins more obviously but was also present with the bento based skins & likely most other modern skins)
Fixed the modern skin window entries not appearing in the expected block of the menu if video support has been disabled
Fixed the mouse cursor when moving over some of the windows under a modern skin sticking on the resizing cursor instead of showing the expected arrow cursor (this was a problem for windows using custom classes)
Fixed a problem with the replacement modern skin script timer implementation which could cause it to not correctly manage some of the timer instances being registered which could cause the list to keep growing which over time could either cause the process to run out of memory or to make things slow / laggy
Fixed an issue with modern skins not restoring as minimised between instances due to the modern skin engine plug-in doing weird things with focus vs minimisation related messages (now being patched around)
Fixed most of the flickering on closing if a modern skin is being used related to how the WACUP core attempts to reduce UI related interactions within closing that can in some instances cause hang crashes
Fixed some issues with IPC_PE_GETDIRTY which due to changes in how WACUP handles main playlist changes to be done off-thread to avoid it blocking & taking less time but inadvertly broke plug-ins like AjaxAMP so they wouldn't see that a change had occurred (primarily due to the change having been saved out & the internal modified flag reset before the plug-in was next going to poll the api for changes)
Fixed the unskinned menus not always showing using the OS dark mode style if that's the expected view due to not triggering the initialisation needed if no dialogs have already been shown during the instance
Fixed a deadlock in the playback history handling for new installs or ones with an empty history database when there's a request for the metadata due to the local library plug-in also being empty & the option is set to query this as a fallback metadata source
Fixed a local library plug-in api call incorrectly reporting back whether a file is known in its database or not which could cause some incorrect behaviour such as in the file info pane of the bento / BBM skins
Fixed a crash seen by some setups where checking for updated podcasts & for updated supporting tools happen around the same time during initial process loading (which can seem like a failure after updating)
Fixed editing individual file metadata from within a local library view causing further access to the database to deadlock within the running instance which would in most cases cause a hung process crash
Fixed the selected but inactive visualisation plug-in menu not showing a checkmark next to the shown plug-in in single visualisation plug-in mode (inadvertently broke the fixes the prior build introduced)
Fixed a number of aspects of the local library plug-in which should either remove or minimise some of the ui hangs that have been reported along with reducing the amount of time need to lock the database (still not 100% where I'd like it to be especially when using a modern skin due to how it handles metadata requests on the main ui thread which can often cause things to hang vs other aspects of WACUP)
Fixed the local library view results pane sometimes staying showing as 'scanning...' when the search has completed due to a single result being returned which could prevent the final repaint being triggered
Fixed an nde empty integer related field optimisation check sometimes mis-reporting a field as being empty which prevented the data from being seen (e.g. song lengths) especially during metadata refreshing
Fixed the taskbar / process text not always updating as expected during some of the playback stopping actions especially if advance to next on stop is enabled
Fixed a metadata caching issue related to an api request from the modern skin engine plug-in used to populate the file info pane in certain skins (e.g. the bento based ones) causing files not known to the local library to not always show the current items metadata as expected (either getting stuck on the first file shown or lagging behind to show the metadata for the previous file which has been shown)
Fixed an alignment issue which prevented the processing status bar appearing in the main playlist editor when using a modern skin along with it showing a message not related to some of the processing modes
Fixed a sporadic crash when in_zip attempts to obtain metadata from in_mp3 if it's already trying to play an mp3 file
Fixed a crash in vis_classic when the timing of things is out of step between init & it trying to draw the background
Fixed a deadlock when trying to add items into the main playlist whilst triggering playback & shuffle is also enabled
Fixed a crash seen with the nde implementation when the setup is suffering from extremely low available memory to use
Fixed the possible cause of a weird hang during closing issue when trying to save out some of the nde based databases
Fixed an in_wav caused issue where it could incorrectly make a file existence check for core file is supported checks
Fixed another deadlock related to modern skins & the local library interacting due to the metadata some skins request
Fixed the local library plug-in triggering a local library view refresh on playcount updates if the file is not found
Fixed the history preference & navigation node text disappearing after disabling the history plug-in tracking options
Fixed the /debug command-line option preventing the created WACUP instance from completing its attempt to finish load
Fixed a loading quirk with waveform seeker which could cause lots of metadata requests for length in quick succession
Fixed various problems when obtaining metadata from MP3 files due to too many active api calls from different threads
Fixed some handling issues on the input & general purpose preferences which could cause a crash with enable / disable
Fixed some issues related to the classic skin window snapping due to the change a few builds back for smaller windows
Fixed in_wave not reporting the expected playback bitrate of any MP3 based files when it's used for fallback handling
Fixed the local library plug-in not updating it's api result cache (view cached was ok) with playback related updates
Fixed a small performance issue with the local library plug-in when it attempts to restore the view filter selections
Fixed the reproducible cause for the local library view handling which prevented it maintaining the filter selections
Fixed the local library view settings files incorrectly having changes re-saved when there's not been any differences
Fixed a performance regression with some local library view handling which caused them to take much longer to display
Fixed a handling issue which could prevent starting WACUP with file(s) to play not correctly triggering that playback
Fixed a number of issues with fullscreen video playback which prevented the on screen display being hidden or updated
Fixed a performance issue with some of the local library view actions when there is a need to find the selected items
Fixed a deadlock on trying to right-click within the local library view results pane & a slow action is still running
Fixed a hang on close if the waveform seeker has gotten stuck on trying to process a file which reports no audio data
Fixed a hang on close when video playback is active & is more likely to occur if fullscreen playback had been enabled
Fixed the lyrics window not doing well with large amounts of text which causes all of the ui to hang whilst rendering
Fixed the taskbar preview with it flickering on updates, not showing albumart or not working with no preview text set
Fixed the option to auto add an imported local library folder to the folder monitor not live updating the preferences
Fixed the reset metadata handling which could cause some of the input plug-ins to do unwanted initialisation on files
Fixed a handling issue which prevented title generation working for playlist separators with background title reading
Fixed a local library api compatibility issue which could cause a crash when the re-used portables plug-in is copying
Fixed the waveform wrapper plug-in for some situations mis-reporting things internally or not releasing a file handle
Fixed the waveform wrapper plug-in doing more processing on the "is it our file?" related checking than was necessary
Fixed some aspects of modern skins not updating if the title matches the previous one sent (aka memory patching fun!)
Removed legacy mode handling support as WACUP no longer has a need to leverage the winamp.original program file from 5.666 (it still needs a few of its plug-ins but that's not what legacy mode involved)
Removed the "Use Artist for Album Artist if not available when reading metadata" option from the local library preference page as WACUP's local library plug-in hasn't used it since July 2023 as it doesn't store the re-mapped value in the database unlike the 5.666 ml_local plug-in did & instead does the handling as part of the view filter queries which are handled via their own preference option on that page
Updated ASAP (in_later.dll) to 6.0.3 (9 Mar 2024)
Updated AVIR/LANCIR to 3.0.10 (18 Jan 2024)
Updated cacert.pem to latest (11 Mar 2024)
Updated cppwinrt (gen_win10shell.dll to 2.0.240111.5 (12 Jan 2024)
Updated c-ares (libcurl.dll) to 1.2.7 (23 Feb 2024)
Updated libcurl (libcurl.dll) to 8.7.1 (27 Mar 2024)
Updated libexpat (xml.w5s) to 2.6.2 (13 Mar 2024)
Updated libfaad2 (libfaad2.dll) to 2.11.1 (14 Nov 2023)
Updated libjpeg-turbo (image.w5s) to 3.0.2 (24 Jan 2024)
Updated libkss (in_msx.dll) to 1.2.0 (16 July 2023)
Updated libnghttp2 (libcurl.dll) to 1.60.0 (1 Mar 2024)
Updated libopenmpt (in_mod.dll) to 0.7.6.20445 (24 Mar 2024)
Updated libopus (libopus.dll) to 1.5.1 (4 Mar 2024)
Updated libpng (image.w5s) to 1.6.43 (23 Feb 2024)
Updated libsidplayfp (in_sidious.dll) to 2.6.0 (1 Jan 2024)
Updated libvgm (in_vermas.dll) to 0.51.1 (31 Dec 2023)
Updated minizip-ng (zlib.dll) to 4.0.5 (6 Mar 2024)
Updated Monkey's Audio (in_ape.dll) to 10.65 (16 Apr 2024)
Updated mpg123 (mpg123.dll) to 1.32.5 (17 Feb 2024)
Updated OpenSSL (libcurl.dll) to 3.3.0 (9 Apr 2024)
Updated pugixml to 1.14 (1 Oct 2023)
Updated sc68 (in_sc68k.dll) to the latest commit from 19 Nov 2023
Updated Spout2 (vis_milk2) to 2.007.013 (30 Dec 2023)
Updated unrar (unrar.dll) to 6.2.12 (3 Oct 2023)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 13 Apr 2024
Updated WavPack (in_wv.dll) to 5.7.0 (29 Feb 2024)
Updated zlib-ng (zlib.dll) to 2.1.6 (10 Jan 2024)
Updated Zstandard (libcurl.dll) to 1.5.6 (30 Mar 2024)