QUOTE(dylan€vp @ Sep 16 2004, 06:58 PM)
Hi! Good to see some action over there

Back from holidays, huh?
Never left; I'm just lazy.
QUOTE
As to how to force a window into the player, I was thinking about that myself when I wrote my plugin. I don't think it's practically doable. You probably would have to override the window style (what if the plugin creates a popup style window? an overlapped window? a toolbox window?). Plus you would have to intercept messages, and redispatch. SIZE and MOVE messages come to mind. If the plugin does unexpected things in response to these messages, you're in trouble (well at least the nicely integrated visualization is).
Yeah, that's basically the gist of it. I still haven't getting around to seeing if this sort of thing is possible, though, because I'm still not sure what the best way to make visualization panel is.
QUOTE
I was willing to take a look at the source some time in the future, specifically to tackle the speed issue I mentioned earlier.
I thought minus0.29 was up to par speed-wise. I didn't notice much of any difference, at least.
QUOTE
Now I'll wait for the clean, easy-to-read rewrite

It hasn't turned out any cleaner or easier to read, it just splits things across more files so it's easier to ignore the really ugly stuff as long as nothing needs fixing. I ended up reusing more code than I expected, too.
Actually, you probably wouldn't care too much for the rewrite as it seems noticably slower. I'm not sure exactly what the reason for this is yet, but I'm putting off another test release until I can figure out what did it. The really annoying thing about this is that the way I changed things, a few plugins that wouldn't disable themselves when their windows were closed with previous versions suddenly cooperate and work normally, so if I go back to the older, faster method, I lose some stability.
QUOTE
I was wondering if there was a point releasing a native version for foobar2000 if the winamp version works with the bacon. I have absolutely no idea how the foobar SDK looks like.
A native version would definitely be better from a usability standpoint as people wouldn't have to sit and wait forever for foo_vis_bacon to scan their plugin directory just to change the texture settings or something. It's also likely to be more stable. The main difference you would have to adapt to going from Winamp to foobar is that you have no control over the number of waveform and spectrum samples you get at any given time; you just have to figure out some way of working with what you get. Also, the latency reporting function is kinda counter-intuitive - it expects a negative return value.
EDIT: I've figured out why the new version seems slower (like 20 fps in foobar vs. around 70 in Winamp). To convert from the data foobar gives me to the data Winamp expectes, I have to run a 1152-point FFT to get the 576-point spectrum, then convert the spectrum and waveform data from floating-point to char, which means 2304 conversions if the audio output is stereo. This takes a while. With the revision, the Winamp plugin is told to render only after this is done, so the Winamp plugin rendering is very CPU-limited; with the old version, the Winamp plugin didn't care if the data it was getting was remotely up-to-date as long as it got to draw stuff on time. foobar2000 will tell visualization plugins to skip over data if the previous stuff got backed up, so the old version was probably updating the actual data only around 10 or 15 times per second even though the plugin got to render a lot more.
So it looks like I'm going to have to play the workaround game.