changeset in /hg/pulseaudio: 2008-08-15 Omair Majid <omajid at redh...

Omair Majid omajid at redhat.com
Fri Aug 15 13:23:21 PDT 2008


changeset 543d5b1cef67 in /hg/pulseaudio
details: http://icedtea.classpath.org/hg/pulseaudio?cmd=changeset;node=543d5b1cef67
description:
	2008-08-15 Omair Majid <omajid at redhat.com>

	    * src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java:
	      fixed support for LineListeners
	    * unittests/org/classpath/icedtea/pulseaudio/PulseAudioClipTest.java:
	      added a test that attempts to open() a clip and fails
	    * unittests/org/classpath/icedtea/pulseaudio/PulseAudioMixerTest.java:
	      marked testSourceLinesOpenAndClose() to be ignored for now
	    * unittests/org/classpath/icedtea/pulseaudio/PulseAudioTargetDatLineTest.java:
	      new file. a few tests for PulseAudioTargetDataLine

diffstat:

4 files changed, 122 insertions(+), 6 deletions(-)
src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java      |    8 
unittests/org/classpath/icedtea/pulseaudio/PulseAudioClipTest.java           |    8 
unittests/org/classpath/icedtea/pulseaudio/PulseAudioMixerTest.java          |    3 
unittests/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLineTest.java |  109 ++++++++++

diffs (193 lines):

diff -r 6462973e76b1 -r 543d5b1cef67 src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java
--- a/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java	Fri Aug 15 15:19:43 2008 -0400
+++ b/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java	Fri Aug 15 15:46:53 2008 -0400
@@ -62,7 +62,7 @@ public class PulseAudioTargetDataLine im
 	private AudioFormat currentFormat = null;
 	private AudioFormat defaultFormat = null;
 
-	private List<LineListener> lineListeners;
+	private List<LineListener> lineListeners = new LinkedList<LineListener>();
 	
 	private List<StreamListener> streamListeners = new ArrayList<StreamListener>();
 	
@@ -71,8 +71,6 @@ public class PulseAudioTargetDataLine im
 	private static final String PULSEAUDIO_FORMAT_KEY = "PulseAudioFormatKey";
 	
 	private EventLoop eventLoop = null;
-	
-	protected ArrayList<LineListener> listeners;
 	
 	private Semaphore semaphore = new Semaphore(0);
 	
