scale is for limiting the number of decimals, but the problem is the comma or the point. Alsaplayer want a comma with my french locale, and if it is a point, it accept only the leading 1 or 0, but nothing after.
Another way will be to test the locale in use, and sed the value to change the point against a comma when needed. But I have no idea where I can test the locale. Le Thu, 28 Sep 2006 16:44:44 +0200, "Hans Voss" <[EMAIL PROTECTED]> a écrit : > Dominque > > As Thomas said, it is due to the output of BC. > > Tou should try to get the 'bc' command 'scale=4' in there somewhere. > > On 9/28/06, Dominique Michel <[EMAIL PROTECTED]> wrote: > > 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 > > > > > > > > >
