changeset 65:573735d22e54

2008-08-12 Omair Majid <omajid@redhat.com> * src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java: getControls() now returns a null rather than a Control[2] containing nulls * unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java: fixed the testFindControl() test to check the array returned
author Omair Majid <omajid@redhat.com>
date Tue, 12 Aug 2008 10:51:02 -0400
parents 748e7984cd83
children 8f4e01b67c92
files src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java
diffstat 2 files changed, 15 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java	Tue Aug 12 10:31:11 2008 -0400
+++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java	Tue Aug 12 10:51:02 2008 -0400
@@ -75,7 +75,7 @@
 
 	private List<LineListener> listeners;
 
-	private Control[] controls = new Control[2];
+	private Control[] controls = null;
 	private PulseAudioStreamMuteControl muteControl;
 	private PulseAudioStreamVolumeControl volumeControl;
 	private boolean muted;
@@ -376,6 +376,7 @@
 		}
 		System.out.println(this.getClass().getName() + "stream is ready");
 
+		controls = new Control[2];
 		volumeControl = new PulseAudioStreamVolumeControl(this);
 		controls[0] = volumeControl;
 		muteControl = new PulseAudioStreamMuteControl(this);
--- a/unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java	Tue Aug 12 10:31:11 2008 -0400
+++ b/unittests/org/classpath/icedtea/pulseaudio/PulseSourceDataLineTest.java	Tue Aug 12 10:51:02 2008 -0400
@@ -44,6 +44,7 @@
 import javax.sound.sampled.AudioInputStream;
 import javax.sound.sampled.AudioSystem;
 import javax.sound.sampled.BooleanControl;
+import javax.sound.sampled.Control;
 import javax.sound.sampled.DataLine;
 import javax.sound.sampled.FloatControl;
 import javax.sound.sampled.Line;
@@ -176,20 +177,28 @@
 	public void testFindControl() throws LineUnavailableException {
 		SourceDataLine sourceLine = (SourceDataLine) mixer
 				.getLine(new Line.Info(SourceDataLine.class));
+		sourceLine.open();
+		Control[] controls = sourceLine.getControls();
+		Assert.assertNotNull(controls);
 		Assert.assertTrue(sourceLine.getControls().length > 0);
+		for (Control control : controls) {
+			Assert.assertNotNull(control);
+		}
+		sourceLine.close();
 	}
 
-	
 	@Test
 	public void testSupportedControls() throws LineUnavailableException {
 		SourceDataLine sourceLine = (SourceDataLine) mixer
 				.getLine(new Line.Info(SourceDataLine.class));
 		sourceLine.open();
-		Assert.assertTrue(sourceLine.isControlSupported(FloatControl.Type.VOLUME));
-		Assert.assertTrue(sourceLine.isControlSupported(BooleanControl.Type.MUTE));
+		Assert.assertTrue(sourceLine
+				.isControlSupported(FloatControl.Type.VOLUME));
+		Assert.assertTrue(sourceLine
+				.isControlSupported(BooleanControl.Type.MUTE));
+		sourceLine.close();
 	}
 
-	
 	@After
 	public void tearDown() throws Exception {