
# HG changeset patch
# User James Le Cuirot <chewi@aura-online.co.uk>
# Date 1330896767 0
# Node ID c92001a2c18f628698c58aa4e05a7335d10d0e9e
# Parent  2d713670db9b832b0c5aa700824900bc1fc3c3cd
Raise the maximum FluidSynth gain from 0.8 to 1.2 because apparently the former is too quiet in some cases.

diff -r 2d713670db9b -r c92001a2c18f fluidsynth.c
--- a/fluidsynth.c	Sun Feb 12 17:57:17 2012 -0500
+++ b/fluidsynth.c	Sun Mar 04 21:32:47 2012 +0000
@@ -176,8 +176,8 @@
 
 void fluidsynth_setvolume(FluidSynthMidiSong *song, int volume)
 {
-	/* FluidSynth's default is 0.2. Make 0.8 the maximum. */
-	fluidsynth.fluid_synth_set_gain(song->synth, (float) (volume * 0.00625));
+	/* FluidSynth's default is 0.2. Make 1.2 the maximum. */
+	fluidsynth.fluid_synth_set_gain(song->synth, (float) (volume * 1.2 / MIX_MAX_VOLUME));
 }
 
 int fluidsynth_playsome(FluidSynthMidiSong *song, void *dest, int dest_len)
