Added the first testable implementation of the replacement Media Library Core (aka gen_ml2) which can be enabled via the Media Library preferences page for easier toggling between it & the legacy Media Library plug-in (gen_ml) to aid in testing (this is now integrated into the WACUP core & when enabled offers a simple disable the Media Library mode for those who don't want this feature without having to mess around & find the appropriate plug-in to disable)
Added the first testable implementation of a replacement shared skinning api which is used via the Skinned Prefererences option & also with the new Media Library Core (this resolves one massive issue I've had with Winamp since generically skinned windows were added in that you had to have the media library plug-in present to be able to use it which often people don't want & that meant either un-skinned dialogs or manually doing the skinning)
Added an initial Intro Play mode to the Playback preferences page to allow for only playing a specified duration of a playlist entry before automatically going to the next as well as how much fadeout will be applied (aka WACUP's gen_intro implementation)
Added some extra error handling related to mp4 video playback decoding failures seen in some of the recent crash reports (rather than crashing it'll hopefully abort playback now)
Added some extra checks to some of the input plug-ins which delay loading their supporting library dll to avoid some of the recent crash reports where the library dlls cannot be found for some reason (still not sure what is going on with these setups as the installer should have correctly installed things but better to be more cautious & self-disable plug-ins if there's an issue than allowing them to crash!)
Added additional options for the Now Playing current artwork saving support to give more control over the saved artwork (e.g. unmodified, kept to the specified size limit or always sized to the size limit whether it's larger or smaller than the set limit)
Added a /RESETCLASSICSKINPOS command-line option (also used by the /REPAIR mode) which will attempt to reset all of the known classic skin window positions back to their defaults (e.g. if going from modern skin to classic skin has messed up / lost windows offscreen & you need a quicker way to get them back than for example using the likes of winspy++ to force them back into view)
Added options in the Library Playlists plug-in to make it easier to import library playlists from another Winamp / WACUP install & have it maintain the displayed filename (which doesn't happen if you just add the folder via the more generic folder / file import option)
Added support to import direct Google Podcast Feed urls (this covers urls using podcasts.google.com/feed/ - if you find others then please let me know so I can look into what's needed to support them)
Added a psuedo debug mode to the Playback -> Equaliser preferences tab for inspecting what is currently set (this is mostly to help with starting to replace the Winamp equaliser handling code for WACUP's)
Added a 'Silence Detection' preferences tab on the root Playback preferences node which is an integrated version of my Silence Detector DSP plug-in (dsp_silence_detect.dll) & allows for doing certain actions based on a configurable amount of digital silence being detected (e.g. restarting the current playlist item if you're listening to a stream & the internet connection drops)
Added some new hookable notification messages for the repeat & shuffle modes being changed to help simplify detecting such changes (for plug-ins updated to detect these messages)
Added transcoding api support to the OpenMPT Module Decoder plug-in which opens up mod files being rendered by the Waveform Seeker plug-in as well as now being a supported format in the Format Converter
Added preference options on the Playback preferences page to specify the fadeout duration for the Intro Play & normal 'Stop with fadeout' option (no more being fixed at around 4 to 5 seconds like Winamp)
Added a preference option on the Advanced preferences page to allow for only showing the genres from the genres.txt file in the native file editing dialogs without it showing the predefined list of genres
Added support to the Streaming Source & Server plug-ins for sending / receiving the next expected title
Added support for showing the now & next playing on the basic Streaming Server status page
Added an option to the OpenMPT Module Decoder plug-in to control how modules with sub-songs are handled (this defaults to treating modules with sub-songs as one big file with disabling the option going back to the older behaviour in only playing the first sub-song - better support for sub-songs will follow!)
Added the currently available visualisation plug-ins onto the visualisation submenus so it's easier to quickly switch or disable using a visualisation without having to go into the preferences
Added the ability to set an older Winamp logo via the Discord now playing support as well as making it easier to enter a custom app_id if you want to use your own thing (within the limitations in the WACUP forum thread)
Added the ability for the visualisation plug-ins to now be handled by Crystal Classic skins (classic skin window transparency) via some additions to the WACUP core making it possible to detect generic skinned windows not created on the main UI thread (blah blah blah this makes things more consistently handled :) )
Added a /NOPATHSINI option to the installer for those really wanting to get a pre-5.1x style handling of the WACUP settings with new installs (don't do this on an existing install as you will regret it) so it's not within a sub-folder within the main program file (weird legacy request ;) )
Added a compatibility mode for the MAD input plug-in (in_mad.dll) so it can be used in a portable manner without needing to run as an administrator due to it trying to read / save it's settings from the OS registry (it'll now redirect them to be read from an in_mad.ini from the WACUP settings folder)
Added an initial test release of the Not So Wavey replacement WaveOut | MME output plug-in which unlike Winamp's WaveOut (out_wave) plug-in it will by default alter the output volume / pan directly on the audio without a discernable lag (unlike out_wave's alternate volume mode which was only ever as responsive to such changes as the length of the output buffer) instead of altering the WACUP process volume
Added IPC_ENQUEUE/IPC_ENQUEUEW APIs to make it a bit simpler to just add an entry to the main playlist when none of the other information is known / needed (this is an in-process API to complement the existing WM_COPYDATA's IPC_ENQUEUEFILE/IPC_ENQUEUEFILEW handling)
Added play/enqueue/enqueue & play/sendto support on the podcast view channel list to complement the episode list options
Added a 'remove duplicates' action onto the root playlists view right-click menu so it's easier to run the action on multiple playlists
Added a generic solution for dealing with the api that the modern skin engine attempted to use only with the Nullsoft DirectSound output plug-in for offering in-skin cross-fading support (this now opens up subject to plug-in support more output plug-ins being able to be used with this modern skin feature as well as removing the messagebox that is shown when using other plug-ins that don't support this)
Added support for using the transparency within splash.png images to allow for non-rectangular loading splash screen images to be used
Added a helper mode on the placeholder 'Last.fm Scrobbler' preferences page for installing the Legacy Last.fm Desktop App & associated Winamp plug-in (too many have reported trying to do this & don't notice that it's put the plug-in into the default Winamp install location & not WACUP's plug-in folder which this additional handling should help resolve if the mode on the preference page is used!)
Added skinning of the tooltips associated with the native windows including the generically skinned window frames for a more consistent skinned experience
Added the ability to make WACUP use a user specified copy of the youtube-dl instead of relying upon WACUP to manage things (for those using shared file handling)
Added reporting of the main thread stack size on the misc diagnostics preferences (this is to help with debugging some of the crash issues being experienced)
Added the ability to 'shift + click' on the visualisation sub-menu to open the plug-in's configuration (if provided as well as not having to set it as active)
Added experimental support for running multiple visualisation plug-ins at the same time (see the notes when enabling the mode via the visualisation sub-menu on more about this - the visualisation plug-in preferences page intentionally doesn't allow for mananging this new mode for this iteration of the feature whilst it's being tested)
Added support for double-clicking on the classic skin playlist editor action buttons to replicate what Winamp does whilst WACUP keeps using standard OS menus
Added the SNESAmp plug-in (for SPC playback support) as an option during installation to hopefully resolve some of the installation issues that have been recently reported with the plug-in
Added reporting of the main stack usage in the crash reports to try to better help diagnose some issues
Added support within the skinned edit controls when using the replacement media library core for Control + Backspace to act as a clear edit control shortcut (instead of it not doing anything useful in adding a random square control character)
Changed the Milkdrop desktop mode handling to use a method that will work on Windows 8 & newer without it requiring additional dlls nor it having the flickering issue that's plagued this feature for years due to Windows changes (note: this change kills the mode on Windows 7 installs - I'm still looking for a nicer solution that's not affected by 32-bit vs 64-bit Windows versions as the prior solution was)
Changed the WACUP core dll to now be a VS2017 compile which was the last thing being built as part of the WACUP provided files with the older VS2008 compiler (hopefully I've caught any issues that exist from mis-matched compiler quirks that can occur)
Changed the installer to download the default modern skins if selected instead of always shipping them within the installer &/or patching copies from the 5.666 installer (this gives an ~20% saving on the main WACUP installer whilst reducing the overall download requirement for subsequent updates as the modern skins provided aren't going to be updated every build so I'll save everyone & myself some bandwidth)
Changed how the 'Stop with fadeout' option works compared to Winamp's behaviour to try not to cause the UI lock-up whilst the fadeout is in-progress
Changed how the Podcast feed updates are handled to reduce the idle resources used for a small memory reduction (it also makes crash reports a bit cleaner for me so win-win)
Changed the Playback Tracking -> Now Playing preference tab to now have the artwork logging related options (as introduced in build 5864) to now be on their own Current Artwork to better accomodate the additional feature options related to it
Changed how the DirectX 9.0c requirement by Milkdrop is handled to now be done when Milkdrop is started instead of relying on the installer to generically do this (i.e. it now won't install a minimal version of the older DirectX 9.0c runtime unless it's actually needed as some would prefer based on feedback received which should improve the initial installation time & resolve a number of false positive issues related to running the DirectX runtime during install)
Changed how the Streaming Source DSP plug-in determines the LAME encoder dll it uses to avoid older versions being used which can & will cause crashes
Changed how some of the metadata requests are being handled to hopefully minimise some of the potential locking issue seen in the crash reports & user feedback
Changed (temporarily) how background titles for main playlist entries are read for UNC based paths to lessen the likely of a title being generated for unavailable shares (more will be done to improve this so it doesn't cause the UI to lock-up for a while if the UNC location cannot be resolved)
Changed the Streaming Source plug-in to use less resources when there are no active streams
Changed how the library playlists view works when there are no playlists to make it more obvious what can be done to create or import playlists to be shown within it
Changed (again) the name of the SNESAmp wrapper plug-in as the SNESAmp plug-in installer generically removes any in_snes* filenames which can remove the WACUP wrapper
Changed more of the standard Winamp APIs to now be handled via WACUP code (this also includes deprecating ones that show no obvious sign of being actively used)
Changed the Next On Stop plug-in to now be directly part of the WACUP core which should also resolve some of the quirks with it & reduces the overhead (e.g. 2 few subclasses & a 12KB size reduction from not being a separate plug-in)
Changed how the clasic skin main window is 'hidden' vs how Winamp handles it to try & avoid it overlapping onto other monitors depending on their orientation (e.g. one above another was more likely to have parts of the window showing on the monitor below it which wasn't the expected behaviour)
Changed how the current playback position is obtained & also provided via the APIs to try to reduce any duplicate processing (this change will hopefully also resolve some of the deadlocks that have been happening from the crash reports)
Changed the video window & support to not be created if there are no compatible input plug-ins present reporting video playback support on start-up
Changed the icon provided by the original Winamp process to now be the WACUP icon as per a user request to make things more consistent in the task manager & volume mixer for WACUP
Changed where the original Winamp notification area icons are stored / accessed from to be part of the shared resources dll & related changes to support this (e.g. with the agent mode)
Changed how the notification area icons are loaded to work better on higher resolution setups (this means that the higher resolution version of the icon can be used instead of it picking the smallest & the OS upscaling which makes the icon look blurrier than it should be)
Changed the skins menu (all 3 instances of it) to now be completely managed via WACUP code instead of relying on the Winamp core & then having the partially integrated Skin Mananger plug-in re-processing the menu items from Winamp (this should make the skins menu a bit quicker to load as well as removing some of the hooking that was needed which provides a small reduction in overall message processing)
Changed some more of the menu actions to be handled via WACUP code along with fixing some missing / incomplete handling found during testing
Changed some of the menu handling to de-duplicate things between the 'main' & the 'modern' menu resources where the same sub-menus were duplicated to instead be done in a shared manner (slightly less resources & all of that)
Changed some of the integration of the Three Mode Repeat plug-in in preparation for it being merged into the WACUP core (which will be completed when the main window drawing is taken over!)
Changed some more of the discord related handling to try to fix a locking related issue seen with some setups where either an update is blocking &/or something has gone wonky with the connection to the client
Changed pressing space in the main playlist editor when configured to scroll the current playlist item into view to now also flash the playlist item if the corresponding Playlist preferences option is enabled
Changed the installer for new installs to set MDS as a supported file type against the MIDI (in_midi.dll) input plug-in
Changed how some aspects of installation are handled with leveraging the WACUP core to now better behave when updating an existing install
Changed the visualisation menu items for start/stop & configure to only be enabled if there's a valid visualisation plug-in to use
Changed how the bookmark menus are handled to better handle the library bookmarks plug-in not being installed (this is so something will be possible even if the full experience & some of the menu items are disabled due to the plug-in not being installed / enabled)
Changed to use less of the main window procedure handling from the Winamp core to better help with some of the locking issues with the recent builds as well as leaving (hopefully) just the main window drawing & the actual skin change handling under the Winamp core with everything else routing directly through the WACUP core now (aka another step closer to dropping the need for the Winamp core, yipee)
Changed how classic skins handled starting minimised (prior state or when forced via the loading shortcut properties) to do a better job in not having the windows show up until WACUP is restored to see it (there's still going to be cases where this isn't 100% such as from 3rd party plug-ins & also the legacy library window for the moment but it's still better compared to letting the Winamp core handle things)
Changed how adding or editing a podcast feed is done to better deal with slow web responses when trying to access the feed information so it now shouldn't be causing WACUP to lock-up / trigger the OS hung process handling
Changed how a number of the shared dlls are built to remove more unused code within them for almost 200KB of file size saving (not a lot in the grand scheme of things but every little helps)
Changed some of the API message handling to improve compatibility with some plug-ins along with trying to resolve some of the weirder crash reports seen over the past few months
Changed the Yule Log Twitter support to now use a non-deprecated libcurl api (which also helps to reduce the compiled libcurl size by a few KB)
Changed to use just the modern detours library instead of the previous hybrid compile with both the modern & a legacy version required for the skinned preferences scrollbar handling (this change may help with some of the conflicting weirdness experienced with the library scrollbar skinning though more needs to be done when it comes to skinned scrollbars)
Changed how some of the extraction works with the installer to better fit in with the compiler related changes & the sharing of the common runtime files
Changed to not load the specific old version of the AudioScrobbler plug-in that comes with the ml_ipod plug-in since it'll fail on all supported Windows releases due to a framework bug in the old plug-in
Changed to use a different way of handling the option for disabling always on top when a fullscreen application is detected instead of using the appbar based method from the Winamp core (this option with Winamp has been a source of odd bug reports for years so by using a Vista+ era api instead of a Win9x era api will work better along with not having a monitoring window running all of the time when not required)
Changed how the classic artwork window deals with the rating control (if visible) to reduce the rate of metadata re-querying that's done (e.g. when moving the mouse over the window)
Changed a lot of the internal WACUP core handling to now use more of the internal methods instead of the SendMessage(..) based ones that were needed before taking over the API handling (this provides a small performance boost by reducing how many messages have to be processed via the main window & in-turn any of the subclass procedures hooked on to the main window's)
Changed the WACUP general purpose plug-in API to now support a limited 'messageproc' callback solution (similar to the media library plug-ins) which helps remove a 3rd of the main window subclassing done by the WACUP provided plug-ins along with reducing the overhead involved with main window subclassing (this may make things feel a bit snappier depending on the setup as there's less things touching all of the messages going through the main window)
Changed how the generic skinned windows are created to effectively halve the time taken to create the raw window with my testing (for me this is a reduction from ~6ms to ~3ms which applied across all of the default WACUP windows is an ~20ms saving - this may not seem like a lot but any reduction is welcome though mileage will vary)
Changed it so if a plug-in has been disabled & a close is initiated that the restart message from the preferences will not be shown
Changed a number of things in preparation for replacing the Media Library core plug-in (gen_ml.dll) with an integrated WACUP replacement (this has been a long time coming but it should be worth it!)
Changed how the OpenMPT Decoder plug-in (in_mod.dll) is built to workaround a weird extreme slowness seen when initially loading the plug-in compared to all other plug-ins & supporting dlls due to a cache that's initialised when libopenmpt is being initialised
Changed the scrollbar in the main playlist editor to match the OS related scaling seen with the media library scrollbars for a more consistent visual look
Changed the handling of the 'Media Library uses same font as Playlist Editor' & 'Use freeform scrollbars when available' from the Media Library 'Appearances' preference tab to always be done without the need for these options (this just makes things simpler going forward though if you're using the legacy Media Library core plug-in then they may still be present but hopefully shouldn't be having an effect)
Changed how the 'dead' Radionomy stream urls from SHOUTcast tunein urls are handled to better ensure they'll not be added into the main playlist editor (based on a request from Discord)
Changed how the settings cache & Milkdrop plug-in work to reduce the number of cache misses when trying to process reads related to milk2_msg.ini (this makes Milkdrop a bit quicker to load)
Changed the output plug-in preference page to now manage the active output plug-in based on a dropdown listing the enabled output plug-ins instead of basing it on the selection in the output plug-in list (this is based on repeated issues with users changing the selection & not realising that will change the active output plug-in despite the note at the top of the preference page)
Changed the plug-in preference page lists to better sort the listed plug-ins to favour the active plug-ins at the top which should be less confusing compared to the mis-matched active vs disabled vs failed to load
Changed how the internet radio view is drawn so that the genre tree now has it's expand/collapse elements automatically upscaled based on the font size being used in the view (this was much needed as the clickable area in the original non-scaled mode was hard to see at times depending on screen resolution & your eye sight & the skin being used)
Changed the Skinned Prefererences handling to use the new shared skinning api which was helpful in resolve a lot of the visual issues that existed with both the new code & in comparison to the prior implementation (note: there are still a number of visual issues remaining which will be resolved in later builds)
Changed the Playlist File Remover plug-in to better ensure it's only hooking the main & playlist editor windows if it's preference option has been enabled (this is a small change to resolve some quirks)
Changed the Internet Radio view to exclusively use the new shared skinning code to resolve skinning menus not working when run under the legacy Media Library plug-in (this is only a temporary change)
Changed the installer to support using customised skins & visualisation plug-in folders (if set by the user) when updating a prior Winamp/WACUP install
Changed the installer to make downloading the curated Milkdrop2 presets to now be skipped by unchecking the item via the install customisation page
Changed the Windows Taskbar preview handling to be exclusively handled by WACUP's version of Win7Shell instead of a hybrid with the Winamp core depending on which taskbar handling mode was enabled in the preferences
Changed how Win7Shell works to now make Windows do the drawing when using a classic skin for a better experience (using a modern skin uses the existing method which sucks due to the modern skin engine)
Changed how the classic skin video window is handled when being resized & a video is playing which previously would flicker much more &/or not show the window frame until resizing completes (this needs more work as it's far from ideal but it should be better for now compared to how it was before this change)
Changed the un-skinned preferences window to also report the current WACUP version as part of the title as another way to quickly determine the WACUP version used
Changed the quality dropdown text on the MP3 encoder configuration dialog to remove the '--alt preset ' prefix so it's easier to read through the quality settings
Changed the handling of recently played items in the taskbar jumplist when the Win7Shell based implementation is enabled to try to workaround a random crash affecting some
Changed the crash reporter to better report Delphi runtime crashes (e.g. vis_mux)
Changed a number of small things try to minimise the likely causes of the stack overflow crashing issues being seen by some users
Changed how the Win7Shell plug-in works to hopefully detect when it doesn't need to be rendering the preview (this is will likely need some adjustment as Windows doesn't provide an easy way to know when it should stop which for modern skins can cause performance of the program to degrade once the preview or alt+tab or win+tab has triggered the preview rendering)
Changed a number of internal plug-in calls to avoid hitting the main window proceedure where it makes sense
Changed the Streaming Url Processor to try & better deal with weirdness seen when processing some JSON responses
Changed how the Patreon list on the About WACUP credits tab is handled so it can obtain a newer version without a specific WACUP update (which better matches with the 'About | Updates -> Patrons' preferences tab)
Changed how shuffle is handled to better ensure the first played item after a cleared playlist (e.g. using 'play' in the local library views) will be set as the first item in the shuffle table so it makes more sense when moving forward / backwards
Changed the menus within the skinned preferences window (treeview right-click & close button menus) to intentionally be un-skinned temporarily until the replacement skin support gets menu support
Changed how the updater & new build reporting works so that newer builds will be shown but they won't be automatically downloaded (if enabled to do so) unless the build is marked as suitable (this should resolve false issues reported with new beta builds not showing up via the preferences whilst allowing them to be held back until known to be generally ok for more to install)
Fixed a compatibility issue related to the local library (ml_local) plug-in & how some IPC_HOOK_TITLESW messages are sent which could cause a crash to occur for some
Fixed the probable cause of a library history view updating related crash
Fixed a modern skin loading crash due to a conflict with a patched method
Fixed an issue seen with trying to determine a file types extension that could cause a crash to occur
Fixed a crash seen due to recursively loading a folder returned from a shortcut lnk file
Fixed the prebuffer value for Not So Direct not being correctly read in on loading if it's been changed
Fixed a crash on closing when one of the WACUP output plug-ins with an integrated preference page is the current page when the preferences window is open
Fixed the library history plug-in sometimes trying to handle playback stopping events even if it's set to off via the preferences (a missing logic check)
Fixed some internal path based checks within some of the plug-ins not being as robust as needed
Fixed an issue with the Podcast preferences page that could sometimes prevent the update interval from being changed
Fixed an issue with the artwork resizing api where it might not generate the image at the specified limit & instead always output as a 600x600 image
Fixed the duration of playlist items added into the main playlist editor when dragging a folder onto it being read when not required to be read due to the current playlist title reading settings (e.g. when set to only read them on playback) which should improve the loading time for large folders compared to the prior build & removes some duplicate processing that was going in on the default title reading mode
Fixed the Not So Direct output plug-in sometimes causing a crash on closing if there's been a playback related issue earlier on during the running instance
Fixed the Not So Direct output plug-in not correctly handling higher audio channel counts (e.g. 7.1) & also some weirder arrangements as expected (e.g. when using the Matrix Mixer output plug-in which will likely be added to WACUP in the not too distant future)
Fixed a number of issues reported & seen with the classic skin smooth resizing mode where the window being resized / moved would not snap or snap in an expected manner to the other windows
Fixed Discord Rich Text Presence updates failing if the main title line is generated as a single character string (changes made will not ensure this is at least 2 characters long to work)
Fixed a main playlist editor painting issue where the background for the dead space wouldn't be correctly drawn at specific sizes due to how the area vs number of playlist items is calculated
Fixed issues with processing UTF-8 encoded lyrics data that could cause a crash / hang or gibberish to be displayed
Fixed the internal lyrics api not reporting the correct generated length of the lyrics string to display which could appear as an ellipse / random characters in the lyrics window
Fixed the possible cause of the Streaming Source plug-in causing a deadlock on early starting of the stream whilst the preferences page is currently being viewed
Fixed a number of causes of invalid parameter related crashes from the submitted crash reports
Fixed some of the slowness with scrolling actions with the Lyrics window by resolving a caching issue (more needs to be done as certain artwork & lyrics combinations are still far too slow / use too much CPU on updating the window contents)
Fixed a crash when loading the Streaming Source DSP plug-in if the LAME encoder dll cannot be found (this also adjusts some of the handling so it'll not cause a deadlock when then trying to start the stream)
Fixed the inner contents of the skinned about window not always showing due to not being set to always be visible
Fixed the probable cause of a compatibility issue between some of the visualisation plug-ins & modern skins on loading where the visible / active state of the visualisation plug-in is changed by the skin (still not 100% sure that the changes for this won't break anything else)
Fixed the probable cause of an issue seen with some crash reports where plug-in loading tries to load an invalid instance from the internal plug-in list (still not 100% sure about this as I've not been able to replicate this very occassional issue seen within the crash reports)
Fixed the probable cause of toggling the time remaining & mini-vis modes in the classic skin main window not being correctly preserved across instances
Fixed where possible the random filename generation methods sometimes incorrectly creating an empty .tmp file (e.g. would more likely occur with library playlists)
Fixed the probable cause of the podcasts view sometimes locking up on loading despite earlier attempts to avoid this
Fixed long tooltips in the Podcasts & Download views not being correctly clipped to avoid junk characters after the added ellipse
Fixed some higher bitrate files not starting to be played as expected when using NotSoASIO due to a lower than needed internal buffer
Fixed some more of the reproducible issues when trying to use NotSoASIO which would cause playback failure or crashes (it's still unstable but that seems to be more audio driver related from what I can test)
Fixed the possible cause of a hang on closing seen (likely related to the HTTP POST support & connection issues)
Fixed the close button tooltip on the generic classic skinned windows not being correctly positioned in double-size mode
Fixed the close button tooltip on the classic skinnned video window not being shown when using the non-dedicated window
Fixed a window sizing issue with Milkdrop & some modern skins where the outer window can be resized to be too small which would cause Milkdrop to self-close making it hard to resize the window to show
Fixed DSP & Visualisation plug-ins which have been hard-blocked in the WACUP core still showing as loadable via the respective preferences page
Fixed an occassional issue where M4A / MP4 based files will not always play despite the input plug-in being available & the file does exist
Fixed the 'formatinformation' metadata not being queried correctly with it often showing the generic value instead of the per plug-in details
Fixed a skin loading / changing related crash issue (seen with the rescinded beta build 5984 but might have been going on with older builds)
Fixed trying to set the taskbar text causing a crash when running in a super reduced install where a minimum number of plug-ins are enabled
Fixed some more quirks with the classic skin window snapping for windows snapped on the left & top edges which weren't snapping on the bottom & right edges with other windows
Fixed changing the pinned taskbar icon to use the Winamp icon not showing the correct icon when WACUP is not running (toggling the icon preference option is needed to apply this or re-pin WACUP as needed)
Fixed the library smart view export menu items conflicting with the menu ids of other actions & either causing an attempted smart view export &/or blocking the intended action (a better fix will come when the media library core is replaced with the WACUP provided version)
Fixed the IPC_OPEN_URL handling not working in all scenarios
Fixed an issue seen with some of the ML_IPC_GETTREE calls when the downloads node was set as a child of the podcast node in the library window where the results would stop after the podcast node (not sure how long its been doing this but correctly setting the podcast node to indicate it has children fixes this API response)
Fixed a lock-up that can occur when toggling classic skin double-size mode & WACUP trying to apply the new window position to a generic skinned window that was not created on the main UI thread (e.g. with Milkdrop)
Fixed the reproducible issues with toggling classic skin double-size mode so that all supported skinned windows should now maintain their relative positioning
Fixed the reproducible issues with classic skin window placement going wrong when doing classic -> modern -> close wacup -> modern -> classic (there is likely to be more that need fixing but it generally requires the plug-in to be fixed to avoid saving / restoring invalid window positions)
Fixed the library history view sometimes appearing to show corrupted text due to an issue with the persistence of the strings as part of the internal cache
Fixed issues with %length_seconds% within ATF string not being populated as expected (was a number of issues between the different ways of getting metadata)
Fixed some compatibility issues related to metadata reading not trying to query the input plug-ins if the shared metadata reading service returned no result
Fixed some of the crash on close issues experienced when certain DSP &/or visualisation plug-ins are active (this relates to accessing memory after unload)
Fixed the Streaming Source plug-in crashing on close due to its activity checking thread not being checked for having been correctly stopped before exiting
Fixed the Winamp version number showing on the taskbar button & in Task Manager when initially loaded which makes things look cleaner & more consistent :)
Fixed the Big Clock window not updating as expected to the current playback position or user interactions with the window when playback is currently paused
Fixed the Three Mode Repeat plug-in not correctly loading the PNG version of the repeatone.bmp image file if it exists for showing a more appropriate repeat button when manual advance is also enabled
Fixed Streaming Source title updates sometimes getting incorrectly clipped in a way that can cause DNAS servers to reject the title update
Fixed Streaming Source not setting the currently playing information if WACUP is already playing prior to this plug-in makes a connection
Fixed Intro Play not stopping playback for the last playlist entry if repeat is disabled when there's nothing else expected to be played
Fixed a crash seen when starting playback or querying the %playcount% ATF value with a corrupted library history database
Fixed (by replacing Winamp's handling) using the Numpad+1 / Numpad+3 to go back/forward by 10 playlist entries being slow
Fixed a conflict with TortoiseGit where it would prevent some of the VS2017 runtime files within the WACUP program folder from being removed on uninstall
Fixed a potential crash that could occur during install due to a combination of dll loading order related weirdness
Fixed the classic Nullsoft easter egg not working due to some of the recent changes to handle more of the actions from the Winamp core
Fixed the OpenMPT Decoder preferences not showing the actual gain & stereo separation values (missed when doing a code merge some time back it seems :( )
Fixed the 'Generate HTML playlist' option not trying to automatically open the generated HTML file in the default browser (my IPC_OPEN_URL was incomplete)
Fixed WMA metadata sometimes having the last character incorrectly clipped off due to a prior taglib related change & how the BOM in some strings are used
Fixed the classic skin video window not showing the deactivated state when switching to a generic skinned window that was not created on the main ui thread (e.g. skinned visualisation windows)
Fixed enabling visualisation or DSP plug-ins & then allowing WACUP to restart to enable the plug-ins not then having it as the expected active plug-in (assuming the input selection wasn't then changed)
Fixed a crash related to loading corrupted NDE databases (note: there still be issues & depending on the corruption a large amount of the database may no longer be accessible but this is better than a full process crash & further potential data corruption)
Fixed the probable cause of the remaining message processing stack overflow crashes seen over the 1.0.14 beta builds (which hopefully the fix applied won't break anything else)
Fixed the Discord now playing not always showing the correct status if playback is restored in a paused state
Fixed the Discord now playing mode causing the odd hangs / crashes that have been seen when the feature is enabled due to multiple threads being generated which would then cause a block on the stopping mode (thanks to Dr Flay for trying out things which finally generated crash reports that actually helped to figure out what was going on at last since this has been an issue for some for many months)
Fixed a number of internal issues when attempting to build the WACUP core using the VS2017 compiler including some weirdness with some of the preference entries showing garbled text
Fixed a metadata handling issue with the PSF player plug-in
Fixed the possible cause of some of the weirder modern skin engine related start/stopping deadlock issues seen from the crash reports
Fixed the probable cause of trying to restart a visualisation plug-in too fast causing an error to be thrown or a running visualisation plug-in preventing closing with a modern skin from completing correctly
Fixed a number of cases where I was not cleaning up locally set accelerator tables which could cause a slow memory leak in some specific scenarios if the window related to it wasn't correctly created / destroyed (the fun things you find when trying to replace API interfaces from the inside-out!)
Fixed stopping the current visualisation plug-in sometimes being a lot slower than would be liked (which could appear as modern skins acting a bit oddly for a few seconds) as well as it causing an unnecessary delay on the overall WACUP closing time
Fixed some of the Milkdrop stats output re-querying strings that won't change for a small boost in overall fps
Fixed the probable cause of some hang crashes experienced when playing YouTube videos over an unstable connection & a track change is then attempted but cannot complete
Fixed some more instances of configuration settings being saved when there's been no actual change in the settings (this may help with some Milkdrop window position quirks)
Fixed the probable cause of a deadlock experienced with a ml_ll library import when handling a file using the legacy metadata handling mode whilst also attempting to start playback with a modern skin
Fixed a number of drawing issues with the skinned up/down control (mostly due to weirdness with how the hover state was being handled)
Fixed the classic ml_ipod plug-in not able to load due to a supporting dll failure as a result of a security related feature of WACUP
Fixed an issue with the installer where one of the NSIS plug-ins might not be removed prior to the installer cleaning up after itself (the temp folder would be removed after a restart but this helps to better ensure it'll be removed completely there & then)
Fixed the Milkdrop window when going into fullscreen mode (not when using the fake fullscreen mode) often shows the edge of the window to be used before the rendering has begun
Fixed the current installer not removing older copies of the WACUP installer from it's updates folder (if any exist) from the self-update support (depending on how the installer is run the current installer may still be left in the updates folder)
Fixed the Waveform Wrapper plug-in not correctly handing off some WAV files with MP3 data in them which could cause brief blips in the audio output
Fixed Milkdrop sometimes hanging / going slower a few seconds after WACUP is loaded & the information about the current song is being displayed via the F3 toggle (most probably don't even know that option exists but it helped to more consistently replicate a loading bottle-neck on loading along with the option to show the current frame rate - I now get an almost instant 50-60FPS compared to low 20FPS before)
Fixed the Alt+3 stream info dialog for HTTPS streams handled via the in_mp3 plug-in not showing the current stream information due to a force HTTPS -> HTTP remapping to allow the in_mp3 to even work
Fixed the replacement local library plug-in not correctly handling importing some files where some of the basic expected metadata is missing which would incorrectly cause the basic guessing to be used
Fixed some of the initial slowness on loading when the classic artwork window is enabled (there's still a lot more to do related to this in general as the Winamp core drawing the main window is now hindering things but this change helps a bit at least to my eyes with a fully loaded classic skin)
Fixed the preference options on the library nodes not always working or opening to the wrong item
Fixed a compatibility issue with some older plug-ins that use the IPC_FORMAT_TITLE api (e.g. ml_dlna)
Fixed a crash with the Streaming Source plug-in when trying to process a really long playlist file path
Fixed some slowness with the initial loading of the library playlists view as well as it not auto-scrolling the selected playlist into view
Fixed the internet radio view list flickering when any form of resizing is being done to the view (a side effect of how the tree was drawn)
Fixed the second information line on the discord status sometimes showing gibberish
Fixed 'bitrate' not being correctly returned via ATF / local library imports due to a typo causing the fallback mode to be used (i.e. guesses based on the file size)
Fixed some cases of newly added items into the replacement media library not always triggering an appropriate local library view update to allow those items to be seen without manually refreshing the view
Fixed some PSF sets failing to load with the WACUP provided decoder plug-in due to some issues when the plug-in was being re-compiled & ported to build under a newer compiler to the original plug-in
Fixed converting a high bitrate / samplerate file from FLAC to OGG Vorbis generating an incomplete / broken output file (silly issue from not having a large enough temporary working buffer to use)
Fixed the format converter not always handling some encoding errors as expected causing it to remain in the processing loop
Fixed WAV files other than 16-bit not always being reported correctly via the transcoding api (is likely there's more issues with the likes of 24-bit & higher that needs to be resolved in later builds)
Fixed a number of issues with the Opus encoder so it'll now better deal with different input bit depths vs what it wants to use natively which reduces the chances of a file conversion to Opus failing
Fixed the probable cause of the Milkdrop plug-in sometimes not seeming to re-use it's prior settings on loading due to a contention access issue with the settings cache (hopefully this won't break anything else)
Fixed some quirks with the taskbar / process title text not being set as expected when the main playlist editor is empty or when scrolling is not enabled with the ' *** ' part being incorrectly added
Fixed some visual issues with the podcasts library view depending on the skinning engine & other aspects
Fixed the restoring of the shuffle table between sessions not working due to lessening the requirements on using the Winamp core & some of the hook methods that were being used now no longer get run
Fixed saving the shuffle table between sessions not correctly truncating the file (this didn't affect the behaviour but could cause the file to potentially keep growing in size depending on the maximume main playlist editor size reached)
Fixed some sizing / display issues with the about dialog when first opened (some of these issues may still occur when the skinned version is being used)
Fixed some of the modern skin information being incorrectly clipped in the 'Skins' information panel
Fixed a slow closing of WACUP if the Internet Radio view is the current library view as well as making switching to other library views not take so long
Fixed the select search (F6) & forced view refresh (F8) actions not working in the Internet Radio view
Fixed a number of causes for random crashes when loading & unloading the podcast library view when the info pane was enabled (numerous things going on including optimisations that are no longer required)
Fixed a layout issue with the channel list when the info pane is disabled for the podcast library view
Fixed the unresponsive prompt sometimes appearing when it should not have been shown
Fixed the installer not ensuring a 'Skins' folder is always created even if none of the modern skins WACUP offers were selected to be installed (this could cause issues elsewhere or when the user wants to install their own skins later on)
Fixed the second stage of setup on a first install of WACUP incorrectly showing the skin selection dialog if none of the modern skins were selected to be installed
Fixed the history plug-in not handling pausing & then resuming playback which could then cause an item to be counted as a new play depending on the mode settings
Fixed the replacement local library plug-in sometimes double incrementing the playcount provided from the history plug-in
Fixed a visual glitch when drawing the dead area of the playlist editor under a modern skin when holding down the scrollbar thumb bar & continuing to trigger a scrolling action (also changed to cache the brush used for drawing for a small performance optimisation)
Fixed a number of visual & performance issues with the initial loading of the Podcast view in particular with a larger number of feeds to load & when using a modern skin (e.g. text fonts randomly changing)
Fixed the shuffle restore mode not appearing to work due to a conflict with the Time Restore & Autoplay plug-in by default triggering a shuffle table re-init on loading (the option has now been removed from the plug-in to avoid this issue & the reason for the option being added to the plug-in no longer exists so bye bye it goes)
Fixed the taskbar preview showing a loading icon when not using the Win7Shell implementation (if Win7Shell is disabled then there's no action buttons & under a modern skin it's luck of the draw as to which window that Windows will automatically pick to use for the preview)
Fixed the podcast library view info pane going missing when restoring into view a minimised WACUP instance (this is a temporary fix as this shouldn't need a workaround to ensure it'll be seen)
Fixed the first Audio CD drive found being used to provide the library view for all other reported Audio CD drives (oops)
Fixed a locking issue that could hinder the Audio CD library view being loaded whilst trying to view / start playing a track in the main playlist
Fixed a number of random crashes related to the Artwork & Lyrics plug-ins not liking some of the weirdness seen when working on Audio CD support
Fixed the probable cause of the video window renderer not always appearing on screen & causing a blank / see-through region to appear in the window
Fixed a crash due to the Nullsoft MIDI input plug-in incorrectly being called for HTTP streams at times & it trying to download the 'file' & that never completing
Fixed the probable cause of a crash (unless it doesn't due to the Modern skin engine breaking other things) seen when switching from modern skins back to classics
Fixed the Crystal Classic Skins plug-in not always catching the native nor some of the generically skinned window due to some aspects running faster than expected
Fixed a crash due to a mismatch in the version of the memory manager service being used between plug-ins & the WACUP core & remaining parts of Winamp still in use
Fixed the probable cause of when changing between modern & classic skins the media library window ends up somewhere offscreen & becomes a hassle to get it back :(
Fixed the Twitter preference page not starting the authentication process correctly when first displayed due to an internal validation issue with port 80 proxying
Fixed some aspects related to the taskbar jumplist when the Win7Shell based implementation is enabled being run when the option to populate recently played is disabled
Fixed more cases of the Media Library window position being set as offscreen as well as adding in some additional handling to better ensure it'll be set back on screen when restarting WACUP (hopefully)
Fixed the probable cause of some podcast downloads being incorrectly marked as incomplete when they do match with what was meant to have been downloaded (the joys of multi-threading & file access locks)
Fixed the installer not always detecting customised settings folder paths
Fixed a deadlock caused by the Nullsoft MPEG Audio Decoder when starting streaming
Fixed a clipping issue on the Discord preferences page due to controls overlapping
Fixed visualisation plug-ins directly started not following the plug-in loading controls
Fixed the probable handling issues that could cause the built-in crash reporter to fail to complete depending on the severity & type of crash issue experienced
Fixed (with confirmation this time) the Discord Rich Presence updates not working correctly (this could explain some of the weirdness in update failures that's been reported but not previously able to be replicated since the feature was added for some users)
Fixed a crash view the Shuffle diagnostics preference tab at times
Fixed the updates folder not always being correctly created which could then cause preference based update actions to fail (manually running this installer or newer will resolve this issue)
Fixed the probable cause of some crashes related to using the legacy IPC_GET_BASIC_FILE_INFO api from older non-unicode compliant plug-ins
Fixed the installer not correctly dealing with trying to install over an existing Winamp install & causing a failure when the default folder is then attempted within that installation attempt
Fixed a number of crashes seen on load & on close when running under an older debugger due to how it's initialising the memory
Fixed a debug message left enabled related to skin / language pack handling testing
Fixed the add/open folder feature in the main parts of WACUP not restoring the last selected folder between use which should help improve usability (this was reported in relation to improving things for blind users)
Fixed the generically skinned windows under a classic skin not being able to be resized as expected or having their window frame drawn incorrectly after having moved the window partially off screen
Fixed the waveform seeker window tooltip not being skinned
Fixed changing the install type to portable during an in-WACUP triggered update (e.g. via the preferences page) ignoring the current install folder & instead using the default portable install folder
Fixed the probable cause of some portables related actions crashing when the input data from the calling plug-in (likely ml_pmp) is incomplete / invalid
Other small changes whilst trying to take over more of the Winamp APIs to be handled by WACUP as well as adjustments to the WACUP build process to save me some time when doing releases as well as code clean-up & reducing code duplication as things become a bit more refined :)
Updated brotli (libcurl.dll) to 1.0.9 (27 Aug 2020)
Updated cacert.pem to latest (8 Dec 2020)
Updated discord-rpc (gen_yule.dll) to latest community updates to try to resolve some hang issues occuring with it
Updated installer to be built with NSIS 3.06.1 (31 Jul 2020) which marks the 20th anniversary of NSIS!
Updated LAME (lame_enc.dll) to 3.100.2.4 (25 Aug 2020) for a 51KB size reduction due to it now using mpg123 for certain features
Updated libcurl (libcurl.dll) to 7.74.0 (9 Dec 2020)
Updated libexpat (xml.w5s) to 2.2.10 (3 Oct 2020)
Updated libjpeg-turbo (image.w5s) to 2.0.6 (16 Nov 2020)
Updated libnghttp2 (libcurl.dll) to 1.42.0 (23 Nov 2020)
Updated libopenmpt (in_mod.dll) to 0.5.4.13932 (29 Nov 2020)
Updated libsidplayfp (in_sidious.dll) to 2.0.4 (1 Oct 2020)
Updated libsndfile (libsndfile.dll) to 1.0.30 (19 Sep 2020)
Updated minizip (zlib.dll) to 2.10.5 (14 Dec 2020)
Updated mpg123 (mpg123.dll) to 1.26.3 (17 Jul 2020)
Updated Monkey's Audio (in_ape.dll) to 5.69 (9 Dec 2020)
Updated OpenSSL (libcurl.dll) to 1.1.1i (8 Dec 2020)
Updated Patreon list (23 Dec 2020)
Updated plug-in descriptions list (also helps inform about running the vis_mux.dll
Updated pugixml to 1.11.2 (15 Dec 2020)
Updated the bundled VS2017 UCRT for older Windows releases
Updated the relevant copyright dates for 2021
Updated unrar (unrar.dll) to 6.0.1 (22 Oct 2020)
Updated vgmstream (in_vgmstream.dll) to the latest Git commit from 20 Dec 2020
Updated zlib-ng (zlib.dll) to latest re-based update (23 Nov 2020)