Week 27

Well it’s now a week on from the last update and the few days it took to update all of my machines to Windows 10 and so far I’m pleasantly surprised with it compared to having used Windows 7 on the same hardware. For those following, it turned out to be a dodgy cable that caused my development drive to have issues and not a bad Windows 10 install.

There’s a few little things that have catch me out from muscle memory between the Windows versions but it’s minor compared to Chrome 52 removing Backspace as means to go back a page which I’m not impressed with as Alt+Left Arrow isn’t as easy to do one handed. Apparently it’s been done to help prevent users losing entered form data by mistake which I guess makes sense but removing a long standing shortcut isn’t good.

And now on to the Winamp side of things from this week which is what you’re here for I hope :)


The first thing is that updated Waveform Seeker plug-in was released and again please remember to show some thanks to Gargaj for allowing this and for most importantly having created the plug-in to begin with.

waveform_seeker.png

Since the release there has already been a v2.2 update which primarily adds 24-bit audio support and resolves an issue with the installer (which I’ve applied to some of my other installers and will need to update anything else going forward).


The next thing which took up a lot more time than I’d expected was related to podcasts and the handling of HTTPS feed urls. This wasn’t something I’d intentionally tested and by chance I added a new feed for testing something else and it just happened to begin with https:// which gave a 404 response.

At this point I was a bit confused as I thought that the jnetlib networking library which Winamp uses supports SSL based connections and from looking at the last publically released copy of it’s source code confirmed this is meant to be the case.

I then found out the jnetlib source code (albeit not as new as what Winamp is using internally) I thought I’d give it a go to try to re-create a jnetlib.w5s component using the version of jnetlib I’d found and the interface header files that I’d found (which will need to be included in the unofficial 5.66x sdk update that I’m slowly trying to get done but that’s for another time).

The end result as of this update is I’ve gotten a rough working replacement but there’s some odd crashes when downloading new podcasts (just before it completes) and the SSL connections that I’ve not had the time to debug yet (just getting something that worked ok on non-SSL connections was needed).

So I will need to do a bit more investigation into this as HTTPS links are becoming more the norm and Winamp being able to correctly support this I think is worth the time to try to resolve not only for podcast feeds but for also playback of streams or hosted files (which also doesn’t work at the moment).


The end result of the HTTPS feed debacle is that I’ve changed my replacement podcast plug-in to instead strip off the prefix and treat it as a plain HTTP link (which we know works with the existing jnetlib implementation) and which should work with out issue but is not ideal.


Moving onto something different but still related was the addition to the loader program a simple check for certain files which are absolutely needed for normal Winamp running.

loader_missing_files.png

This is one of those things that hopefully should never be seen but I’ve added it in as it will help just in-case some required files are missing to avoid a Winamp crash or even worse data loss. Potentially this could be expanded into some sort of Winamp health-check but maybe that’s a bit excessive but this is the sort of random thoughts that pop in my mind when coding this little things :)


The final notable thing that I looked into was based on a tweet I received about one of my old plug-ins that I’d sort of forgotten about and didn’t think anyone even used still (which isn’t the case).

Some who’ve seen my comments about skinning over the last few years (*) may find it a bit strange that I’d made such a plug-in to try to skin the preferences window in a manner to match the skin currently being used. Although the plug-in generally worked, there were things that didn’t get Winampified correctly (e.g. tabs, comboboxes, checkboxes, radio buttons and groupbox controls) and I guess I’d somewhat gone off the plug-in which is why it’s last official update is 2010.

Well in-between trying to work out the jnetlib + SSL issue, I’ve started again on this plug-in and trying to get more of the controls supported and I’ve gotten to the following point:

skinned_prefs_wip.png

There’s still the aspect of the window frame which needs to be Winampified (which needs some tweaking in the loader to ensue that gets done reliably) as well as adding support for a few more control types (the slider bars aren’t handled as can hopefully be seen).

So this is progressing again though I’ll say straight away that I’m not sure i’ve got some of the colours correct (as can be pulled from the existing skin information) and there may need to be some tweaking later on (e.g. the tab headers probably looks a bit weird but from my initial testing, the colour indexes being used provide enough differentiation across different skins and especially so with weird and wonderful colour themes with the Bento skins).

The main thing is that even if the colours aren’t ideal at the moment, the skinning code is working correctly (which has been a pain to do with some of the controls and their disabled states). And before I forget, this will be able to be disabled by disabling / removing the plug-in which is going to be responsible for it as I’m sure there will be those who don’t like it :)


So that’s this update of what’s been going on over the last week which didn’t go quite as I’d planned but some of the research has ended up being most helpful for some future things. Here’s a general summary of what was talked about:

  • Waveform Seeker plug-in update finally released
  • HTTPS links don’t work in Winamp and I’m looking into fixing it :)
  • The loader now checks for missing core Winamp dlls to avoid issues
  • Bringing the skinned preferences plug-in back to life with better support
  • I’m pleasantly happy with Windows 10 so far
  • I’m not happy with Chrome removing the Backspace shortcut

-dro

(*) The summary is that a non-skinned / native OS looking mode is needed in addition to the existing skin support. As not everyone likes or cares for skins be it the look or the resource overhead that (more so modern) skins create or just viewing them as old and outdated (which taints what Winamp can do due to visual prejudices).