patch-2.1.67 linux/drivers/sound/gus_vol.c

Next file: linux/drivers/sound/gus_wave.c
Previous file: linux/drivers/sound/gus_midi.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.66/linux/drivers/sound/gus_vol.c linux/drivers/sound/gus_vol.c
@@ -1,3 +1,4 @@
+
 /*
  * gus_vol.c - Compute volume for GUS.
  */
@@ -11,7 +12,7 @@
 #include <linux/config.h>
 
 #include "sound_config.h"
-#ifdef CONFIG_GUSHW
+#if defined(CONFIG_GUSHW) || defined(MODULE)
 #include "gus_linearvol.h"
 
 #define GUS_VOLUME	gus_wave_volume
@@ -34,87 +35,85 @@
  * basses.  The normal value is 64.  Strings are assigned lower values.
  */
 unsigned short
-gus_adagio_vol (int vel, int mainv, int xpn, int voicev)
+gus_adagio_vol(int vel, int mainv, int xpn, int voicev)
 {
-  int             i, m, n, x;
+	int             i, m, n, x;
 
 
-  /*
-   * A voice volume of 64 is considered neutral, so adjust the main volume if
-   * something other than this neutral value was assigned in the patch
-   * library.
-   */
-  x = 256 + 6 * (voicev - 64);
-
-  /*
-   * Boost expression by voice volume above neutral.
-   */
-  if (voicev > 65)
-    xpn += voicev - 64;
-  xpn += (voicev - 64) / 2;
-
-  /*
-   * Combine multiplicative and level components.
-   */
-  x = vel * xpn * 6 + (voicev / 4) * x;
+	/*
+	 * A voice volume of 64 is considered neutral, so adjust the main volume if
+	 * something other than this neutral value was assigned in the patch
+	 * library.
+	 */
+	x = 256 + 6 * (voicev - 64);
+
+	/*
+	 * Boost expression by voice volume above neutral.
+	 */
+	if (voicev > 65)
+		xpn += voicev - 64;
+	xpn += (voicev - 64) / 2;
+
+	/*
+	 * Combine multiplicative and level components.
+	 */
+	x = vel * xpn * 6 + (voicev / 4) * x;
 
 #ifdef GUS_VOLUME
-  /*
-   * Further adjustment by installation-specific master volume control
-   * (default 60).
-   */
-  x = (x * GUS_VOLUME * GUS_VOLUME) / 10000;
+	/*
+	 * Further adjustment by installation-specific master volume control
+	 * (default 60).
+	 */
+	x = (x * GUS_VOLUME * GUS_VOLUME) / 10000;
 #endif
 
 #ifdef GUS_USE_CHN_MAIN_VOLUME
-  /*
-   * Experimental support for the channel main volume
-   */
+	/*
+	 * Experimental support for the channel main volume
+	 */
 
-  mainv = (mainv / 2) + 64;	/* Scale to 64 to 127 */
-  x = (x * mainv * mainv) / 16384;
+	mainv = (mainv / 2) + 64;	/* Scale to 64 to 127 */
+	x = (x * mainv * mainv) / 16384;
 #endif
 
-  if (x < 2)
-    return (0);
-  else if (x >= 65535)
-    return ((15 << 8) | 255);
-
-  /*
-   * Convert to GUS's logarithmic form with 4 bit exponent i and 8 bit
-   * mantissa m.
-   */
-  n = x;
-  i = 7;
-  if (n < 128)
-    {
-      while (i > 0 && n < (1 << i))
-	i--;
-    }
-  else
-    while (n > 255)
-      {
-	n >>= 1;
-	i++;
-      }
-  /*
-   * Mantissa is part of linear volume not expressed in exponent.  (This is
-   * not quite like real logs -- I wonder if it's right.)
-   */
-  m = x - (1 << i);
-
-  /*
-   * Adjust mantissa to 8 bits.
-   */
-  if (m > 0)
-    {
-      if (i > 8)
-	m >>= i - 8;
-      else if (i < 8)
-	m <<= 8 - i;
-    }
-
-  return ((i << 8) + m);
+	if (x < 2)
+		return (0);
+	else if (x >= 65535)
+		return ((15 << 8) | 255);
+
+	/*
+	 * Convert to GUS's logarithmic form with 4 bit exponent i and 8 bit
+	 * mantissa m.
+	 */
+	n = x;
+	i = 7;
+	if (n < 128)
+	  {
+		  while (i > 0 && n < (1 << i))
+			  i--;
+	} else
+		while (n > 255)
+		  {
+			  n >>= 1;
+			  i++;
+		  }
+	/*
+	 * Mantissa is part of linear volume not expressed in exponent.  (This is
+	 * not quite like real logs -- I wonder if it's right.)
+	 */
+	m = x - (1 << i);
+
+	/*
+	 * Adjust mantissa to 8 bits.
+	 */
+	if (m > 0)
+	  {
+		  if (i > 8)
+			  m >>= i - 8;
+		  else if (i < 8)
+			  m <<= 8 - i;
+	  }
+	return ((i << 8) + m);
 }
 
 /*
@@ -124,31 +123,31 @@
  */
 
 unsigned short
-gus_linear_vol (int vol, int mainvol)
+gus_linear_vol(int vol, int mainvol)
 {
-  int             mixer_mainvol;
+	int             mixer_mainvol;
 
-  if (vol <= 0)
-    vol = 0;
-  else if (vol >= 127)
-    vol = 127;
+	if (vol <= 0)
+		vol = 0;
+	else if (vol >= 127)
+		vol = 127;
 
 #ifdef GUS_VOLUME
-  mixer_mainvol = GUS_VOLUME;
+	mixer_mainvol = GUS_VOLUME;
 #else
-  mixer_mainvol = 100;
+	mixer_mainvol = 100;
 #endif
 
 #ifdef GUS_USE_CHN_MAIN_VOLUME
-  if (mainvol <= 0)
-    mainvol = 0;
-  else if (mainvol >= 127)
-    mainvol = 127;
+	if (mainvol <= 0)
+		mainvol = 0;
+	else if (mainvol >= 127)
+		mainvol = 127;
 #else
-  mainvol = 127;
+	mainvol = 127;
 #endif
 
-  return gus_linearvol[(((vol * mainvol) / 127) * mixer_mainvol) / 100];
+	return gus_linearvol[(((vol * mainvol) / 127) * mixer_mainvol) / 100];
 }
 
 #endif

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov