[LAD] announcing envy24control, mudita (*) edition.

Tim E. Real termtech at rogers.com
Sat Jul 31 19:06:56 UTC 2010


Hey gang. Took a break for a few days...

On July 28, 2010 09:10:32 pm Tim E. Real wrote:
> Although slider thumb track size is known, extra unknown space 
>  above and below the slider trough may make our custom marker 
>  positions not precisely accurate.
Talk about whack-a-mole, gtk 2.20 has functions to determine those
 exact spaces. However I don't have 2.20 on my one-year-old distro.
So I feel they're too new to use always, but I can put some #ifdef 's
 in there to take advantage of them if available.

> However, if we're lucky, we may be able to keep page snaps by
>  intercepting keyboard page up/dn and forcing the sliders to their
>  very own page stops.
> I hope there's a way to intercept the KB.
> Some toolkits let you give the application or window first crack
>  at KB events before passing them on.
Yes, of course, that was easy.
In envy24control.c connect all of the vscale slider objects 
 to a single key handler:

  // Let us handle the page up/down snapping.
  gtk_signal_connect(GTK_OBJECT(vscale), "key-press-event", 
                     GTK_SIGNAL_FUNC(slider_key_handler),
                     0 );
                        
The slider_key_handler() does all the rest of the work.
In the handler, gtk passes you the object which called it. Perfect.
Unlike QT, which sort of frowns upon that ("breaks modularity")
 and requires you to ask what the object was.
I've got my handler done. Works just fine. 
That is, I've got slider page up/down snaps, with no markers needed!

Just one problem:
For the ADC sliders, the top dB value is +18.5dB.
Therefore if we just 'blindly' move the slider 12 steps to the next
 6dB positions, we get +12.5, +6.5, +0.5 dB etc.
That '.5' offset, all the way up and down the scale, is not good.

So my next step is to use the ALSA dB functions (_ask_dB) 
 to 'ask' what the corresponding integer values are for
 +18.0, +12.0, +6.0, +0.0 etc. and these will then be the correct
 positions to set our page stops.

I'm pretty sure, if I can finish this, it will be all you (we) wanted 
 originally, and more.

Niels do you have a new release or repo I can work with rather than
 the original release, which may be too outdated to patch against by now?

Thanks. Tim.




More information about the Linux-audio-dev mailing list