I think I mentioned earlier that I was able to use the windows clipboard screen grab method under MAME, even at full screen. DirectDraw is enabled, so I'm assuming that it is working.
In a window, I assume? Or full screen?
FWIW, I now have code which does a grid-type sample (user definable frequency) over either the entire screen or just the active app.
Using grids is somewhat dangerous, as the screen may be showing a grid, thus confusing your program. A better way may be to use randomly sampled pixels.
It performs a bunch of real PITA logic to get an assessment of the main colors.
Pita?
I haven't hooked anything up to an actual LED-Wiz yet, but running WOW in a window next to the output window of my app and the colors are reflecting what's going on in the game. When the screen changes to the blue maze, my control lights blue. When the Worluk appears, it goes red/orange and so on.
Ah, in a window then

It may not be compatible with D3D. Don't know, haven't tried it. It's not "real-time" (currently ~ 300ms intervals)
...
BTW, does anyone know if "real-time" is important on this kind of thing? If one were watching a movie (which, BTW, doesn't work with this method because the windows capture can't touch the overlay
) the lighting would really only need to change with scene changes. I can imagine it being very distracting if it was all "blinky blinky" every time something happened on-screen.
Well, that one is tricky. If you would follow each and every change it would get blinky indeed. What I understood from the AmbiLight stuff is that it actually samples the whole screen, and tries to be smart. Obviously I don't have a clue what Philips is doing in detail, but I guess it's something like this, in pseudo code: (I'm a PureBasic programmer, so I haven't got a clue what you're working in)
sample screen
if massive changes
change colour aggressively
do not allow another aggressive change for 'n' seconds
else
make small (slow) colour adjustments
endif
I've got some background in electronics (but haven't touched it for 10 years or so) but here's an interesting variation: using the VGA information directly. Looking at VGA pinning, it looks like the RGB information is right there, effectively making the system work with any form of output.
One idea might be to build a little board with three A/D converters, that simply samples the VGA signal, and returns the information to the PC over USB. A small background program would sample this information, and accordingly control a ledwiz. As an alternative, the board might be able to drive the led's directly (which looks like something rather simple, first an opamp to measure the signal, a capacitor to average the signal, another opamp and driver stage to drive the actual leds, though a PWM driver cirbuit and some PIC logic may improve the results).
Oh dear. I'm rambling.