Another week and another update (assuming this makes it to being posted unlike the prior one I managed to delete instead of publish) and this one has even got some screen shots instead of just a wall of text (but that will still be there :) ).
So this week has partly been about refining some of the features already covered over the last few weeks as well as putting in place holders for features to come and reviewing some other things that could / should be added in later on.
So the first batch of work involved adding some additions into the preferences as a new ‘Diagnostics’ node which helped me to review the settings cache changes talked about last week and helped to track down a few small issues that needed to be fixed with it.
With adding the ‘Diagnostics’ node, I’ve also added in two other pages with that first showing what file extensions are reported from each of the loaded input plug-ins (which with the settings cache page helped to ensure I caught a weird bug that meant the in_mp4.dll file types were not being recognised). This may see some more work later on to help determine if there’s any duplicate extensions being reported (which generally should not happen but is something I’ve seen happen in a few cases).
The second page is analogous of the /DIAG command-line option which was added very early on in development and is just a bit nicer to see what Winamp is using for those who don’t like using the command-line. How that page will develop I’ve yet to decide (as I’m not 100% happy with how I’m displaying the information but it’ll do for the time being).
Whilst working on the diagnostics page to show file extensions vs input plug-in, I tried out some tweaks to the display of the preference nodes and if not already noticed, I’ve set the primary nodes to be bold so they stand out more clearly. Additionally, I’ve added in an ‘Advanced’ node which is helpful for grouping in the new ‘Diagnostics’ node along with the ‘Error Feedback’ and a few other options which could have gone under the ‘General Preferences’ node but would have gotten lost I felt.
Adding the ‘Advanced’ primary node ended up exposing a weird bug in the JTFE plug-in and it’s placement of the ‘ML Options’ and ‘Extras’ child nodes (they’d be placed as children of the ‘Error Feedback’ node if that was the last selected node when the preferences were closed. Not a fun one to track down but it lead to making my preference override code (which has been around for years) more flexible and use a bit less memory (which is always welcome).
One final thing with the preferences look was going through and replacing where possible the links with the ’syslink’ control which makes for text and links within the same control which also makes it easier to translate some of the pages due to not having to layer controls to get the desired effect. For most this won’t make any difference but it’s just a little thing (though not in the time taken) that makes help links on the preference pages a bit easier to implement nicely.
As already mentioned, some of the work was also about putting in place holders for features to come with a few shown in the screenshot above for those paying attention.
One feature which ended up getting fleshed out more than I’d initially planned to do is in the above screen shot and is a work in progress copy of a replacement line-in / audio capture plug-in (as the native Nullsoft one sucks) which is based on the plug-in by Jasper van de Gronde and was something that I’d wanted to get into Winamp as it’s a much better solution (did I say that that Nullsoft one sucks?) and is one I used to use along with yilard’s AWEamp output plug-in more years back than I’d like to remember.
The plug-in allows for specifying which audio capture device to use to get audio into Winamp instead of solely relying on the default input capture device as the Nullsoft plug-in does. This can be helpful for streaming uses or if wanting to use a different capture device from the default one.
My build of the plug-in at the moment is not 100% complete due to some issues with code dependencies (mainly the title handling) but over the next few weeks I’m intending to get it all finished off with not using the registry for settings (so it can be used in a portable install) and probably changing to a modified ATF solution to get an equivalent of it’s title options whilst leveraging the similar system that in_vorbis.dll’s originally provided that lead to ATF in Winamp.
In other work done, I’ve updated my in_mod replacement to the latest version (based on 0.2.6401-beta17 of libopenmpt). Whilst doing that, I’ve enabled the Vorbis support and as I’ve already provided that with the vgmstream update I’ve got, it made sense to move the location of the libvorbis.dll from the vgmstream supporting dlls folder into the root of the Winamp folder so that both plug-ins can use it without having to duplicate code. This change has been reflected on the files list for what will be shipped.
The final thing (which was the first thing done last week) was looking into forum and mailing list options to use for beta testing and general stuff relating to the pack later on. So at this point, I’ve decided to go with a small forum and will likely use this one based on initial tests as it acts like I want on full screens as well as smaller / mobile setups which was not the case with some of the other ones I’d looked at. I still need to finish up testing and sorting out themeing for it all so that will likely be going live before the end of June.
So I think that’s about it for this weekly update which roughly marks 4 months since I started on this and things are progressing, albeit not as fast as some (or myself at times) would like. At least you can see what I’m doing even if it doesn’t make much sense or is not things that you’re personally wanting to see done :)
p.s. I’ve got another blog post regarding open sourcing of Winamp in the works after replying on a Facebook page and also a comment on an earlier blog post on here about just that which will likely appear before the end of the week.