Added an initial attempt to find albumart online when playing both local files & streams for the currently playing / viewed item depending on where it is being viewed (this is currently not applied to items displayed within the local library views as it can for now mask where there is missing albumart though the intent is to enable this in a later build once some more handling changes have been made to ml_ll & some of the modern skins may not update their currently playing albumart panels correctly which is still to be looked into)
Added an initial implementation of a details mode for the local library album art filter views to provide something like the long since replaced ml_local plug-in offered (note: this is not available under WINE as it doesn't support the LV_VIEW_TILE style but if / when WINE does implement it then ml_ll will enable the support for this mode)
Added an initial implementation to do an online look-up of song lyrics for the current / selected playlist item depending on the lyrics plug-in configuration (this is probably not going to find lyrics for a lot of songs but is a start)
Added a native simple wav encoder plug-in (replacing the re-used enc_wav.dll from the 5.666 installer though it doesn't offer the OS specific overrides which most likely never used)
Added a native AAC encoder plug-in (replacing the need for the re-used enc_fhgaac.dll from the 5.666 installer) for one based upon FDK-AAC which provides equivalent local MP4/M4A & ADTS streaming handlers
Added transparency support for the classic skin posbar element so skins like Deltarune & "Super Mario Anniversary 35 Webamp Edition" should now render correctly instead of having a black / mis-coloured background around the parts of the bar that are intended to be missing
Added better handling for embedding albumart for some of the more common file formats as well as adding support for some file formats where support was lacking (e.g. MP3 & Opus)
Added a prompt when attempting to remove a monitored folder via the preferences to confirm if it should be removed along with determining if any files related to that folder should removed from the local library database or not (this defaults to keeping the files if choosing to remove the folder monitoring)
Added a "Copy file(s) to folder..." send-to menu option when the Yar-matey plug-in is enabled (this should make the plug-in more flexible over the main playlist centric design origins of the plug-in)
Added a folder exclusions section on the root of the local library preferences to allow files with the folders specified to not be scanned or allowed to be added into the local library database for reasons
Added skinned listview header hottracking support so the header item the mouse is currently over will be shown with a slightly different colour to make it more obvious it's the one being interacted with
Added an initial implementation allowing for the library playlists to have a "group" applied to them which is then used in the navigation tree nodes (if set to show them as child nodes of the library playlist root node) along with any menus (e.g. the agent & open playlist menus) which should help with setups with many library playlists (there is more to do with the group node view & drag+drop handling)
Added options on the Internet & Albumart preference pages to control whether there's an attempt to do online searches for lyrics & albumart respectively
Added WEBP image support to the common image decoder which for now is most useful in showing images from youtube streams so the thumbnails provided can be used instead of doing additional web searches
Added Bandcamp support to the Streaming Url Processor plug-in though the streams obtained appear to be limited to 128kbps MP3
Added support to attempt to use the thumbnail / artwork reported back by yt-dlp to the Streaming Url Processor plug-in to improve the overall experience before it'll fallback (if enabled per a changelog option noted above) to do an online look-up for albumart
Changed how the program closing skin extraction clean-up is attempted to avoid it being run when there's no skin extracted (e.g. base skin or having switched to it during the process)
Changed how the open folder action works (for aspects using the provided api) so it'll now try to open the folder if the file is determined to be missing to help check for bad naming, etc
Changed the format converter plug-in to prioritise using the native enc_fdkaac over the re-used enc_fhgaac if both are present along with avoiding the ADTS mode being shown for both in the encoder drop-down
Changed how incomplete classic skin posbar image files are handled to avoid some visual inconsistencies when the file is not as wide as is expected especially when the pressed state is not being provided
Changed the local library view settings menu to hide the option to show the album art title below the icon when album art is shown when running under WINE as it doesn't support the LVS_EX_HIDELABELS style
Changed the local library view album filter to also provide artist / albumartist (depending on other view configuration & metadata reading options) & genre sorting options
Changed the Streaming URL Processor plug-in to do some additional checks on the yt-dlp copy found to hopefully resolve a random issue of the self-updating download failing & that not being caught causing playback related issues to occur unless manually removing & re-downloading yt-dlp
Changed the Alt+3/File Info dialog artwork tab to enable/diable the buttons to avoid trying to use them when there's no need (e.g. delete when there's no artwork)
Changed the local library plug-in to avoid some of its early optimisation attempts in avoiding creating full records when that information wasn't needed for the view since other changes to leverage the active view cache can cause some instances in other parts of the player to not display atf based titles correctly due to the cached record not having the needed metadata loaded into it (e.g. hiding the artist column in the view results pane) for which this doesn't seem to cause any obvious performance difference now vs what was needed when the replacement plug-in was first created but might for some
Changed the file existence checking calls to better handle seemingly inconsistent responses from the OS calls attempted (especially for network / UNC paths) which resolves the recent reported issues with files using such paths not playing / being processed correctly in the local library imports, etc
Changed the /procdump command-line mode to avoid doing a crash collection for some network / OS api related exceptions that are normal which otherwise prevents the procdump instance continuing for our needs
Changed a few aspects from initially setting the taskbar text to the albumart window getting metadata in details mode when the local library is disabled to avoid main ui thread blocking actions due to slow metadata look-up (e.g. disconnected network shares) & provides a small saving on initial loading for normal setups
Changed some of the metadata api calls to do a better job when dealing with items within archives to obtain the metadata which should make the lyrics & albumart aspects more consistent to normal files
Changed the classic skin window handling when moving docked windows around & some go off screen & the user then changes to another program & then comes back which could cause off-screen windows to undock
Changed the discord rpc handling to use the recently added activity type so it now shows as "Listening to WACUP" instead of "Playing WACUP" which I know has grated some people for a looooonnnngggggg time along with changes to allow for a third line to be set when using the new listening mode along with adding in a legacy mode if the older style is preferred
Changed the lyrics LRC file handling to now be able to deal with more features of the specification which should improve what's displayed (e.g. where duplicated lines are specified in the file not output right)
Changed the local library plug-in to support a /debug mode action that'll indicate what is causing the processing animation to run as part of trying to help determine why it keeps animating for some users
Changed the lyrics tab on the Alt+3/File Info dialog to now be called "Raw Lyrics" to better reflect what is being shown on the tab which can mean it's not going to show the lyrics data nicely vs the lyrics window
Changed the lyrics tab on the Alt+3/File Info dialog to now try to normalise the linebreaks of the raw data so its more likely going to appear in an expected manner
Changed how the Streaming Url Processing plug-in works to avoid it trying to get metadata from playlists which for some could take many minutes before the action was able to complete which was not ideal
Changed the classic skin handling to no longer show the fallback repeat track & stop after current button elements if the skin being used doesn't provide them to resolve the repeated ugly button complaints as trying to get all of the classic skins updated to support these newer elements is effectively 20 years too late
Changed the classic skin stop after current button handling to use the pressed stop button action if the WACUP native button element cannot be obtained from the skin so there's some visual indication of the mode having been enabled
Changed the playlist saving to save a bit more time in removing an unnecessary string copy when dealing with relative paths to the current folder the playlist file is being saved into
Changed some of the internal code around to reduce the local build times for some actions whilst also consolidating some of the shared information that the plug-ins use from the core
Changed how the discord now playing is handled to allow for a third line to be set when using the new listening mode along with adding in a legacy mode if the older style is preferred
Changed some of the internals around how the compressed text resources are accessed to shave a few KB from the core dll by avoiding some code duplication
Changed the handling of XSPF playlist loading to defer some of the title generation if not available which could cause long ui blocking to better rely on non-blocking metadata lookup
Fixed the updater not showing that there's a new version unless the build had crashed from a bug fix related to the automatic update mode which has broken the default handling since early April 2024 (this means manually updating is required for all of the builds provided up to this point unless you're one of the lucky ones where the build is crashing on you - to say I'm annoyed with myself is understatement)
Fixed a potential hang on close when in_url is still processing a metadata request causing other actions to then hang whilst the program close is trying to be actioned
Fixed a crash when trying to process too many excluded playlist items or changes within a large existing excluded set of playlist items
Fixed a massive performance issue when trying to load the excluded playlist items or when trying to append a lot of new items to the exclusion list which could cause a hung ui crash to occur for some (e.g. goes from between 24 to 30 seconds for a 34K entry playlist to around 100 milliseconds)
Fixed the excluded playlist listview not hiding its horizontal scrollbar as intended & simplified how supporting plug-ins can do that
Fixed the probable cause of crash when multiple folder monitor events are being attempted & a ui related local library metadata call is received when there's a long running query already in progress
Fixed the libjpeg-turbo implementation including MMX fallback code when its never going to be used due to WACUP's SSE2 requirements
Fixed the AAC config dialog when loaded via the Streaming Source DSP (dsp_wc) not showing in dark mode if that's currently enabled
Fixed a handle resource leak when using the Streaming Source DSP (dsp_wc) which depending on the rate of streaming could cause a crash after a few seconds or a few hours
Fixed issues often appearing as a hung / unresponsive ui when multiple features are trying to interact with some of the encoder plug-ins at the same time due to mis-matched loading & unloading of them
Fixed a regression with the ATF square bracket handling causing it to incorrectly output string blocks when the lack of metadata / related action shouldn't be causing it to succeed
Fixed the action to refresh the selected playlist items not working correctly if done on the first item in the main playlist which would incorrectly trigger a full playlist refresh
Fixed the Streaming Source DSP to better handle issues related to the encoder plug-ins returning unexpected responses during encoding which could cause it to make opening the preferences or the process to hang on closing
Fixed an inconsistency with the batch removal of bookmark items where it might not always remove the selection along with changing to use a slightly faster way to determine the selection items
Fixed some performance issues when working with either a large bookmark file &/or when trying to add many items to the bookmarks which could cause the ui for some setups to hang for many seconds
Fixed the probable cause of a crash when using the send-to menu due to a handling issue within the library playlists plug-in vs other library plug-in whilst trying to avoid action ids conflicting
Fixed the Streaming Source DSP sometimes causing the active connection to drop when open the related preference page for the stream
Fixed the media library navigation tree losing its icons if the preference option to show them is toggled off & then back on again
Fixed the probable cause of a crash seen when trying to process some TTA files for albumart due to a missing check that the file has an appropriate ID3v2.x metadata tag & always assuming there is
Fixed the classic skin equaliser window sliders not appearing as expected if the needed skin elements have intentionally not been set (e.g. black boxes with "Super Mario Anniversary 35 Webamp Edition")
Fixed the probable cause of a main ui thread deadlock between drag + dropping items onto the main playlist whilst a waveform seeker preview was attempting to be triggered
Fixed a regression with replaygain related playback for files without that metadata whilst removing the non-legacy core handling along with it not live applying the level without having to restart playback (this is still possible for the plug-ins directly handling the processing)
Fixed the Alt+3/File Info dialog incorrectly sizing the albumart after an attempt to remove it from using the wrong control on the dialog as the basis for the display of the image found on refreshing
Fixed a number of issues related to trying to remove embedded albumart for some of the formats along with adding in some generic format handling to try to deal with input plug-ins not supporting this
Fixed toggling the shuffle mode on when something is already playing causing the song ticker to change to the first item of newly created shuffle list (this now avoids an immediate creation of the new shuffle list though might not cause the current playlist item to update until playback is started again if manually stopping playback instead of allowing it to keep playing through)
Fixed stopping playback causing some titles including streaming urls to incorrectly reset to the underlying playlist entry instead of leaving it showing the last valid provided title (as is expected)
Fixed the Yar-matey plug-in crashing due to a number of long standing issues with the creation of the from & to buffers needed to specify the files to be copied
Fixed some issues if the local library processing thread closes / fails unexpectedly (e.g. due to in_mp3 or in_dshow throwing runtime errors) causing other aspects to still act like the thread exists (e.g. the local library root node sat spinning with a bracketed number after it or getting a prompt that things are still being processed during closing)
Fixed the waveform seeker plug-in incorrectly trying to load an associated cue file if the configuration option is off (it wouldn't display things but still read the file which wasn't intended)
Fixed the waveform seeker plug-in remove specific waveform cache render not always working
Fixed some issues related to the waveform seeker plug-in re-processing archive based entries
Fixed a beta build specific string on the new version dialog when initially loading not being correctly null terminated causing gibberish text to be shown after the intended string (aka won't see this as being fixed until the next build after this one is triggered to show there's a new update available)
Fixed some issues related to the current playing & songticker text not updating as expected or glitching or showing the WACUP build string such as when autoscrolling is disabled & trying to play streams or when trying to click & move the songticker under classic skins
Fixed a string processing issue on the Alt+3/File Info dialog when trying to process some of the replaygain information
Fixed a crash seen by some when going to "Supported File Types" tab on the Local Library preference page along with it not always restoring the de-selected state of some items
Fixed the probable cause of some random failures seen with the delay loading of some of the supporting dlls which is more likely to occur those affected during initial loading
Fixed some issues with the reading of metadata & some of the properties from local raw AAC files especially with the length
Fixed the in_xsf derived input plug-ins not being able to find the *.xsflib file if there's unicode characters in the parent file path (this doesn't resolve playback issues with NCSF which are still being investigated)
Fixed the playback of NCSF sets often not working & depending on the machine potentially causing a crash due to not ensuring a 16-bit index value is just that despite being stored in a larger variable type
Fixed seeking in NCSF files especially if during playback starting crashing
Fixed some of the metadata & albumart look-up for virtualised files not always working due to failing the file existenace checks which is now more consistent in looking for the real file related to them
Fixed the internal method for handling multi-line strings sometimes clipping the text being set into the edit controls (e.g. the raw lyrics tab on the alt+3/file info dialog could sometimes be wrong)
Fixed urls in XSPF files incorrectly having local file handling applied to them causing them to not then work as expected (e.g. if trying to use such a playlist file from an Icecast streaming server)
Fixed the equaliser band information in the classic skin song ticker incorrectly handling the bands in the kHz range due to some internal string optimisations made a few months back
Fixed some mp4 based video files not playing at all due to missing some of the expected header information used to setup some of the internal states so this now tries to get that from other information
Fixed the uninstall button on the Skins preference page not acting correctly as it hadn't been changed from still expecting the winamp core to be handling things & I don't know how I managed to miss it!
Fixed some inconsistencies with the local library view albumart cache handling which could cause some items to incorrectly show the same image
Fixed a crash in yule log from not handling empty titles correctly in relation to some recent internal changes to reduce string re-processing
Fixed the video window under classic skins when not set to use the dedicated video window skin support was causing the video contents to be incorrectly scaled based on the wrong overall window height causing higher then expected cpu load due to having to process the video output to the needed scaling to fit which also would cause dead space to appear around the video content depending on its size
Fixed the release notes action on the new version dialog not working
Fixed the about WACUP preference page not showing the update to new build button for the preview builds despite the new version having been detected
Fixed the Streaming Url plug-in not always sending on the initial seek to action to the other input plug-ins which could cause playback resume to not work & the stream to always resume playback at the start
Fixed the multi-year entries in the local library albumart filter trigger a crash from incorrectly applying the tiled view mode handling along with the tiled view tooltip not showing all of the information
Fixed a bug with the GetBasicFileInfo(..) based api calls which from a prior crash bug fix incorrectly blocked calls where a title string buffer wasn't provided which then broke some plug-ins only looking for the length (e.g. Big Clock's playlist elapsed / remaining feature)
Fixed some NCSF files playing in an incorrect manner
Fixed a crash when trying to access some XSPF playlists within the library playlists root view due to an internal api mismatch introduced a long time back whilst trying to improve ml_pmp compatibility
Fixed some inconsistencies with the classic skin song ticker when the main playlist is cleared preventing it from updating the song ticker text to show the WACUP build string whether its playing or not)
Fixed seeking not working if there's playback still happening after the main playlist has been cleared preventing the correct length information for the playing item being used to allow seeking to work
Fixed the "open playlist from library" sub-menu on the main playlist's playlist button menu sometimes being duplicated on repeated displaying of the menu
Fixed drag+dropping a playlist child node onto another already open playlist either within the playlists root view or an open child playlist node not accepting the contents of the source playlist
Fixed an issue with maintaining the last media library node between instances if the string used to identify the various levels of navigation tree nodes was longer than had been previously expected
Fixed some of the handling around misnamed MP4 files as MP3 (it happens 'cos internet) which prevented the fallback handling from being triggered if the other MP3 fallback handling had been attempted
Fixed an issue with removing local library view nodes which could cause it & potentially more duplicate copies to re-appear after restarting WACUP due to not correctly storing the new number of views
Fixed some of the handling issues around modern skins where starting WACUP minimised might prevent the main playlist or the media library windows to not appear or be shown in an unexpected manner (there's still likely some issues remaining & there's a limit to how much more I'm going to be spending time trying to work out issues with the re-used gen_ff plug-in from the 5.666 installer as it's a meh plug-in)
Fixed some of the workarounds to avoid using in_mp3 for metadata reading since it has stability issues if called across multiple threads not always catching it & allowing the plug-in to still be called
Fixed potential crash issues when live loading the gen_ff, in_mp3 & ml_pmp plug-ins after WACUP has already been loaded due to not triggering the creation of some of the services needed to support since WACUP will try to avoid creating things that are not going to be used during that running instance
Fixed the possible cause of some of the modern skin switching / window opening / closing related crashes by patching around some of the comparison calls being attempted to deal with invalid value checks
Fixed a possible cause for some of the redux installer downloading issues & getting stuck in a retry prompt loop if there was a valid internet connection but the attempted download may have been incomplete
Removed the vlb.w5s system component which only the re-used in_mp3 uses & am fairly sure nothing out there is likely to be trying to use this along with removing VLB & AAC from the default in_mp3 extension list now that in_mp4 is able to handle local AAC files (in_mp3 is still used for playing AAC streams for now)
Updated c-ares (libcurl.dll) to 1.33.1 (23 Aug 2024)
Updated cacert.pem to latest (2 Jul 2024)
Updated libcurl (libcurl.dll) to 8.9.1 (31 July 2024)
Updated libdeflate to 1.21 (4 Aug 2024)
Updated libnghttp2 (libcurl.dll) to 1.63.0 (27 Aug 2024)
Updated libopenmpt (in_mod.dll) to 0.7.9.21223 (21 July 2024)
Updated libsidplayfp (in_sidious.dll) to 2.9.0 (12 August 2024)
Updated lzma (lzma.dll) to 24.08 (11 August 2024)
Updated mpg123 (mpg123.dll) to 1.32.7 (7 Aug 2024)
Updated Monkey's Audio (in_ape.dll) to 10.76 (15 August 2024)
Updated openh264 support to use 2.4.1 (2 Feb 2024)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 27 Aug 2024