changeset 846:8810f9b6e357

Fix SoftChannel controlChange for least significant control values. 2008-05-01 Mark Wielaard <mwielaard@redhat.com> * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ SoftChannel.java (controlChange): Reset least significant controller if necessary.
author Mark Wielaard <mark@klomp.org>
date Fri, 02 May 2008 01:30:56 +0200
parents 57bbbc3db355
children bb8988602259
files ChangeLog overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftChannel.java
diffstat 2 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu May 01 10:57:58 2008 +0200
+++ b/ChangeLog	Fri May 02 01:30:56 2008 +0200
@@ -1,3 +1,9 @@
+2008-05-01  Mark Wielaard  <mwielaard@redhat.com>
+
+	* overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/
+	SoftChannel.java (controlChange): Reset least significant
+	controller if necessary.
+
 2008-05-01  Mark Wielaard  <mwielaard@redhat.com>
 
 	* overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/
--- a/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftChannel.java	Thu May 01 10:57:58 2008 +0200
+++ b/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftChannel.java	Fri May 02 01:30:56 2008 +0200
@@ -1170,7 +1170,13 @@
 				return;
 			}			
 
-			this.controller[controller] = value;
+			// Keep track of values (capped to 7 bit).
+			// Reset least significant (32 through 63)
+			// controller value when most significant
+			// (0 through 31) is set.
+			this.controller[controller] = value & 127;
+			if (controller < 32)
+				this.controller[controller + 32] = 0;
 
 			for (int i = 0; i < voices.length; i++)
 				if (voices[i].active)