@@ -274,11 +272,11 @@ public class PulseAudioTargetDataLine im
 	}
 
 	public void addLineListener(LineListener listener) {
-		listeners.add(listener);
+		lineListeners.add(listener);
 	}
 
 	public void removeLineListener(LineListener listener) {
-		listeners.remove(listener);
+		lineListeners.remove(listener);
 	}
 
 	public boolean isOpen() {
diff -r 6462973e76b1 -r 543d5b1cef67 unittests/org/classpath/icedtea/pulseaudio/PulseAudioClipTest.java
--- a/unittests/org/classpath/icedtea/pulseaudio/PulseAudioClipTest.java	Fri Aug 15 15:19:43 2008 -0400
+++ b/unittests/org/classpath/icedtea/pulseaudio/PulseAudioClipTest.java	Fri Aug 15 15:46:53 2008 -0400
@@ -47,6 +47,7 @@ import javax.sound.sampled.LineUnavailab
 import javax.sound.sampled.LineUnavailableException;
 import javax.sound.sampled.Mixer;
 import javax.sound.sampled.UnsupportedAudioFileException;
+import javax.sound.sampled.DataLine.Info;
 
 import junit.framework.JUnit4TestAdapter;
 
@@ -113,6 +114,13 @@ public class PulseAudioClipTest {
 		
 	}
 	
+	@Test (expected=IllegalArgumentException.class)
+	public void testOpenWrongUse() throws LineUnavailableException {
+		Clip clip = (Clip) mixer.getLine(new Line.Info(Clip.class));
+		clip.open();
+		
+	}
+	
 	@After
 	public void tearDown() {
 
diff -r 6462973e76b1 -r 543d5b1cef67 unittests/org/classpath/icedtea/pulseaudio/PulseAudioMixerTest.java
--- a/unittests/org/classpath/icedtea/pulseaudio/PulseAudioMixerTest.java	Fri Aug 15 15:19:43 2008 -0400
+++ b/unittests/org/classpath/icedtea/pulseaudio/PulseAudioMixerTest.java	Fri Aug 15 15:46:53 2008 -0400
@@ -54,6 +54,7 @@ import org.junit.After;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 
 public class PulseAudioMixerTest {
@@ -169,7 +170,7 @@ public class PulseAudioMixerTest {
 		selectedMixer.close();
 	}
 
-	@Test
+	@Test @Ignore 
 	public void testSourceLinesOpenAndClose() throws LineUnavailableException {
 		System.out.println("This test checks if source lines open and close");
 		selectedMixer.open();
diff -r 6462973e76b1 -r 543d5b1cef67 unittests/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLineTest.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/unittests/org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLineTest.java	Fri Aug 15 15:46:53 2008 -0400
@@ -0,0 +1,109 @@
+package org.classpath.icedtea.pulseaudio;
+
+import javax.sound.sampled.AudioSystem;
+import javax.sound.sampled.Line;
+import javax.sound.sampled.LineEvent;
+import javax.sound.sampled.LineListener;
+import javax.sound.sampled.LineUnavailableException;
+import javax.sound.sampled.Mixer;
+import javax.sound.sampled.TargetDataLine;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+public class PulseAudioTargetDataLineTest {
+
+	public static junit.framework.Test suite() {
+		return new JUnit4TestAdapter(PulseAudioTargetDataLineTest.class);
+	}
+
+	private Mixer mixer;
+	private TargetDataLine targetDataLine;
+
+	@Before
+	public void setUp() throws LineUnavailableException {
+		Mixer.Info[] mixerInfos = AudioSystem.getMixerInfo();
+		Mixer.Info wantedMixerInfo = null;
+		for (Mixer.Info mixerInfo : mixerInfos) {
+			if (mixerInfo.getName().contains("PulseAudio")) {
+				wantedMixerInfo = mixerInfo;
+			}
+		}
+		Assert.assertNotNull(wantedMixerInfo);
+		mixer = AudioSystem.getMixer(wantedMixerInfo);
+		Assert.assertNotNull(mixer);
+		mixer.open();
+
+	}
+
+	@Test
+	public void testOpenClose() throws LineUnavailableException {
+		targetDataLine = (TargetDataLine) mixer.getLine(new Line.Info(
+				TargetDataLine.class));
+		Assert.assertNotNull(targetDataLine);
+		targetDataLine.open();
+		targetDataLine.close();
+	}
+
+	@Test
+	public void testOpenEvents() throws LineUnavailableException {
+		targetDataLine = (TargetDataLine) mixer.getLine(new Line.Info(
+				TargetDataLine.class));
+		Assert.assertNotNull(targetDataLine);
+
+		LineListener openListener = new LineListener() {
+			private int calledCount = 0;
+
+			@Override
+			public void update(LineEvent event) {
+				Assert.assertEquals(LineEvent.Type.OPEN, event.getType());
+				calledCount++;
+				Assert.assertEquals(1, calledCount);
+			}
+
+		};
+
+		targetDataLine.addLineListener(openListener);
+		targetDataLine.open();
+		targetDataLine.removeLineListener(openListener);
+		targetDataLine.close();
+		
+	}
+
+	@Test
+	public void testCloseEvents() throws LineUnavailableException {
+		targetDataLine = (TargetDataLine) mixer.getLine(new Line.Info(
+				TargetDataLine.class));
+		Assert.assertNotNull(targetDataLine);
+
+		LineListener closeListener = new LineListener() {
+			private int calledCount = 0;
+
+			@Override
+			public void update(LineEvent event) {
+				Assert.assertEquals(LineEvent.Type.CLOSE, event.getType());
+				calledCount++;
+				Assert.assertEquals(1, calledCount);
+			}
+
+		};
+
+
+		targetDataLine.open();
+		targetDataLine.addLineListener(closeListener);
+		targetDataLine.close();
+		targetDataLine.removeLineListener(closeListener);
+		
+	}
+	
+	
+	@After
+	public void tearDown() {
+		mixer.close();
+	}
+
+}



More information about the distro-pkg-dev mailing list