I see something new. When I start alsaplayer from a terminal, and issue the volume control command from another term, the program understand well both 0.5 and 0,5. But not when I start it from my menu.
Dominique Le Thu, 28 Sep 2006 13:20:32 +0200, Dominique Michel <[EMAIL PROTECTED]> a écrit : > Hi, I am on gentoo and I have done a menu script to have an alsaplayer control > in the panel. I modified some fvwm-crystal scripts for that. > > The problem is at I use french locales: > LANG="fr_CH.UTF-8" > LANGUAGE="fr_CH.UTF-8" > LC_ALL="fr_CH.UTF-8" > > and when I change to English locales, the volume and the speed control stop to > work correctly. > > I have the following code: > > In Mixer-alsaplayer: > > DestroyMenu /Volume > AddToMenu /Volume > + " 0 db%" Mixer-Volume '1,0' > + "-3 db%" Mixer-Volume '0,707' > + "-6 db%" Mixer-Volume '0,5' > + "-12 dB%" Mixer-Volume '0,25' > + "-18 db%" Mixer-Volume '0,125' > + "-24 db%" Mixer-Volume '0,0625' > + " 0" Mixer-Volume '0,0' > > DestroyFunc Mixer-Volume > AddToFunc Mixer-Volume > + I Exec exec alsaplayer --volume $0 > > In Music-alsaplayer: > > DestroyFunc /Music-generator > AddToFunc /Music-generator > + I DestroyMenu recreate /Music > + I AddToMenu /Music '$[gt.Volume]' Popup /Volume > > The problem is at when I change to English locales, alsaplayer want to get "." > as decimal character, not a "," > > I try to change the code as follow: > > DestroyFunc Mixer-Volume > AddToFunc Mixer-Volume > + I SetEnv x "$0" > + I PipeRead "echo SetEnv y $(( $[x]/1000000 ))" > + I Exec exec xmessage x: $[x] > + I Exec exec xmessage y: $[y] > + I Exec exec $[A_Player] --volume $[y] > > DestroyMenu /Volume > AddToMenu /Volume > + " 0 db%" Mixer-Volume '1000000' > + "-3 db%" Mixer-Volume '707000' > + "-6 db%" Mixer-Volume '500000' > + "-12 dB%" Mixer-Volume '250000' > + "-18 db%" Mixer-Volume '125000' > + "-24 db%" Mixer-Volume '62500' > + "-30 db%" Mixer-Volume '31250' > + "-36 db%" Mixer-Volume '15625' > + " 0" Mixer-Volume '0' > > But the shell output integer number in y, it mean only 1 or 0. > > I try this too: > > + I PipeRead "echo SetEnv y $(( $[x]/1000000|bc-l ))" > > but it work the same, I get only 1 or 0 in y. > > And it is even worse, because when I run > > $ echo 500000/1000000|bc -l > > the shell output is always > > .50000000000000000000 > > and that even when I use the french locales. > > Is it possible to get this script to work in any locale case? > > Dominique >
