Sometimes you have the best of intentions and expect trying out something won’t take too long and then bam I’m two days late on posting the weekly update. So finally here’s last week’s update :o) The main thing from last week (which was a bit shorter due to Easter) was the release of the updated Crystal Classic Skins Plug-in v2.0. So for those who use classic skins then this may be of use to you.
Updating the plug-in took up most of the time though there were a few other things done including an addition to the command-line support in the loader program with the /DEBUG action which makes it easier to debug things when using WACUP. This is needed as not all debuggers will catch and hook child processes so I’ve had to add in a means to allow for manually attaching the debugger as needed.
The command-line help message for this is below:
This causes a DebugBreak() to be called just after the true Winamp process has been created so that a debugger can then be attached to this child process. If this is not caught or execution is resumed then the true Winamp process will be resumed. This is needed as not all debuggers will automatically attach to child processes created by the main process.
Note: The PID of the child process is logged via OutputDebugString() as the following: WACUP Child PID:
I’ve also been looking into the possibility of providing replacement PNG and JPEG image loaders which better leverage CPU features (e.g. SSE2 support) to help reduce overall loading times. Initial tests have shown there is a small time reduction though with general loading times for my test setup in the low millisecond / high nanosecond range,the reduction isn’t as great as I’d hoped for.
The greater issue I’ve come across is the number of times that the modern skin engine (which is the simplest way to see any impact on loading time reductions of the loaders on Winamp due to so many image files being used to make a modern skin) is seemingly re-loading a number of image files multiple times. So as time allows, I may dig deeper into what my initial observations showed to see if there is anything which can be done to reduce the impact of such behaviour (i.e. having a interim cache).
The other main thing I’ve been looking into is related to plug-in management and is the reason for this update being late (due to Windows APIs seemingly not working as expected for what was wanted).
The image below shows what I’ve instead started on as means to enable / disable specific plug-ins with input, output, general, library and portable plug-ins to be supported. The dsp and visualisation plug-ins will probably not be handled as they can already be disabled (i.e. setting dsp to none) or just not be set to run as is the case with visualisation plug-ins.
I had been trying out having it so that there was a checkbox in the top-left corner to act as the enable / disable all action but even when using the appropriate methods it wasn’t working as expected (would never update the checked state of the header checkbox). So instead of wasting more time on trying to get that working, I’ve gone with the alternative option of having it like in the screenshot above which probably makes it better in the long-term (and is more like Windows Explorer’s behaviour for providing extra functionality on columns).
If I do proceed with this design route then it means I will either drop Windows XP support in WACUP (which is the more sensible thing to do) or the ability to control plug-in loading will just be disabled or some aspects will not be present if running on Windows XP.
I’ve also probably spent a bit too much time during the week commenting on things in the Winamp Enthusiasts Facebook group. I know there’s a lot of people who don’t like Facebook (which is understandable) but it’s generally more active than the Winamp forums (which I’m seemingly not welcome on).
And as a final thing for this week, I’ve been doing a bit to help out with the testing of the new versions of the Winamp Info Tool and Winamp Backup Tool as provided by fellow Winamp user koopa. If you need to find out more information about your Winamp install or backup your Winamp library, then these are what you need and I know koopa has put in a lot of time and effort into making them work just right.