Volume for rbspeexenc.
espeak's output is rather loud, and I used to rely on lame's --scale option.
So here's a simple volume knob (amplitude multiplier) for rbspeexenc. I
use a factor 0.6.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15832 a1c6a512-1295-4272-9138-f99709370657
diff --git a/tools/rbspeex/rbspeexenc.c b/tools/rbspeex/rbspeexenc.c
index 649f3b5..7869602 100644
--- a/tools/rbspeex/rbspeexenc.c
+++ b/tools/rbspeex/rbspeexenc.c
@@ -30,6 +30,7 @@
 "  -c x   Complexity, increases quality for a given bitrate, but encodes\n"\
 "         slower, range [0-10], default 3\n"\
 "  -n     Enable narrowband mode, will resample input to 8 kHz\n\n"\
+"  -v x   Volume, amplitude multiplier, default 1.0.\n"\
 "rbspeexenc expects a mono 16 bit WAV file as input. Files will be resampled\n"\
 "to either 16 kHz by default, or 8 kHz if narrowband mode is enabled.\n"\
 "WARNING: This tool will create files that are only usable by Rockbox!\n"
@@ -124,6 +125,7 @@
     int complexity = 3;
     float quality = 8.f;
     bool narrowband = false;
+    float volume = 1.0f;
     int target_sr;
     int numchan, bps, sr, numsamples;
     int frame_size;
@@ -140,6 +142,8 @@
             quality = atof(argv[++i]);
         else if (strncmp(argv[i], "-c", 2) == 0)
             complexity = atoi(argv[++i]);
+        else if (strncmp(argv[i], "-v", 2) == 0)
+            volume = atof(argv[++i]);
         else if (strncmp(argv[i], "-n", 2) == 0)
             narrowband = true;
         ++i;
@@ -193,6 +197,12 @@
     }
     fread(in, 2, numsamples, fin);
     fclose(fin);
+
+    if(volume != 1.0f) {
+        for(i=0; i<numsamples; i++)
+            in[i] *= volume;
+    }
+
     /* There will be 'lookahead' samples of zero at the end of the array, to
      * make sure the Speex encoder is allowed to spit out all its data at clip
      * end */