November 2004 Archives

Lucidamp 3.5

As promised, Lucidamp 3.5, now with support for Winamp 5.x Modern skins.

Features

  • Obviously, Modern Skin support. Top-level modern-skinned windows are found automatically by Lucidamp. This includes plugins using the Modern skin support (ie, if your window uses the BaseWindow_RootWnd class, Lucidamp should find it), such as Album List 2.0. Modern windows have their own subsection of the Lucidamp configuration tree.
  • Classic skin support remains, with the addition of a Caption string to help identify plugin windows. Since Nullsoft released source code for the Winamp Library (gen_ml.dll), many plugins have started using that as a starting point without changing the window class name. That means you're going to find a number of plugins use the "Winamp Gen" class. Three I know of off-hand are Winamp Library, Jump To File, and Album List 2.0. The first two are included with recent Winamp 5.x releases. By including a caption as well as the window class, you can differentiate between the different plugins.
  • A few more plugins are supported out of the box. Jump To File is added, and you can now choose between Album List 1.x and Album List 2.x support (2.x is a complete rewrite, including a new window class name).

Known Issues

  • Lucidamp configuration for classic windows is disabled when in modern skin mode. This is by design.
  • Different configuartion options appear for different modern skins. This is due to the dynamic nature of modern skins. For example, the "Winamp Modern" default skin uses a caption of "Player Window" for the main window, while most other modern skins use a caption of "Main Window". Lucidamp will remember your settings based on the caption of the window, so if two skins use "Main Window", they'll have the same settings. If the skins use different captions, you'll have to configure them separately.
  • Sometimes, the Playlist Editor, Media Library, certain plugins like Album List, etc may render incorrectly in modern skin mode. Usually this happens if you switch back and forth between classic and modern skins. I blogged about this problem previously, discussing why it happens. I've made an attempt to fix the problem (which resulted in the design of the first "Known Issue"), but it doesn't seem to always work. In most cases, hiding and re-showing the window in question will fix the rendering problem. Worst case requires you to restart Winamp.

I still need to rethink the programming API for Lucidamp, now that it's more dynamic. In fact, I should've rethought it for 3.0, but I haven't. For now, it should still work while using a classic skin, but it doesn't expose anything for modern windows or plugins other than Mikroamp.

Updating LucidAmp for Winamp 5.x

My Winamp 2.x plugin, LucidAmp, has been idle for some time now. I've been on vacation from work for the Thanksgiving holiday, and decided that I should take a stab at updating LucidAmp to work with the Modern skins in Winamp 5.x (it still works just fine with Classic skins). I've gotten pretty far with it so far, and I think I may have something to show for it by the end of this weekend.

A few annoying things I've found so far:

  • The Playlist Editor, Media Library, and Video window (and perhaps others ...) for Modern skins are really just a container for the old 2.x windows. This causes a problem if you've enabled transparency for the classic window and the modern window. I'm planning a work-around, but it was quite a surprise when I thought I had Modern skin support working only to find that the Media Library was rendering incorrectly.
  • Windows in Modern skins all use the Window class BaseWindow_RootWnd, which means I have to key off of the window's caption as well as the class.
  • There's no fixed set of windows that will always exist in a Modern skin (example). I'm currently iterating through all of the top-level windows and looking for those with a class of BaseWindow_RootWnd, but that means that LucidAmp may find more windows than you expect. It could end up with some windows listed in the configuration that have obscure names or non-obvious functionality. It also means that you may have to reconfigure LucidAmp for different skins, since they may use different captions.
  • Modern skin windows like to change their WS_EX_LAYERED attribute and/or transparency level on focus, which means LucidAmp has to fight with Winamp. Ultimately, Lucidamp wins but it means there's some unsightly flickering at times.
  • Winamp has some concurrency issues with closing plugins while quitting. If your plugin doesn't clean itself up fast enough, Winamp unloads the library out from under you and you get a nasty AV error. I'm using an ugly hack to bypass this by calling LoadLibrary on my plugin dll to increase the ref count, so it doesn't get unloaded until the winamp.exe process is completely stopped. I wish there was a better way to handle this, but at least this hack works.
Keep an eye here for a new release. I'll still submit it for listing on winamp.com, but if they haven't changed their review policies since the last time I updated (over a year ago), it may not show up at winamp.com for months.

Karting

My friends and I went out to Champs Karting tonight. I thought I did pretty good with a best lap time of 20.60, but my friend Kevin (aka Garth Brooks) went out and ran a 19.84! That's quite impressive!

The SUV phenomenon

I recently read an article chronicling the rise in popularity of SUVs, and the myths surrounding them. It brings up good points about perceived safety versus actual safety. This should be required reading for anyone considering the purchase of an SUV.

The best quote of the article:

According to Bradsher, internal industry market research concluded that S.U.V.s tend to be bought by people who are insecure, vain, self-centered, and self-absorbed, who are frequently nervous about their marriages, and who lack confidence in their driving skills.

About this Archive

This page is an archive of entries from November 2004 listed from newest to oldest.

December 2004 is the next archive.

Find recent content on the main index or look in the archives to find all content.

Ads

Pages

OpenID accepted here Learn more about OpenID
Powered by Movable Type 5.01