It’s now the end of week 2 and it’s been both interesting and frustrating with what I’ve been working on. The main thing that has been achieved is the creation of a loader program. This will be loaded before Winamp itself and to begin with it allows for adding extra command-line functionality over what is already documented via winamp.exe /? e.g. being able to run a library query from the command-line and saving it directly to a file.
The main frustration with creating the loader program was that it was causing a different Winamp instance icon to appear on the taskbar if a pinned taskbar instance of Winamp already exists (i.e. it looked wrong). So after a lot of reading up and trying things, finally with the help of the information that the 7+ Taskbar Tweaker provides about the taskbar items, I got that sorted and now the loader instance looks like the original Winamp instance.
There were a few other fun little issues that showed up whilst getting the loader working (mainly with the multiple instances support) but it’s all seemingly working ok now.
Progress has also been made on looking at which of my existing plug-ins will be included to being with and starting on applying some of the loading and closing optimisations that I’d figured out when working on Winamp after it’s sale that can be applied to them (though i’ve a few ideas on how to get most of the loading improvements applied to them without the native winamp.exe.changes that i’d part-implemented).
As sadly (myself included), a lot of plug-ins (including native Winamp ones) will read in settings that either aren’t needed at the time of loading or will always save out all of the settings on closing even if nothing had changed. It’s relatively simple to adjust such things around but it can have a decent reduction on loading and closing times. Which with closing times, is important as that can help avoid data loss if a system shutdown or hibernation is started and Winamp and it’s plug-ins take too long to save everything out then it is possible for database updates, etc to potentially be lost. So anything that can be done to help reduce such issues is worth it even if to some it seems a pointless effort (and less time to stop / start between Winamp runs can be handy when developing :o) ).
So that’s about it for this week and my work on what i’m tentatively calling the ‘Winamp Community Update’ pack. I’m hoping to have something more interesting to talk about or show some specific details about in the next few weeks whilst I get up to speed with this and figure out a few more things that I’d like to get implemented.