changeset 61:ffc11c4c5c53

2008-08-11 Omair Majid <omajid@redhat.com> * src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java: replaced volume value with constant * src/java/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java: added a check in setValue() for a valid value * src/java/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.java: added constants for min and max value * unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java: modified the test to use the constants
author Omair Majid <omajid@redhat.com>
date Mon, 11 Aug 2008 17:30:11 -0400
parents e77e418081f7
children 686f9e8f1803
files src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java src/java/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java src/java/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.java unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java
diffstat 4 files changed, 13 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java	Mon Aug 11 16:55:35 2008 -0400
+++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java	Mon Aug 11 17:30:11 2008 -0400
@@ -125,7 +125,7 @@
 	public PulseAudioSourceDataLine(EventLoop eventLoop) {
 		this.eventLoop = eventLoop;
 		this.listeners = new ArrayList<LineListener>();
-		this.volume = 65536;
+		this.volume = PulseAudioVolumeControl.MAX_VOLUME;
 
 		/*
 		 * FIXME puselaudio supports any sample rate (it can covert between
--- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java	Mon Aug 11 16:55:35 2008 -0400
+++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioStreamVolumeControl.java	Mon Aug 11 17:30:11 2008 -0400
@@ -6,7 +6,10 @@
 import org.classpath.icedtea.pulseaudio.PulseAudioVolumeControl;
 
 public class PulseAudioStreamVolumeControl extends PulseAudioVolumeControl {
+	
+	@SuppressWarnings("unused")
 	private long streamPointer;
+	
 	private EventLoop eventLoop;
 	private PulseAudioSourceDataLine line;
 
@@ -31,6 +34,10 @@
 	}
 	
 	public synchronized void setValue(float newValue) {
+		if ( newValue > PulseAudioVolumeControl.MAX_VOLUME || newValue < PulseAudioStreamVolumeControl.MIN_VOLUME) {
+			throw new IllegalArgumentException("invalid value");
+		}
+		
 		if(!line.isMuted()) {
 			setStreamVolume(newValue);
 		}
--- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.java	Mon Aug 11 16:55:35 2008 -0400
+++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.java	Mon Aug 11 17:30:11 2008 -0400
@@ -41,9 +41,12 @@
 import javax.sound.sampled.FloatControl;
 
 abstract class PulseAudioVolumeControl extends FloatControl {
+	
+	public static final int MAX_VOLUME = 65536;
+	public static final int MIN_VOLUME = 0;
 
 	protected PulseAudioVolumeControl(PulseAudioSourceDataLine line) {
-		super(FloatControl.Type.VOLUME, 0, 65536, 1, -1, line.getVolume(), "pulseaudio units", "Volume Off", "Default Volume", "Full Volume");
+		super(FloatControl.Type.VOLUME, MIN_VOLUME, MAX_VOLUME, 1, -1, line.getVolume(), "pulseaudio units", "Volume Off", "Default Volume", "Full Volume");
 	}
 
 
--- a/unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java	Mon Aug 11 16:55:35 2008 -0400
+++ b/unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java	Mon Aug 11 17:30:11 2008 -0400
@@ -160,7 +160,7 @@
 				.getControl(BooleanControl.Type.MUTE);
 
 		mute.setValue(true);
-		volume.setValue(40000);
+		volume.setValue(PulseAudioStreamVolumeControl.MAX_VOLUME);
 
 		mute.setValue(false);