Added a new initial view for the replacement Local Library plug-in (ml_ll.dll) to make it easier to get media added into it from a legacy local libary database or the main playlist or a folder along with making it easier to disable the plug-in (or the whole media library) if required if you really don't want / need it & just kept clicking next when installing WACUP :)
Added a Lyrics window (via the gen_lyric.dll plug-in so you can easily disable this!) which initially will show lyrics from embedded, LRC or TXT files from the current file but will hopefully be able to do online lookup for lyrics later on (this plug-in & internal changes will need more work as well as I need more example lyric files to ensure I'm supporting all of the types out there correctly)
Added a basic 'Lyrics' tab on the Alt+3 File Info dialog to display (if found) the raw lyrics (embedded / LRC / txt) though more will be done as the features are expanded
Added an initial updated build of the official Musepack plug-in based on the r495 revision (SV7 & SV8 support along with basic transcoding support)
Added an initial updated build of the Highly Experimental PSF Player plug-in (in_psf.dll) based on the v2.0.8 source code from Neill Corlett for Playstation Sound Format (PSF / PSF2) playback support which improves integration with WACUP (e.g. transcoding support & using the common alt+3 dialog instead of it's own)
Added reading of embedded artwork from Musepack files to the shared metadata service (as the compatible input plug-ins don't support this anyway)
Added additional checks when WACUP is started to try to better deal with broken / incomplete installs (e.g. 5.666 installed over WACUP or 3rd party plug-ins replacing required dlls)
Added a new option on the Podcast preferences page to allow for updating the basic metadata tags with the podcast feed information always instead of only if it's found to be missing (too many podcasts don't actually tag their files correctly which is why this option has been added as a means to help with the metadata quality before the newly downloaded podcast files are added into the local library database)
Added the time taken to load the main config file & main playlist editor file into the profiling options when enabled (this might be interesting to some but was mainly to help determine a slow config / playlist loading issue seen)
Added some additional responses for IPC_GET_HMENU API related to the bookmarks submenus to help reduce the code needed by the Library Bookmarks plug-in
Added the ability to open the preferences window when clicking on the main window logo (e.g. lightning bolt) in addition to the prior behaviour
Added initial support for retrieving & displaying artwork for Audio CDs subject to getting a match from the Cover Art Archive (other options will be looked into along with support for local files)
Added a temporary workaround for allowing basic playback of incorrectly named Opus files with an OGG file extension when a 3rd party Opus input plug-in already exists (this will mean some playlist entries don't display the appropriate title information but that's more a limitation with trying to force an input plug-in to do something it wasn't coded to cope with)
Added a 'Add' button to the replacement local library (ml_ll) views so it's more obvious some of the means to get additional media added into the local library from feedback
Added a 'Save as' button to the replacement local library (ml_ll) views so it's possible to save the current viewed smart view results to (for the moment) a playlist file
Added a 'Send to' button to the replacement local library (ml_ll) views to complement the style of the library playlists view & to make accessing the send to action easier
Added an 'auto' mode to Milkdrop for the Fullscreen & Windowed/Embedded handling so the window when put into fullscreen &/or created will work against the current monitor the Milkdrop window is found on (e.g. running in windowed mode on a second monitor & double-clicking it to go into Fullscreen mode will run it on the second monitor instead of the default of going to the primary monitor unless you've manually told the plug-in via the plug-in preferences to use the second monitor)
Added a new option to the 'Now Playing' logging so the currently found artwork (if available) can be saved to a specified file for external tools to make use off in addition to the existing metadata to file logging
Added a new option on the Classic Skin preferences page to allow for always using a skinned font in the playlist editor status area if the option to use a skinned font is enabled (this effectively emulates the 5.666 & earlier behaviour which may be better for some classic skins vs how it might look with the non-skinned font handling that WACUP implements)
Added a %playlist_length% to the additional ATF values recognised by the custom Taskbar Text ATF handling
Changed a lot of the internal workings of the library History plug-in to better deal with the stability issues some have been experiencing with it
Changed how generic archives (ZIP, RAR & 7Z) are handled by the playlist manager core to be ignored from expanasion if the Archive Playback input plug-in is disabled (this should make it easier to prevent such files from being added to the local library or the main playlist editor when not wanted by simply disabling the input plug-in if it's been installed)
Changed how the Library History plug-in deals with tracking of playback in relation to seeking changes which should improve the playback tracking reliability when using the percentage / end of file modes
Changed the way forced titles updates in the main playlist editor are done to try to minise the risk of the OS deciding the process has stopped responding on long running updates (e.g. ATF formatting string changes or refreshing selected items)
Changed the NDE (Nullsoft Database Engine) dll provided to now be a VS2017 compile which based on testing provides a reduction in query times (how much & whether its noticeable depends on the size of the database & the complexity of the query being run)
Changed how updating the playcount information from the Library History plug-in when using the replacement Local Library plug-in (ml_ll.dll) to be done asynchronously to avoid some ui hangs (subject to the skin & the size of the local library database to be updated)
Changed how newly downloaded (or recently found) podcasts are added when using the replacement Local Library plug-in (ml_ll.dll) to be done asynchronously to avoid some ui hangs (similar to the aim of the above change)
Changed how newly downloaded podcasts are processed for metadata updating (if configured to do so) to be done asynchronously to avoid some ui hangs (similar to the aim of the above change)
Changed some of the loading handling to remove some of the existing hooking to instead do more directly (this is part of the general transition work from using the Winamp core over to just the WACUP core)
Changed how the main playlist editor file (winamp.m3u8/m3u) is processed on start-up to deal with an odd issue of it trying to parse a streaming url playlist that's the actual stream url to be played (attention to detail is not a thing a lot of stream broadcasts sadly have) that was causing up to a 6 second delay for the rest of WACUP to continue to load (the fix drops it down to ~2ms for my test setup)
Changed the majority of the Audio CD playback handling to only be done by the input plug-in instead of a mis-match between the Winamp & WACUP cores (this makes things cleaner in that not installing / disabling the Audio CD input plug-in does entirely remove any related code from being run)
Changed the MP3 encoder plug-in to now show the LAME patch revision (e.g. 3.100.2 instead of the main version as just 3.100)
Changed the option for clicking on the main window logo to toggle the media library window to now be on the General preferences page instead of being on the Media Library preferences page (this is related to the addition of that action now allowing for the preferences window to be opened)
Changed the internet related options on the General preferences page to now be provided on their own Internet preferences page
Changed the wording on the Discord preferences page header to better reflect what is now needed instead of the older information
Changed 'Read extended info on selection' to now be 'Rebuild titles on selection' in the main playlist editor which matches the Library Playlists & better conveys what is actually being done
Changed a number of ways that the Library Podcasts plug-in works to better minimise the potential for it to cause ui hangs & to reduce the amount of disk related access it might do (helpful with media stored on slower / remote drives)
Changed how the main playlist is restored between sessions to reduce the impact of some internal processing overhead (e.g. a test 58K entry playlist of various formats went from 1.5s down to 170ms to be fully loaded)
Changed the SID (Commodore 64) file handled when sub-songs are present to now be done as though the SID file is a playlist instead of waiting for the plug-in to manually add them when viewed / played (this might irk some but it makes the loading experience much cleaner & the sub-songs will actually be created in the correct position within the playlist instead of often appearing at the start of the playlist which isn't correct)
Changed the information area in the classic skin playlist editor window to not clip the text shown as much when using a normal font compared to the fixed size when using the skinned font
Changed some aspects of how the Podcast plug-in works to reduce when the background timers it uses for updating the naviagation tree icons related to it to only be done when actually needed
Changed some of the dll delay load handling to be done via a shared method to make sure things are more consistently done & it also saves a few KB off the total install size (it helps, heh)
Changed the SNESAmp Wrapper plug-in filename to avoid some of the SNESAmp plug-in installers removing it & making it look like a failed SNESAmp install
Changed how metadata is handled with the Classic Album Art window to reduce duplication of metadata calls to make it update a bit quicker vs beforehand
Changed the Alt+3 File Info dialog initial focus to be the filepath field instead of random parts of the dialog (it also pre-selects all of the text to make it easier to quickly copy it)
Changed some of the handling related to the media library core in preparation for the replacement plug-in
Changed the Milkdrop window handling when focused to now follow the global spacebar handling when set to toggle play / pause instead of it picking a different preset (using any keyboard modifier with the spacebar when the Milkdrop window is focused will still allow for the old behaviour)
Changed Milkdrop to only save out values that are different from the default values to keep milk2.ini cleaner
Changed how custom / dynamically added preference pages are handled so that the majority of the known WACUP ones are now given a pre-defined id which resolves some issues seen with the wrong page being re-selected between sessions (this shouldn't cause any issues for 3rd party plug-ins as the allocation of the id was always subject to what the core decided it was going to do)
Fixed the placement of some of the buttons on the add / edit smart view dialog of the replacement local library plug-in
Fixed the create / save button on the add / edit smart view dialog of the replacement local library plug-in not being disabled if a preset name hasn't been specified
Fixed the currently playing item not always being shown in the appropriate state within the library history view after changing the view when playback is not running
Fixed the Classic Spectrum Analyzer visualisation crashing when using the random preset action if no preset files could be located
Fixed toggling sections in the installer (especially with multiple changes) causing the reported install size to drop to zero & wrap around to being negative (i.e. showing as ~4GB)
Fixed the cause of the playback offset of some files not being tracked correctly with the Library History plug-in
Fixed the cause of leaving the Libary History view open when either corrupting some of the displayed data (the stored history was correct) &/or it causing the program to crash
Fixed reading / saving custom ATF strings for the main playlist editor not being correctly handled in all scenarios
Fixed (finally) the incompatibility between WACUP's NDE implementation & what the local library plug-in (ml_local.dll) expects that could cause some views / queries to crash (needed to allow the creation of null strings to keep it happy despite the plug-in not handling such things correctly to start with!)
Fixed some ID3v2.x tag reading issues related to less common string encoding
Fixed a crash seen when trying to load WACUP as part of a messed up install (e.g. 5.666 installed over WACUP) in some checking used to avoid issues relate to the skinned preferences handling
Fixed setting the year on newly downloaded podcasts (if configured to do so) not always handling the case of the feed not providing a published date (it now sets it to the current year if not provided)
Fixed a crash on start-up when older versions of the AdPlug (in_adlib.dll) plug-in is present (this is due to a conflict with the Winamp core trying to determine CD playback support that older versions of the plug-in doesn't correctly handle - newer versions of AdPlug don't fail & this is another plug-in that might be added to WACUP)
Fixed the agent right-click menu showing 'no playlists found' in some cases despite library playlists having been found & added into the menu
Fixed a crash when trying to play an Audio CD via the main right-click play submenu (was due to an incomplete replacement of the handling from the Winamp core which is now done all by the Audio CD plug-in)
Fixed Audio CD titles not always refreshing along with some other 'virtual' playlist entries by changing how they are treated to better ensure metadata will be queried if it possibly exists
Fixed the 'rebuild titles on selection' option in the main playlist editor not always only working on the current selection
Fixed a potential failure / crash when retrieving metadata from Audio CDs
Fixed the Library Podcasts plug-in causing other parts of WACUP to occassionally hang when it's processing a podcast feed & the Library navigation tree icon for the view is being updated (oops)
Fixed skins with extended characters in their name not being handled correctly which could cause them to fail to load after restarting the WACUP process
Fixed some other potential issues when using extended characters with some of the configuration settings
Fixed some actions causing the main playlist editor window to be redrawn when there's no obvious change which could cause flickering
Fixed some issues seen when trying to load a playlist that is invalid (i.e. no entries) but it triggers some of the actions (e.g. trying to play the first file) when it shouldn't
Fixed the settings for the SID Player (in_sidious.dll) input plug-in not being correct read / saved (which is definitely needed if you're trying to use the songlengths.txt from HVSC)
Fixed some podcasts being downloaded but having the wrong file extension applied to them which could cause them to fail to be played
Fixed the focus not being set on the edit box when opening the add/edit podcast feed dialog
Fixed the library podcast view not completing the drag+drop handling from its lists to other parts of WACUP (e.g. main playlist / local library)
Fixed some quirks with how the menu items from some of the plug-ins are added onto the Library button menu due to load time variations
Fixed how titles of files added from a parsed folder into the main playlist editor are handled when the option to only read titles on playback is enabled (not a default behaviour) to just be the filename (this doesn't run the ATF processing on the added entries & is done to better replicate the behaviour seen under Winamp 5.666 & earlier when using this title reading mode)
Fixed some issues related to DPI scaling changes & moving windows between monitors with different scaling settings (this might cause some minor regressions but it should prevent some of the main WACUP windows going all wonky until more is done with the core handling of the windows & being able to at least for classic skins scale to more than just normal or double-sized)
Fixed the Exclude Playback window not always sizing the status bar area of it's window correctly based on the currently used skin font
Fixed some of the weirdness seen when changing the size of the playlist editor font if its also set to be used by other plug-ins including the media library (the replacement media library core plug-in will further resolve this issue along with some plug-in specific changes to better handle often fast skinning updates that can with the older media library core cause it to provide an invalid font to use)
Fixed the folder to save podcast downloads into not always being created at the expected time which could cause seemingly odd download failures
Fixed the 'Window Settings' submenu not being correctly provided via the IPC_GET_HMENU API
Fixed the probable cause of some general plug-in loading related crash issues
Fixed the installer not always removing plug-ins that have been un-checked during install
Fixed the first supported file within a folder sometimes not being provided to a provided callback method when using the playlist manager directory loader (e.g. missing the first file from a folder added to ml_ll)
Fixed some library search strings with incomplete quotes causing a crash due to incorrect string length validation within the NDE parser
Fixed some slowness found with the loading of NDE databases to provide a small redecution in loading times (is around 5% on my dev install)
Fixed the async albumart api sometimes failing valid requests (this showed up during the development of the Lyrics plug-in so shouldn't have been seen with prior WACUP builds)
Fixed the albumart cache not returning expected results for size limited requests if width & height of the cached image is not matching
Fixed the probable cause of a crash during initial loading of the podcasts view when a podcast feeds update is already in progress (still not 100% on this change but it's better than doing nothing)
Fixed a drawing issue with the selected/total area on classic skins where it wasn't completely filling in the area with background element which for some skins looked wrong due to using a different colour
Fixed genre strings like "(33)Instrumental" of "(12") not being correctly parsed to the actual genre string (one of those ID3 tagging quirks I definitely wasn't aware off)
Fixed the grouped enqueue & play button sometimes not being shown in the correct state (with it instead defaulting to the play state) due to some inconsistency with the media library api being used
Fixed the podcast feed items not always being shown for the podcast feed in the list when the podcasts view is loaded (this would most often affect the first podcast feed in the list of feeds)
Fixed the probable cause of random display corruption in some of the library lists (e.g. history or replacement local library) related to some of the strings to be shown
Fixed youtu.be urls not being handled as expected
Fixed the custom Taskbar Text ATF string being saved with quotes around it which could keep re-adding the quotes on each time a change is made (this may require manually removing the unwanted quotes added to get it to use the string wanted if the issue was experienced)
Fixed the probable cause of no playback with media formats handled via in_vgmstream & using the Not So YASAPI output plug-in
Fixed some drawing issues with the playlist editor scrollbar when using a modern skin (parts not being drawn or overlapping incorrectly such as when using wider than normally seen scrollbar elements)
Updated giflib (image.w5s) to 5.2.1 (24 Jun 2019)
Updated LAME (lame_enc.dll) to 3.100.2.2 (8 May 2020) for a minor speed improvement
Updated libcurl (libcurl.dll) to 7.71.1 (1 Jul 2020)
Updated libnghttp2 (libcurl.dll) to 1.41.0 (2 Jun 2020)
Updated libopenmpt (in_mod.dll) to 0.5.0.12905 (24 May 2020)
Updated libvorbis (libvorbis.dll) to 1.3.7 (4 Jul 2020)
Updated minizip (zlib.dll) to 2.10.0 (25 Jun 2020)
Updated Monkey's Audio (in_ape.dll) to 5.47 (30 Jun 2020)
Updated mpg123 (mpg123.dll) to 1.26.2 (5 Jul 2020)
Updated Patreon list
Updated rapidjson to latest re-based update (23 Jun 2020)
Updated unrar (unrar.dll) to 5.91.1 (4 Jun 2020)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 21 Jul 2020
Updated WavPack (in_wv.dll) to 5.3.2 (20 Jun 2020)
Updated zlib-ng (zlib.dll) to latest re-based update (14 Jul 2020)